`123
|
@ -25,7 +25,7 @@ Material:
|
|||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Tex_Marble_SlabWhite2
|
||||
m_Shader: {fileID: 47, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _SPECGLOSSMAP
|
||||
m_ShaderKeywords:
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
|
@ -78,7 +78,7 @@ Material:
|
|||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 2800000, guid: 1923e3cc893838d4b9854b9021e28935, type: 3}
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _Tex_D:
|
||||
|
@ -163,7 +163,7 @@ Material:
|
|||
- _EnableGeometricSpecularAA: 0
|
||||
- _EnergyConservingSpecularColor: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _Glossiness: 0.501
|
||||
- _GlossyReflections: 1
|
||||
- _HeightAmplitude: 0.02
|
||||
- _HeightCenter: 0.5
|
||||
|
|
|
@ -9,7 +9,7 @@ Material:
|
|||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Tex_Marble_TilesSquare0a
|
||||
m_Shader: {fileID: 47, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _NORMALMAP _SPECGLOSSMAP
|
||||
m_ShaderKeywords: _NORMALMAP
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
|
@ -62,7 +62,7 @@ Material:
|
|||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 2800000, guid: eca7c0f583c85414db7db984e6ecdaad, type: 3}
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _Tex_D:
|
||||
|
@ -147,7 +147,7 @@ Material:
|
|||
- _EnableGeometricSpecularAA: 0
|
||||
- _EnergyConservingSpecularColor: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _Glossiness: 0.506
|
||||
- _GlossyReflections: 1
|
||||
- _HeightAmplitude: 0.02
|
||||
- _HeightCenter: 0.5
|
||||
|
|
|
@ -25,7 +25,7 @@ Material:
|
|||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Tex_Plaster_Plain
|
||||
m_Shader: {fileID: 47, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _NORMALMAP _SPECGLOSSMAP
|
||||
m_ShaderKeywords: _NORMALMAP
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 1
|
||||
|
@ -78,7 +78,7 @@ Material:
|
|||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 2800000, guid: aba30b7103546b34aad978776757699a, type: 3}
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _Tex_D:
|
||||
|
@ -134,7 +134,7 @@ Material:
|
|||
- _AlphaToMaskInspectorValue: 0
|
||||
- _Anisotropy: 0
|
||||
- _BlendMode: 0
|
||||
- _BumpScale: 1
|
||||
- _BumpScale: 0.5
|
||||
- _CoatMask: 0
|
||||
- _ConservativeDepthOffsetEnable: 0
|
||||
- _CullMode: 0
|
||||
|
@ -163,7 +163,7 @@ Material:
|
|||
- _EnableGeometricSpecularAA: 0
|
||||
- _EnergyConservingSpecularColor: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _Glossiness: 1
|
||||
- _GlossyReflections: 1
|
||||
- _HeightAmplitude: 0.02
|
||||
- _HeightCenter: 0.5
|
||||
|
|
|
@ -25,7 +25,7 @@ Material:
|
|||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Tex_Wood_GluLamBeam_SideNew
|
||||
m_Shader: {fileID: 47, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _NORMALMAP _SPECGLOSSMAP
|
||||
m_ShaderKeywords: _NORMALMAP
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 1
|
||||
|
@ -78,7 +78,7 @@ Material:
|
|||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 2800000, guid: 1afd64b7a911a5549a6eef2fe5cdd7d7, type: 3}
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _Tex_D:
|
||||
|
@ -163,7 +163,7 @@ Material:
|
|||
- _EnableGeometricSpecularAA: 0
|
||||
- _EnergyConservingSpecularColor: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _Glossiness: 0.926
|
||||
- _GlossyReflections: 1
|
||||
- _HeightAmplitude: 0.02
|
||||
- _HeightCenter: 0.5
|
||||
|
|
|
@ -163,7 +163,7 @@ Material:
|
|||
- _EnableGeometricSpecularAA: 0
|
||||
- _EnergyConservingSpecularColor: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.261
|
||||
- _Glossiness: 0.8
|
||||
- _GlossyReflections: 1
|
||||
- _HeightAmplitude: 0.02
|
||||
- _HeightCenter: 0.5
|
||||
|
|
|
@ -163,7 +163,7 @@ Material:
|
|||
- _EnableGeometricSpecularAA: 0
|
||||
- _EnergyConservingSpecularColor: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.261
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _HeightAmplitude: 0.02
|
||||
- _HeightCenter: 0.5
|
||||
|
|
|
@ -163,7 +163,7 @@ Material:
|
|||
- _EnableGeometricSpecularAA: 0
|
||||
- _EnergyConservingSpecularColor: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.261
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _HeightAmplitude: 0.02
|
||||
- _HeightCenter: 0.5
|
||||
|
|
|
@ -9,7 +9,7 @@ Material:
|
|||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: TexturesCom_Vents0021
|
||||
m_Shader: {fileID: 47, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _ALPHAPREMULTIPLY_ON
|
||||
m_ShaderKeywords: _ALPHABLEND_ON
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
|
@ -218,7 +218,7 @@ Material:
|
|||
- _Metallic: 0
|
||||
- _MetallicRemapMax: 1
|
||||
- _MetallicRemapMin: 0
|
||||
- _Mode: 3
|
||||
- _Mode: 2
|
||||
- _NormalMapSpace: 0
|
||||
- _NormalScale: 1
|
||||
- _OcclusionStrength: 1
|
||||
|
@ -241,7 +241,7 @@ Material:
|
|||
- _SpecularAAThreshold: 0.2
|
||||
- _SpecularHighlights: 1
|
||||
- _SpecularOcclusionMode: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlend: 5
|
||||
- _StencilRef: 0
|
||||
- _StencilRefDepth: 0
|
||||
- _StencilRefGBuffer: 2
|
||||
|
@ -277,7 +277,7 @@ Material:
|
|||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Color: {r: 0.51886785, g: 0.51886785, b: 0.51886785, a: 1}
|
||||
- _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
|
||||
- _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
|
|
|
@ -198,7 +198,7 @@ Material:
|
|||
- _EnableGeometricSpecularAA: 0
|
||||
- _EnergyConservingSpecularColor: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.484
|
||||
- _Glossiness: 0.135
|
||||
- _GlossyReflections: 1
|
||||
- _HeightAmplitude: 0.02
|
||||
- _HeightCenter: 0.5
|
||||
|
@ -277,7 +277,7 @@ Material:
|
|||
m_Colors:
|
||||
- _BaseColor: {r: 0.20689571, g: 0.37144187, b: 0.2598333, a: 0.6}
|
||||
- _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _Color: {r: 0.4134478, g: 0.53773576, b: 0.4519179, a: 0}
|
||||
- _Color: {r: 0.29436633, g: 0.3301887, b: 0.30556083, a: 0}
|
||||
- _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
|
||||
- _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
|
|
|
@ -293,7 +293,7 @@ Material:
|
|||
m_Colors:
|
||||
- _BaseColor: {r: 0.37750837, g: 0.56427705, b: 0.43258724, a: 0.9}
|
||||
- _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _Color: {r: 0.50743145, g: 0.5943396, b: 0.5335039, a: 0.9}
|
||||
- _Color: {r: 0.56585974, g: 0.6415094, b: 0.5888835, a: 0.84313726}
|
||||
- _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
|
||||
- _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
|
|
|
@ -147,7 +147,7 @@ Material:
|
|||
- _EnableGeometricSpecularAA: 0
|
||||
- _EnergyConservingSpecularColor: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0
|
||||
- _Glossiness: 0.627
|
||||
- _GlossyReflections: 1
|
||||
- _HeightAmplitude: 0.02
|
||||
- _HeightCenter: 0.5
|
||||
|
|
|
@ -263,7 +263,7 @@ Material:
|
|||
- _EnableGeometricSpecularAA: 0
|
||||
- _EnergyConservingSpecularColor: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.328
|
||||
- _Glossiness: 0.907
|
||||
- _GlossyReflections: 1
|
||||
- _HeightAmplitude: 0.02
|
||||
- _HeightCenter: 0.5
|
||||
|
|
|
@ -1,5 +1,42 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-8812053221142558256
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7a34fa72bd4185749832024e9c8010bf, type: 3}
|
||||
m_Name: ScreenSpaceReflections
|
||||
m_EditorClassIdentifier:
|
||||
active: 0
|
||||
enabled:
|
||||
overrideState: 1
|
||||
value: 1
|
||||
preset:
|
||||
overrideState: 1
|
||||
value: 5
|
||||
maximumIterationCount:
|
||||
overrideState: 0
|
||||
value: 16
|
||||
resolution:
|
||||
overrideState: 0
|
||||
value: 0
|
||||
thickness:
|
||||
overrideState: 0
|
||||
value: 8
|
||||
maximumMarchDistance:
|
||||
overrideState: 1
|
||||
value: 100
|
||||
distanceFade:
|
||||
overrideState: 1
|
||||
value: 0.001
|
||||
vignette:
|
||||
overrideState: 0
|
||||
value: 0.5
|
||||
--- !u!114 &-5088152751173518735
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
|
@ -1421,6 +1458,7 @@ MonoBehaviour:
|
|||
- {fileID: -2577705183074798555}
|
||||
- {fileID: -5088152751173518735}
|
||||
- {fileID: 3711592583115391261}
|
||||
- {fileID: -8812053221142558256}
|
||||
--- !u!114 &3711592583115391261
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
|
|
|
@ -55,7 +55,7 @@ public class Main : UIBase
|
|||
//切换视角时相机移动速度
|
||||
private float camMoveSpeed=6;
|
||||
//待机时长
|
||||
private float waitTime=5;
|
||||
private float waitTime=120;
|
||||
|
||||
Tweener t_camAnimAngle;
|
||||
Tweener t_camAnimPos;
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 905fb51feceb940d59cfdc43db34c4a1
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 9fb4ba7bf14074ced96eed25f1a064e7
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c772529a50726457a8a776aa05ddf703
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c78775a88d77047438839433d0738c53
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f085e05cb66e14aa1b720ef0b8768ee7
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,20 @@
|
|||
|
||||
This asset contains 2 main packages. Please use the appropriate package according to the rendering pipeline of your project:
|
||||
|
||||
** Built-in pipeline **
|
||||
- Import the package from the folder /Builtin.
|
||||
|
||||
** Universal Rendering Pipeline **
|
||||
- Import the package from the folder /URP
|
||||
|
||||
|
||||
Once imported, read the PDF documentation for additional details.
|
||||
Thanks for using Shiny SSRR.
|
||||
|
||||
|
||||
Questions / Suggestions / Support
|
||||
---------------------------------
|
||||
* Website-Forum: https://kronnect.com
|
||||
* Support: contact@kronnect.com
|
||||
* Twitter: @Kronnect
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 70ef9ec3fa1bf4639a43acfbbf066247
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 47a5c523ba966461db59c29625db0874
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 271fbc457f4af4a44a2a7ce4705d2df2
|
||||
folderAsset: yes
|
||||
timeCreated: 1542876294
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: cb45faf5ebb76442a9c88b4e977fa069
|
||||
folderAsset: yes
|
||||
timeCreated: 1542877572
|
||||
licenseType: Pro
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,119 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-8558442800701317947
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 2
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Floor
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _NORMALMAP
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 2800000, guid: 40351333731c94777b93eda89ce1d4eb, type: 3}
|
||||
m_Scale: {x: 2, y: 2}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 2800000, guid: 69735cf47f0104165973f07ff96d4d98, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 10, y: 10}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 2, y: 2}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 40351333731c94777b93eda89ce1d4eb, type: 3}
|
||||
m_Scale: {x: 2, y: 2}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _Occlusion:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 2800000, guid: 943181a31ab5a411496dc4b0d6a41630, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _AlphaClip: 0
|
||||
- _AlphaTestRef: 0.5
|
||||
- _Blend: 0
|
||||
- _BumpScale: 1
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 0.02
|
||||
- _DstBlend: 0
|
||||
- _EmissionScaleUI: 1
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 0.538
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Lightmapping: 1
|
||||
- _Metallic: 0.111
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.0104
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.499
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _Surface: 0
|
||||
- _UVSec: 0
|
||||
- _WorkflowMode: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 0.99999994}
|
||||
- _EmissionColorUI: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissionColorWithMapUI: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _SpecColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _SpecularColor: {r: 0.11764706, g: 0.11764706, b: 0.11764706, a: 1}
|
|
@ -0,0 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c5e68f4db72684d25be883ee27d7fa97
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
|
@ -0,0 +1,119 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-5610605729892836785
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 2
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Gold
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords:
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _Occlusion:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _AlphaClip: 0
|
||||
- _AlphaTestRef: 0.5
|
||||
- _Blend: 0
|
||||
- _BumpScale: 1
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _EmissionScaleUI: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.9
|
||||
- _GlossyReflections: 1
|
||||
- _Lightmapping: 1
|
||||
- _Metallic: 1
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.908
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _Surface: 0
|
||||
- _UVSec: 0
|
||||
- _WorkflowMode: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0.96078426, g: 0.8392157, b: 0.47450978, a: 1}
|
||||
- _Color: {r: 0.9607843, g: 0.8392157, b: 0.4745098, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColorUI: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissionColorWithMapUI: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
- _SpecularColor: {r: 0.8088235, g: 0.6295969, b: 0.3033088, a: 1}
|
|
@ -0,0 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5096e016b7e68464899a979f01e98542
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
|
@ -0,0 +1,109 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Mirror
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _GLOSSYREFLECTIONS_OFF
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _AlphaClip: 0
|
||||
- _Blend: 0
|
||||
- _BumpScale: 1
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 1
|
||||
- _GlossyReflections: 0
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 1
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _Surface: 0
|
||||
- _UVSec: 0
|
||||
- _WorkflowMode: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
--- !u!114 &5106466146314827787
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 2
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 823e4ead765ed42a58a2334b8058ca00
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,119 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-2992342339722848979
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 2
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: PlasticGlossy
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords:
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _Occlusion:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _AlphaClip: 0
|
||||
- _AlphaTestRef: 0.5
|
||||
- _Blend: 0
|
||||
- _BumpScale: 1
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _EmissionScaleUI: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.633
|
||||
- _GlossyReflections: 1
|
||||
- _Lightmapping: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.8
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _Surface: 0
|
||||
- _UVSec: 0
|
||||
- _WorkflowMode: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0, g: 0.78942597, b: 0.79607844, a: 1}
|
||||
- _Color: {r: 0, g: 0.78942597, b: 0.79607844, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColorUI: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissionColorWithMapUI: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
- _SpecularColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
|
|
@ -0,0 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1f83895e6354f411da22ab491b664095
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 7df98aac384664f258cb7819563222e0
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,109 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-3129266592905315525
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 2
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: ShinyText
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _GLOSSYREFLECTIONS_OFF _RECEIVE_SHADOWS_OFF
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _AlphaClip: 0
|
||||
- _Blend: 0
|
||||
- _BumpScale: 1
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 0
|
||||
- _Smoothness: 0
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _Surface: 0
|
||||
- _UVSec: 0
|
||||
- _WorkflowMode: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 4722affc8a4174224b0373590433dd61
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,119 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Silk
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords:
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _Occlusion:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _AlphaClip: 0
|
||||
- _AlphaTestRef: 0.5
|
||||
- _Blend: 0
|
||||
- _BumpScale: 1
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _EmissionScaleUI: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.7
|
||||
- _GlossyReflections: 1
|
||||
- _Lightmapping: 1
|
||||
- _Metallic: 0.75
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.6
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _Surface: 0
|
||||
- _UVSec: 0
|
||||
- _WorkflowMode: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0.49411762, g: 0.14509797, b: 0.16470581, a: 1}
|
||||
- _Color: {r: 0.49411765, g: 0.14509805, b: 0.16470589, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _EmissionColorUI: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissionColorWithMapUI: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
- _SpecularColor: {r: 0.74264705, g: 0.20750435, b: 0.216731, a: 1}
|
||||
--- !u!114 &7254247028269435741
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 2
|
|
@ -0,0 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: cc0954b3a33054342b0fd89feda97068
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
|
@ -0,0 +1,119 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-6803998695329737601
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 2
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Wall
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _NORMALMAP _OCCLUSIONMAP
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 2800000, guid: 9d4329142f9cd482983a58ac599786dd, type: 3}
|
||||
m_Scale: {x: 3, y: 3}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 2800000, guid: fd639c096a8584af0b7b70577421b9a1, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 10, y: 10}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 3, y: 3}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 9d4329142f9cd482983a58ac599786dd, type: 3}
|
||||
m_Scale: {x: 3, y: 3}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _Occlusion:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 2800000, guid: 4eef545667c58495ea824bd3998da006, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 2800000, guid: a1d43acc22aa4427f89ca56382ce5272, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _AlphaClip: 0
|
||||
- _AlphaTestRef: 0.5
|
||||
- _Blend: 0
|
||||
- _BumpScale: 1
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailNormalMapScale: 0.02
|
||||
- _DstBlend: 0
|
||||
- _EmissionScaleUI: 1
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 0.325
|
||||
- _Glossiness: 0.311
|
||||
- _GlossyReflections: 1
|
||||
- _Lightmapping: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.0203
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.311
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _Surface: 0
|
||||
- _UVSec: 0
|
||||
- _WorkflowMode: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 0.99999994}
|
||||
- _EmissionColorUI: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissionColorWithMapUI: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _SpecColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _SpecularColor: {r: 0.11764706, g: 0.11764706, b: 0.11764706, a: 1}
|
|
@ -0,0 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c756ee1000105437892bd5901771ff7b
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6f71b213fc61141bd8073cd41403bdf7
|
||||
timeCreated: 1542877475
|
||||
licenseType: Pro
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b1cd737baac9345c4a35ba1a8739e71e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,16 @@
|
|||
using UnityEngine;
|
||||
|
||||
namespace ShinySSRR {
|
||||
|
||||
public class Rotate : MonoBehaviour {
|
||||
|
||||
public Vector3 axis = Vector3.up;
|
||||
public float speed = 60f;
|
||||
|
||||
void Update() {
|
||||
transform.Rotate(axis * (Time.deltaTime * speed));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c13d913a91f304bc5bc349878064d02d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 9030b1a978d064cad96fc5af58408379
|
||||
folderAsset: yes
|
||||
timeCreated: 1542901861
|
||||
licenseType: Pro
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
After Width: | Height: | Size: 1.5 MiB |
|
@ -0,0 +1,68 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 40351333731c94777b93eda89ce1d4eb
|
||||
timeCreated: 1542918613
|
||||
licenseType: Pro
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 4
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -1
|
||||
wrapMode: -1
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
After Width: | Height: | Size: 1.0 MiB |
|
@ -0,0 +1,68 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 69735cf47f0104165973f07ff96d4d98
|
||||
timeCreated: 1542918925
|
||||
licenseType: Pro
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 4
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 0
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -1
|
||||
wrapMode: -1
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 1
|
||||
textureShape: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
After Width: | Height: | Size: 730 KiB |
|
@ -0,0 +1,68 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 4eef545667c58495ea824bd3998da006
|
||||
timeCreated: 1542918613
|
||||
licenseType: Pro
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 4
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -1
|
||||
wrapMode: -1
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
After Width: | Height: | Size: 1.8 MiB |
|
@ -0,0 +1,68 @@
|
|||
fileFormatVersion: 2
|
||||
guid: fd639c096a8584af0b7b70577421b9a1
|
||||
timeCreated: 1542918741
|
||||
licenseType: Pro
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 4
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 0
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -1
|
||||
wrapMode: -1
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 1
|
||||
textureShape: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
After Width: | Height: | Size: 2.2 MiB |
|
@ -0,0 +1,68 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 9d4329142f9cd482983a58ac599786dd
|
||||
timeCreated: 1542918615
|
||||
licenseType: Pro
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
serializedVersion: 4
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -1
|
||||
wrapMode: -1
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a22dad3c37b6a45c985b13d5ef39823b
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,183 @@
|
|||
USER GUIDE
|
||||
1
|
||||
Contents
|
||||
|
||||
Introduction ............................................................................................................................................3
|
||||
Setup ......................................................................................................................................................3
|
||||
Requirements ..................................................................................................................................................................... 3
|
||||
Configuration .....................................................................................................................................................................3
|
||||
Demo Scene .......................................................................................................................................................................3
|
||||
How to add reflections to your scenes ......................................................................................................4
|
||||
Forward rendering configuration ......................................................................................................................................4
|
||||
|
||||
Why is necessary to add a Reflections script on the objects? .......................................................................................5
|
||||
Deferred rendering configuration .....................................................................................................................................5
|
||||
Global settings ...................................................................................................................................................................6
|
||||
|
||||
General settings.............................................................................................................................................................6
|
||||
Raytracing settings........................................................................................................................................................6
|
||||
Reflection Intensity ........................................................................................................................................................7
|
||||
Reflection Sharpness..........................................................................................................................................................7
|
||||
Support...................................................................................................................................................7
|
||||
|
||||
2
|
||||
Introduction
|
||||
|
||||
Thank you for purchasing!
|
||||
Shiny SSRR means Screen Space Raytraced Reflections.
|
||||
Reflections add a realistic touch to many surfaces. Use them wisely and in a subtle way to improve the quality
|
||||
of your scenes.
|
||||
This is a camera effect which has benefits and limitations:
|
||||
|
||||
- Benefits: it’s very fast and independent of scene complexity.
|
||||
- Limitations: only visible objects can render reflections on the scene.
|
||||
|
||||
Setup
|
||||
|
||||
Requirements
|
||||
▪ Unity 2019.4 LTS
|
||||
▪ Forward or deferred rendering path.
|
||||
▪ Windows / Mac desktop platforms.
|
||||
|
||||
Configuration
|
||||
1) Make sure your project meets the above requirements.
|
||||
2) Import Shiny SSRR asset into your project.
|
||||
3) Add Shiny SSRR to your camera.
|
||||
|
||||
Demo Scene
|
||||
If everything is properly setup, you should be able to see the reflections in the included demo scene.
|
||||
|
||||
3
|
||||
How to add reflections to your scenes
|
||||
|
||||
Shiny SSRR can be run in forward or deferred mode depending on your camera rendering path setting.
|
||||
In forward, in addition to add Shiny SSRR to your camera, you need to add a Reflections script to any object
|
||||
or group of objects that will receive reflections. Each group of objects can use different settings bringing lot
|
||||
of flexibility.
|
||||
In deferred, only global settings on the camera script (Shiny SSRR script) are used and Reflections scripts are
|
||||
ignored because Shiny SSRR will work with the g-buffers which are independent of the scene geometry.
|
||||
|
||||
Forward rendering configuration
|
||||
In this mode, add the Reflections script to any game object that you want to receive reflections. A single
|
||||
Reflections script can cover many game objects thanks to the “Scope” options shown in the inspector below:
|
||||
|
||||
When you add this script to the game object, it will start receiving reflections (assuming you have the
|
||||
Screen Space Reflections render feature correctly installed as described in the previous page).
|
||||
The rest of options are:
|
||||
|
||||
- Ignore: enable this option to exclude this game object from getting any reflection. This is useful if
|
||||
you assign the Reflections script to the root of a group of objects, but you don’t want reflections on
|
||||
some of them.
|
||||
|
||||
- Scope: in addition to add reflections to this object, you can specify that reflections should also be
|
||||
added to the children of the object. And you can also specify some filters, like the layer, a name
|
||||
pattern or specific sub-meshes.
|
||||
|
||||
- Use Material Smoothness: if the game object uses a PBR material with _Smoothness property, the
|
||||
asset can use that value so changing the smoothness of the material will affect the reflections as well.
|
||||
|
||||
- Per Sub Mesh Smoothness: let you specify a different smoothness value per submesh.
|
||||
- Smothness: if the “Use Material Smoothness” is not enabled or the material doesn’t have a
|
||||
|
||||
smoothness property, this value will be used instead.
|
||||
- Use Material Normal Map: if the game object uses a material with a normal map, use it. If the
|
||||
|
||||
material has no normal texture, this option will be ignored.
|
||||
- Material Property Names: this are the default names for usual smoothness map textures, normal
|
||||
|
||||
map and smoothness intensity values used in standard shader. Feel free to specify custom shader
|
||||
|
||||
4
|
||||
property names if required. The smoothness value is encoded in the alpha channel of the smoothness
|
||||
map so make sure that texture preserves the alpha value in Import settings.
|
||||
- Override Global Settings: let you use different raytracing settings only for this object.
|
||||
Hint: in forward rendering mode, you can also customize the reflection intensity modifying the alpha
|
||||
|
||||
value of the color of that material.
|
||||
|
||||
Why is necessary to add a Reflections script on the objects?
|
||||
Because forward renderer doesn’t store (by default) normals and smoothness into a dedicated buffer which
|
||||
are required to compute reflections. The asset needs to compute the normal per object in order to produce
|
||||
correct reflections. In deferred rendering path, Shiny SSRR can leverage the g-buffers to automate the effect
|
||||
on the entire scene without requiring you to add the Reflections scripts.
|
||||
However, there’s a bonus for using this method: by adding and customizing Reflections per group of objects
|
||||
you have total control of how the effect renders on the screen. In order to make this process faster, there’re
|
||||
global settings that are automatically applied to all reflections (see next section).
|
||||
Also, because you’re specifying which objects will require reflections, the overall result can render faster
|
||||
because the system doesn’t need to process the entire screen – only those pixels of the objects that will
|
||||
receive reflections.
|
||||
|
||||
Deferred rendering configuration
|
||||
If your camera is set to deferred rendering path, Shiny SSRR will detect this and automatically work in that
|
||||
mode.
|
||||
Benefits of deferred include a unified approach to reflections and more physically based results since
|
||||
smoothness is read per pixel. Also, you don’t need to add the Reflections script to the objects that will receive
|
||||
reflections.
|
||||
On the other hand, you lose a bit of flexibility since you can no longer customize the raytracing settings per
|
||||
object but globally. This can be tricky as sometimes you prefer to use less or more samples or different decay
|
||||
or jitter settings for example. Also, because deferred applies to entire screen, it can be a bit more expensive.
|
||||
|
||||
5
|
||||
Global settings
|
||||
The global settings are located in the Shiny SSRR render feature itself and provide options that affect all
|
||||
reflections. These settings are shown in the screenshot below:
|
||||
|
||||
General settings
|
||||
- Show In Scene View: this option allows you to disable reflections while working in the SceneView.
|
||||
- Downsampling: applies the effect to a reduced size image buffer improving performance in exchange
|
||||
of accuracy/quality. Depth Bias is used to clip reflections by depth buffer so objects on top of others
|
||||
do not get reflections. The Depth Bias parameter is used only when downsampling is greater than 1
|
||||
and only if camera is rendering in forward rendering path.
|
||||
- Output Mode: let you debug the result or show a side-by-side comparison between the original
|
||||
image and the image with reflections.
|
||||
- Low Precision: uses LDR buffer (ARGB32) instead of HDR (ARGBhalf) buffer for reflection buffers.
|
||||
|
||||
Raytracing settings
|
||||
- Sample Count: the number of steps used in the raytracer. The more samples, the more quality and
|
||||
extensive the reflections result.
|
||||
- Max Ray Length: the maximum distance of reflections.
|
||||
- Thickness: when the ray passes behind an object, it needs to figure if it’s hitting the object or passing
|
||||
behind it. Since the back faces of objects are not rendered, the asset uses a fixed value. Increase this
|
||||
value to ensure all reflections are captured.
|
||||
- Binary Search Iterations: increase to refine the hit position detected by the raytracer. Usually a value
|
||||
of 6 or 8 is enough in most situations.
|
||||
- Thickness Fine: when this option is enabled, after the binary search has refined the reflection hit
|
||||
position, the algorithm will discard the reflection hit if the distance from the ray to the surface is
|
||||
greater than this value. Therefore, this is the actual thickness value used after binary search. Keep it
|
||||
as low as possible as long as reflections look bright and sharp.
|
||||
- Jitter: reduces banding artefacts by adding a random offset to the starting position of the rays.
|
||||
- Animated jitter: this option changes the jitter amount per pixel every frame redistributing the noise.
|
||||
6
|
||||
Reflection Intensity
|
||||
- Global Multiplier: this is a global multiplier to all reflections intensity and let you tune down the
|
||||
effect globally.
|
||||
- Min Intensity: determines the minimum reflection intensity on all surfaces. Can be used to force a
|
||||
very shiny environment.
|
||||
- Max Intensity: caps the maximum reflection intensity on any surface.
|
||||
- Fresnel: this setting reduces the reflection intensity based on the view angle to the surface. A value
|
||||
of 1 gives more realistic results.
|
||||
- Decay: this setting reduces the reflection intensity based on the distance to the reflected point.
|
||||
- Specular Control: reduces intensity of specular in the reflections. This will produce less
|
||||
flickering/shimmering in the scene caused by certain materials.
|
||||
- Vignette Size: reflections are tuned down around the screen borders. This setting controls the
|
||||
intensity of this reduction.
|
||||
|
||||
Reflection Sharpness
|
||||
- Fuzzyness: a blur multiplier which is also based on the distance to the reflected point so distant
|
||||
reflections look blurrier than contact reflections.
|
||||
- Contact Hardening: increases the sharpness of contact (short distance) reflections.
|
||||
- Minimum Blur: defines the minimum blur intensity for all reflections.
|
||||
- Blur Downsampling: size of the blur buffers. Increasing only if you want to improve performance a
|
||||
bit.
|
||||
- Blur Strength: let you control the blur spread along the x and y axis.
|
||||
|
||||
Support
|
||||
|
||||
We hope you find the asset easy and fun to use. Feel free to contact us for any enquiry.
|
||||
Visit our Support Forum on https://kronnect.com for help and access to the latest beta releases.
|
||||
Kronnect Technologies
|
||||
Email: contact@kronnect.com
|
||||
Support Forum: https://www.kronnect.com/support
|
||||
|
||||
7
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e1bbb55d9cc634ffcadd831c02b5d9e1
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,263 @@
|
|||
Don’t miss these other cool assets brought to you by
|
||||
|
||||
BEAUTIFY 2 is an acclaimed full-screen image processing effect that improves the image quality in real time
|
||||
|
||||
producing incredibly crisp and vivid scenes. Compatible with built-in, LWRP and URP pipelines.
|
||||
In addition to this unique image enhancement filter, you will find in Beautify additional effects like high quality Bloom,
|
||||
dirty lens effect, vignetting, night & thermal vision and more!
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/beautify-2-advanced-post-processing-163949?aid=1101lGsd
|
||||
|
||||
DYNAMIC FOG & MIST 2 is a full-screen image effect that adds live, moving Fog, Mist and Sky Haze to your scenes
|
||||
|
||||
making them less dull and boring. Compatible with built-in and URP pipelines.
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/dynamic-fog-mist-48200?aid=1101lGsd
|
||||
|
||||
VOLUMETRIC FOG & MIST 2 is the enhanced version of Dynamic Fog & Mist (which is also included in the package)
|
||||
|
||||
and has been designed to provide a better-looking fog and cloud formations with support of lighting and glow effects.
|
||||
Compatible with built-in and URP pipelines.
|
||||
It’s feature-rich with options like fog of war, Sun tracking, better transparent and sprite support, sun shafts and more.
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/volumetric-fog-mist-2-162694?aid=1101lGsd
|
||||
WORLD POLITICAL MAP SERIES is a collection of professional mapping assets for Unity (2D and Globe Editions). Used by
|
||||
|
||||
many companies and agencies across the world to visualize data, resources, interact with the user, etc.
|
||||
Compatible with built-in and URP pipelines.
|
||||
|
||||
Get it on the Asset Store (Globe Edition):
|
||||
|
||||
https://assetstore.unity.com/packages/tools/gui/world-map-globe-edition-2-150643?aid=1101lGsd
|
||||
|
||||
Get it on the Asset Store (2D Edition):
|
||||
|
||||
https://assetstore.unity.com/packages/tools/gui/world-map-2d-edition-2-151238?aid=1101lGsd
|
||||
|
||||
WORLD MAP STRATEGY KIT 2 is a complete framework for building AAA strategy games, including all world countries
|
||||
|
||||
and provinces, +7000 cities, cool 3D PBS dynamic viewport for map, hexagonal grid, pathfinding, real elevation, and much
|
||||
more.
|
||||
Compatible with built-in and URP pipelines.
|
||||
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/tools/game-toolkits/world-map-strategy-kit-2-150938?aid=1101lGsd
|
||||
|
||||
WORLD MAPS PRO BUNDLE 2 is our most complete and professional suite of maps for Unity platform for the best price.
|
||||
|
||||
Compatible with built-in and URP pipelines. This bundle contains:
|
||||
- World Political Map Globe Edition
|
||||
- World Political Map 2D Edition
|
||||
- World Map Strategy Kit
|
||||
- World Flags and Weather Icons
|
||||
|
||||
Purchase this bundle and save $$$!
|
||||
|
||||
https://assetstore.unity.com/packages/tools/gui/world-maps-pro-bundle-2-151240?aid=1101lGsd
|
||||
SHINY SSRR is our Screen Space Raytraced Reflections solution optimized for both forward and deferred rendering
|
||||
|
||||
path. As with Beautify, this effect gives an instant boost to your scene by making light bounce on shiny surfaces, casting
|
||||
gorgeous reflections on all kind of reflective surfaces. Compatible with built-in and URP pipelines.
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/slug/188638?aid=1101lGsd
|
||||
|
||||
SKYBOX PLUS is an artist-driven replacement for Unity default skybox. Includes a lovely blend of procedural haze and
|
||||
|
||||
hand-drawn clouds which mimic the style of Studio Ghibli.
|
||||
Supports full day/night transition with moon, stars, several cloud layers with custom animation and lot of customization
|
||||
options. . Compatible with built-in and URP pipelines.
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/2d/textures-materials/sky/skybox-plus-182966?aid=1101lGsd
|
||||
|
||||
VOLUMETRIC LIGHTS is a powerful asset to add scattering effect to any number of Unity lights. Supports spot, point
|
||||
|
||||
and area light types. Directional lights are also supported for localized areas. Includes advanced options like dust lit
|
||||
particles and shadow occlusion. Compatible with built-in and URP pipelines.
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/vfx/shaders/volumetric-lights-164149?aid=1101lGsd
|
||||
COMPASS NAVIGATOR PRO adds a “Skyrim”-like compass bar to your UI, including smooth fade in/out, various bar
|
||||
|
||||
designs, +11 icons in two variations (+22 icons) and nice features like minimap and beam lights!
|
||||
Compatible with all render pipelines.
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/tools/gui/compass-navigator-pro-59519?aid=1101lGsd
|
||||
|
||||
X-FRAME FPS ACCELERATOR provides you extra frames per second in your mobile games (iOS and Android). It takes
|
||||
|
||||
advantage of the huge screen resolution of these devices to sacrifice some pixels in Exchange of performance with flexible
|
||||
and dynamic quality options. Compatible with built-in and URP pipelines.
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/tools/camera/x-frame-fps-accelerator-63965?aid=1101lGsd
|
||||
|
||||
SHADER CONTROL is a tiny but powerful tool that will allow you to identify and manage shader keywords usage in your
|
||||
|
||||
project, taking more control over the build size and compilation time. Compatible with all render pipelines.
|
||||
Quickly locates and helps you disable keywords not needed, learn about the shaders used in your project and their keywords!
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/vfx/shaders/shader-control-74817?aid=1101lGsd
|
||||
TERRAIN GRID SYSTEM is an advanced grid generator and territory/cell highlighter/fader for both Terrain and 2D grids.
|
||||
|
||||
Compatible with all render pipelines. It can generate Voronoi, hexagonal and boxed grids dynamically on your terrain, with
|
||||
flexible position options . Compatible with built-in and URP pipelines.
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/tools/terrain/terrain-grid-system-47215?aid=1101lGsd
|
||||
|
||||
GRIDS 2D is similar to Terrain Grid System but only for flat 2D grids. It’s fast, convenient and easy to use.
|
||||
|
||||
Compatible with all render pipelines. It can also generate Voronoi, hexagonal and boxed grids dynamically on your terrain, with
|
||||
flexible API to integrate with your game. Compatible with built-in and URP pipelines.
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/tools/sprite-management/grids-2d-59981?aid=1101lGsd
|
||||
|
||||
HEXASPHERE GRID SYSTEM leverages shader technologies like texture arrays and geometry shaders to render hundreds
|
||||
|
||||
of thousands of interactive and customizable tiles in a spherical/hexagonal grid.
|
||||
Fully interactive, with VR support and super-fast. Compatible with built-in and URP pipelines.
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/tools/modeling/hexasphere-grid-system-89112?aid=1101lGsd
|
||||
TUNNEL FX 2 is a full-screen post image effect that creates stunning, colorful 3D animated tunnels. It does not create any
|
||||
|
||||
real tunnel but just draw the tunnel as a post-effect behind any geometry or UI.
|
||||
Compatible with built-in and URP pipelines.
|
||||
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/tools/particles-effects/tunnel-fx-2-86544?aid=1101lGsd
|
||||
|
||||
GLOBAL SNOW renders your existing scene into a winter landscape with a couple of clicks. Just add a single script to your
|
||||
|
||||
camera and customize the results.
|
||||
Supports relief mapping for realistic snow effect + human footprints + terrain marks with automatic collision detection and
|
||||
more!
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/global-snow-79795?aid=1101lGsd
|
||||
|
||||
HIGHLIGHT PLUS adds outline, glow and see-through effects to any 3D object in the scene.
|
||||
|
||||
It’s performant and designed for all platforms, including built-in and URP rendering pipelines.
|
||||
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/tools/particles-effects/highlight-plus-134149?aid=1101lGsd
|
||||
VOXEL PLAY 2 is a procedural, fast environment based on cubes. It leverages highly optimized code, including
|
||||
|
||||
geometry shaders and texture arrays, to generate beautiful, rich, vast infinite worlds which can be customized and
|
||||
modified in many ways. Compatible with built-in and URP pipelines.
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/tools/game-toolkits/voxel-play-2-201234?aid=1101lGsd
|
||||
|
||||
PIRATES OF VOXEL PLAY is a multiplayer game template built with Mirror and Voxel Play. It’s the perfect
|
||||
|
||||
sample project to learn how to implement multiplayer games using these two frameworks.
|
||||
Includes animated characters, a fully populated tropical island with 3 biomes, wild beasts, weapons, loots, cute
|
||||
music and sound effects and of course plenty of commented code, documentation and video tutorials!
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/slug/189096?aid=1101lGsd
|
||||
LIQUID VOLUME is a powerful and highly customizable shader that simulates realistic and animated liquid
|
||||
|
||||
containers. Can be used in 3D scenes and 2D UI (demos included).
|
||||
Liquid Volume is super easy and fun to use: just add the main script to any primitive (sphere, box, cylinder and
|
||||
similar shape models) to convert it into a liquid container!
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/vfx/shaders/liquid-volume-70992?aid=1101lGsd
|
||||
|
||||
LIQUID VOLUME PRO 2 includes all features of Liquid Volume and adds additional advanced options plus
|
||||
|
||||
improved compatibility with more platforms.
|
||||
Among the new options are multiple liquid layers support, miscible liquids, bubbles, better mesh options and full
|
||||
WebGL support! Compatible with built-in and URP pipelines.
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/vfx/shaders/liquid-volume-pro-129967?aid=1101lGsd
|
||||
HIGHLIGHT PLUS 2D adds outline, glow, see-through and other effects to any sprite in the scene.
|
||||
|
||||
It’s performant and designed for all platforms, including standard and URP rendering pipelines.
|
||||
Get it on the Asset Store:
|
||||
https://assetstore.unity.com/packages/tools/particles-effects/highlight-plus-2d-138383?aid=1101lGsd
|
||||
|
||||
TRAILS FX renders smooth, mesmerizing trails behind moving objects and characters.
|
||||
|
||||
It’s performant thanks to the use of GPU instancing and use correct transparency order producing a fascinating effect.
|
||||
Compatible with built-in and URP pipelines.
|
||||
Get it on the Asset Store:
|
||||
|
||||
https://assetstore.unity.com/packages/tools/particles-effects/trails-fx-146898?aid=1101lGsd
|
||||
|
||||
COLOR STUDIO is an Editor Extension that allows you to create awesome color palettes and recolor objects, sprites and scenes
|
||||
|
||||
easily in editor and runtime. Compatible with all render pipelines.
|
||||
It comes with an interactive color wheel editor and a complete set of tools that let you also export color palettes as LUTs,
|
||||
transform existing textures or specific colors from object materials.
|
||||
Get it on the Asset Store:
|
||||
https://assetstore.unity.com/packages/tools/painting/color-studio-151892?aid=1101lGsd
|
||||
LUT PACK is a collection of +200 cinematic and artistic LUTs plus tints for Beautify. They can dramatically change the mood
|
||||
|
||||
and look of your game scenes. Beautify includes a LUT Browser that let you quickly text each one of the included LUT in this
|
||||
package.
|
||||
Get it on the Asset Store:
|
||||
https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/lut-pack-for-beautify-202502?aid=1101lGsd
|
||||
|
||||
FRAME PACK is a collection of +75 film mattes and artistic borders that can be used with Beautify or Unity UI. This p
|
||||
|
||||
Get it on the Asset Store:
|
||||
https://assetstore.unity.com/packages/2d/gui/frame-pack-204058?aid=1101lGsd
|
||||
|
||||
MILITARY UNITS – THE STYLIZED ART COLLECTION includes +100 hand-painted, stylized portraits of military units
|
||||
|
||||
from ancient warriors to modern ships and aircraft. Great for decorating your game screens, unit sheets, icons, or prototyping.
|
||||
Get it on the Asset Store:
|
||||
https://assetstore.unity.com/packages/2d/textures-materials/military-units-the-stylized-art-collection-
|
||||
187769?aid=1101lGsd
|
||||
Luma Based Ambient Occlusion is a full-screen image effect that simulates occlusion based solely on color
|
||||
|
||||
information.
|
||||
Get it on the Asset Store:
|
||||
https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/luma-based-ambient-occlusion-ssao-2d-
|
||||
93013?aid=1101lGsd
|
||||
|
||||
RPG Starter Bundle includes a collection of visual, environment effects, navigation tools and assets to quickly build the
|
||||
|
||||
foundation of a RPG/Fantasy game or prototype. Save 50% purchasing this bundle (total value: $150)! This package
|
||||
features the following assets: Compass Navigator Pro, Skybox Plus, Dynamic Fog % Mist, Tunnel FX 2, Liquid Volume
|
||||
Get it on the Asset Store:
|
||||
https://assetstore.unity.com/packages/templates/packs/rpg-starter-bundle-213822?aid=1101lGsd
|
||||
|
||||
Beautify HDRP is a post processing effect created for High Definition Rendering Pipeline that improves the image
|
||||
|
||||
quality in real time producing incredibly crisp and vivid scenes.
|
||||
Get it on the Asset Store:
|
||||
https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/beautify-hdrp-165411?aid=1101lGsd
|
||||
Potions & Volumetric Liquid contains 8 unique (16 variations), high detailed, PBR set of magic potions with
|
||||
|
||||
advanced volumetric effect for the liquids inside the flasks.
|
||||
This asset uses Liquid Volume Pro to render the liquids and its effects (Liquid Volume Pro license is included with this
|
||||
asset).
|
||||
|
||||
Get it on the Asset Store:
|
||||
https://assetstore.unity.com/packages/3d/props/potions-volumetric-liquid-221221?aid=1101lGsd
|
||||
|
||||
Split Screen Pro is a camera composing system that enables automatic screen split between two targets or players.
|
||||
|
||||
This asset can automatically detect when the two targets are far from each other and show a dynamic split line which
|
||||
separates and adapts the view in two halves, one per each target or player.
|
||||
|
||||
Get it on the Asset Store:
|
||||
https://assetstore.unity.com/packages/tools/camera/split-screen-pro-207149?aid=1101lGsd
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 69e3348e62e074f67a41f46346aa95c4
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 067274d47684a48ca896bde6de6ea9be
|
||||
folderAsset: yes
|
||||
timeCreated: 1542886534
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,177 @@
|
|||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace ShinySSRR {
|
||||
|
||||
[CustomEditor(typeof(Reflections))]
|
||||
public class ReflectionsEditor : Editor {
|
||||
|
||||
SerializedProperty ignore, scope, layerMask, nameFilter, subMeshMask;
|
||||
SerializedProperty smoothness, perSubMeshSmoothness, subMeshSettings;
|
||||
SerializedProperty useMaterialSmoothness, materialSmoothnessMapPropertyName, materialSmoothnessIntensityPropertyName;
|
||||
SerializedProperty useMaterialNormalMap, materialNormalMapPropertyName;
|
||||
SerializedProperty fresnel, fuzzyness, contactHardening;
|
||||
SerializedProperty overrideGlobalSettings;
|
||||
SerializedProperty sampleCount, maxRayLength, thickness, binarySearchIterations, refineThickness, thicknessFine, decay, jitter;
|
||||
ShinySSRR shiny;
|
||||
|
||||
private void OnEnable() {
|
||||
ignore = serializedObject.FindProperty("ignore");
|
||||
scope = serializedObject.FindProperty("scope");
|
||||
layerMask = serializedObject.FindProperty("layerMask");
|
||||
nameFilter = serializedObject.FindProperty("nameFilter");
|
||||
subMeshMask = serializedObject.FindProperty("subMeshMask");
|
||||
smoothness = serializedObject.FindProperty("smoothness");
|
||||
useMaterialSmoothness = serializedObject.FindProperty("useMaterialSmoothness");
|
||||
materialSmoothnessMapPropertyName = serializedObject.FindProperty("materialSmoothnessMapPropertyName");
|
||||
materialSmoothnessIntensityPropertyName = serializedObject.FindProperty("materialSmoothnessIntensityPropertyName");
|
||||
perSubMeshSmoothness = serializedObject.FindProperty("perSubMeshSmoothness");
|
||||
subMeshSettings = serializedObject.FindProperty("subMeshSettings");
|
||||
useMaterialNormalMap = serializedObject.FindProperty("useMaterialNormalMap");
|
||||
materialNormalMapPropertyName = serializedObject.FindProperty("materialNormalMapPropertyName");
|
||||
fresnel = serializedObject.FindProperty("fresnel");
|
||||
fuzzyness = serializedObject.FindProperty("fuzzyness");
|
||||
contactHardening = serializedObject.FindProperty("contactHardening");
|
||||
overrideGlobalSettings = serializedObject.FindProperty("overrideGlobalSettings");
|
||||
sampleCount = serializedObject.FindProperty("sampleCount");
|
||||
maxRayLength = serializedObject.FindProperty("maxRayLength");
|
||||
binarySearchIterations = serializedObject.FindProperty("binarySearchIterations");
|
||||
thickness = serializedObject.FindProperty("thickness");
|
||||
refineThickness = serializedObject.FindProperty("refineThickness");
|
||||
thicknessFine = serializedObject.FindProperty("thicknessFine");
|
||||
decay = serializedObject.FindProperty("decay");
|
||||
jitter = serializedObject.FindProperty("jitter");
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI() {
|
||||
|
||||
if (shiny == null) {
|
||||
shiny = FindObjectOfType<ShinySSRR>();
|
||||
}
|
||||
if (shiny == null) {
|
||||
EditorGUILayout.HelpBox("Shiny SSRR must be added to the camera!", MessageType.Error);
|
||||
EditorGUILayout.Separator();
|
||||
GUI.enabled = false;
|
||||
} else {
|
||||
EditorGUILayout.BeginVertical(GUI.skin.box);
|
||||
if (GUILayout.Button("Show Global Settings")) {
|
||||
Selection.SetActiveObjectWithContext(shiny.gameObject, null);
|
||||
GUIUtility.ExitGUI();
|
||||
}
|
||||
EditorGUILayout.EndVertical();
|
||||
}
|
||||
|
||||
bool isForwardPath = true;
|
||||
if (shiny.isDeferredActive) {
|
||||
EditorGUILayout.HelpBox("In deferred mode, material properties like smoothness and normal map plus global SSR settings are used.", MessageType.Warning);
|
||||
isForwardPath = false;
|
||||
GUI.enabled = false;
|
||||
}
|
||||
|
||||
// ensure submesh array size matches materials count
|
||||
Reflections refl = (Reflections)target;
|
||||
if (refl.ssrRenderers != null && refl.ssrRenderers.Count == 1 && refl.ssrRenderers[0].originalMaterials != null) {
|
||||
List<Material> materials = refl.ssrRenderers[0].originalMaterials;
|
||||
if (refl.subMeshSettings == null) {
|
||||
refl.subMeshSettings = new SubMeshSettingsData[materials.Count];
|
||||
} else if (refl.subMeshSettings.Length < materials.Count) {
|
||||
System.Array.Resize(ref refl.subMeshSettings, materials.Count);
|
||||
}
|
||||
}
|
||||
|
||||
serializedObject.Update();
|
||||
|
||||
EditorGUILayout.PropertyField(ignore);
|
||||
if (!ignore.boolValue) {
|
||||
|
||||
if (refl.renderers?.Count == 0) {
|
||||
if (scope.intValue == (int)Scope.OnlyThisObject) {
|
||||
EditorGUILayout.HelpBox("No renderers found on this gameobject. Switch to 'Include Children' or add this script to another object which contains a renderer.", MessageType.Warning);
|
||||
} else {
|
||||
EditorGUILayout.HelpBox("No renderers found under this gameobject.", MessageType.Warning);
|
||||
}
|
||||
}
|
||||
|
||||
EditorGUILayout.PropertyField(scope);
|
||||
if (scope.intValue == (int)Scope.IncludeChildren) {
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(layerMask);
|
||||
EditorGUILayout.PropertyField(nameFilter);
|
||||
EditorGUILayout.PropertyField(subMeshMask);
|
||||
EditorGUI.indentLevel--;
|
||||
}
|
||||
|
||||
EditorGUILayout.PropertyField(useMaterialSmoothness);
|
||||
GUI.enabled = !useMaterialSmoothness.boolValue;
|
||||
EditorGUILayout.PropertyField(perSubMeshSmoothness);
|
||||
if (perSubMeshSmoothness.boolValue) {
|
||||
EditorGUILayout.PropertyField(subMeshSettings, new GUIContent("Smoothness Values"), true);
|
||||
} else {
|
||||
EditorGUILayout.PropertyField(smoothness);
|
||||
}
|
||||
GUI.enabled = isForwardPath;
|
||||
EditorGUILayout.PropertyField(useMaterialNormalMap);
|
||||
|
||||
if (useMaterialSmoothness.boolValue || perSubMeshSmoothness.boolValue || useMaterialNormalMap.boolValue) {
|
||||
EditorGUILayout.Separator();
|
||||
EditorGUILayout.LabelField("Material Property Names", EditorStyles.miniBoldLabel);
|
||||
if (useMaterialSmoothness.boolValue || perSubMeshSmoothness.boolValue) {
|
||||
EditorGUILayout.PropertyField(materialSmoothnessMapPropertyName, new GUIContent("Smoothness Map", "The material property name for the smoothness map"));
|
||||
EditorGUILayout.PropertyField(materialSmoothnessIntensityPropertyName, new GUIContent("Smoothness Intensity", "The material property name for the smoothness intensity"));
|
||||
}
|
||||
if (useMaterialNormalMap.boolValue) {
|
||||
EditorGUILayout.PropertyField(materialNormalMapPropertyName, new GUIContent("NormalMap", "The material property name for the normal map"));
|
||||
}
|
||||
}
|
||||
|
||||
EditorGUILayout.PropertyField(overrideGlobalSettings);
|
||||
if (overrideGlobalSettings.boolValue) {
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
EditorGUILayout.LabelField("Apply Quality Preset:", GUILayout.Width(EditorGUIUtility.labelWidth));
|
||||
if (GUILayout.Button("Fast")) {
|
||||
ApplyRaytracingPreset(RaytracingPreset.Fast);
|
||||
}
|
||||
if (GUILayout.Button("Medium")) {
|
||||
ApplyRaytracingPreset(RaytracingPreset.Medium);
|
||||
}
|
||||
if (GUILayout.Button("High")) {
|
||||
ApplyRaytracingPreset(RaytracingPreset.High);
|
||||
}
|
||||
if (GUILayout.Button("Superb")) {
|
||||
ApplyRaytracingPreset(RaytracingPreset.Superb);
|
||||
}
|
||||
if (GUILayout.Button("Ultra")) {
|
||||
ApplyRaytracingPreset(RaytracingPreset.Ultra);
|
||||
}
|
||||
EditorGUILayout.EndHorizontal();
|
||||
EditorGUILayout.PropertyField(sampleCount);
|
||||
EditorGUILayout.PropertyField(maxRayLength);
|
||||
EditorGUILayout.PropertyField(thickness);
|
||||
EditorGUILayout.PropertyField(binarySearchIterations);
|
||||
EditorGUILayout.PropertyField(refineThickness);
|
||||
if (refineThickness.boolValue) {
|
||||
EditorGUILayout.PropertyField(thicknessFine);
|
||||
}
|
||||
EditorGUILayout.PropertyField(jitter);
|
||||
EditorGUILayout.PropertyField(fresnel);
|
||||
EditorGUILayout.PropertyField(decay);
|
||||
EditorGUILayout.PropertyField(fuzzyness, new GUIContent("Fuzziness"));
|
||||
EditorGUILayout.PropertyField(contactHardening);
|
||||
EditorGUI.indentLevel--;
|
||||
}
|
||||
}
|
||||
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
|
||||
|
||||
void ApplyRaytracingPreset(RaytracingPreset preset) {
|
||||
Reflections ssr = (Reflections)target;
|
||||
ssr.ApplyRaytracingPreset(preset);
|
||||
EditorUtility.SetDirty(ssr);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f9d5f488a96de4e9990356f3caab6a5d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,182 @@
|
|||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
|
||||
namespace ShinySSRR {
|
||||
|
||||
[CustomEditor(typeof(ShinySSRR))]
|
||||
public class RenderFeatureEditor : Editor {
|
||||
|
||||
SerializedProperty showInSceneView;
|
||||
SerializedProperty smoothnessThreshold, reflectionsMultiplier, reflectionsMinIntensity, reflectionsMaxIntensity;
|
||||
SerializedProperty downsampling, depthBias, outputMode, separationPos, lowPrecision, stopNaN;
|
||||
SerializedProperty sampleCount, maxRayLength, thickness, binarySearchIterations, refineThickness, thicknessFine, decay, jitter, animatedJitter;
|
||||
SerializedProperty fresnel, fuzzyness, contactHardening, minimumBlur;
|
||||
SerializedProperty blurDownsampling, blurStrength, specularControl, specularSoftenPower, vignetteSize;
|
||||
Reflections[] reflections;
|
||||
public Texture bulbOnIcon, bulbOffIcon, deleteIcon, arrowRight;
|
||||
|
||||
private void OnEnable() {
|
||||
showInSceneView = serializedObject.FindProperty("showInSceneView");
|
||||
smoothnessThreshold = serializedObject.FindProperty("smoothnessThreshold");
|
||||
reflectionsMultiplier = serializedObject.FindProperty("reflectionsMultiplier");
|
||||
reflectionsMinIntensity = serializedObject.FindProperty("reflectionsMinIntensity");
|
||||
reflectionsMaxIntensity = serializedObject.FindProperty("reflectionsMaxIntensity");
|
||||
downsampling = serializedObject.FindProperty("downsampling");
|
||||
depthBias = serializedObject.FindProperty("depthBias");
|
||||
outputMode = serializedObject.FindProperty("outputMode");
|
||||
separationPos = serializedObject.FindProperty("separationPos");
|
||||
lowPrecision = serializedObject.FindProperty("lowPrecision");
|
||||
stopNaN = serializedObject.FindProperty("stopNaN");
|
||||
sampleCount = serializedObject.FindProperty("sampleCount");
|
||||
maxRayLength = serializedObject.FindProperty("maxRayLength");
|
||||
binarySearchIterations = serializedObject.FindProperty("binarySearchIterations");
|
||||
thickness = serializedObject.FindProperty("thickness");
|
||||
thicknessFine = serializedObject.FindProperty("thicknessFine");
|
||||
refineThickness = serializedObject.FindProperty("refineThickness");
|
||||
decay = serializedObject.FindProperty("decay");
|
||||
fresnel = serializedObject.FindProperty("fresnel");
|
||||
fuzzyness = serializedObject.FindProperty("fuzzyness");
|
||||
contactHardening = serializedObject.FindProperty("contactHardening");
|
||||
minimumBlur = serializedObject.FindProperty("minimumBlur");
|
||||
jitter = serializedObject.FindProperty("jitter");
|
||||
animatedJitter = serializedObject.FindProperty("animatedJitter");
|
||||
blurDownsampling = serializedObject.FindProperty("blurDownsampling");
|
||||
blurStrength = serializedObject.FindProperty("blurStrength");
|
||||
specularControl = serializedObject.FindProperty("specularControl");
|
||||
specularSoftenPower = serializedObject.FindProperty("specularSoftenPower");
|
||||
vignetteSize = serializedObject.FindProperty("vignetteSize");
|
||||
|
||||
#if UNITY_2020_1_OR_NEWER
|
||||
reflections = FindObjectsOfType<Reflections>(true);
|
||||
#else
|
||||
reflections = FindObjectsOfType<Reflections>();
|
||||
#endif
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI() {
|
||||
|
||||
ShinySSRR shiny = (ShinySSRR)target;
|
||||
int reflectionsCount = reflections != null ? reflections.Length : 0;
|
||||
|
||||
serializedObject.Update();
|
||||
|
||||
EditorGUILayout.PropertyField(showInSceneView);
|
||||
EditorGUILayout.PropertyField(downsampling);
|
||||
if (downsampling.intValue > 1 && !shiny.isDeferredActive) {
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(depthBias);
|
||||
EditorGUI.indentLevel--;
|
||||
}
|
||||
EditorGUILayout.PropertyField(outputMode);
|
||||
if (outputMode.intValue == (int)OutputMode.SideBySideComparison) {
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(separationPos);
|
||||
EditorGUI.indentLevel--;
|
||||
}
|
||||
EditorGUILayout.PropertyField(lowPrecision);
|
||||
EditorGUILayout.PropertyField(stopNaN, new GUIContent("Stop NaN"));
|
||||
|
||||
EditorGUILayout.Separator();
|
||||
EditorGUILayout.LabelField("Raytracing Settings", EditorStyles.boldLabel);
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
EditorGUILayout.LabelField("Apply Quality Preset:", GUILayout.Width(EditorGUIUtility.labelWidth));
|
||||
ShinySSRR ssr = (ShinySSRR)target;
|
||||
if (GUILayout.Button("Fast")) {
|
||||
ssr.ApplyRaytracingPreset(RaytracingPreset.Fast);
|
||||
}
|
||||
if (GUILayout.Button("Medium")) {
|
||||
ssr.ApplyRaytracingPreset(RaytracingPreset.Medium);
|
||||
}
|
||||
if (GUILayout.Button("High")) {
|
||||
ssr.ApplyRaytracingPreset(RaytracingPreset.High);
|
||||
}
|
||||
if (GUILayout.Button("Superb")) {
|
||||
ssr.ApplyRaytracingPreset(RaytracingPreset.Superb);
|
||||
}
|
||||
if (GUILayout.Button("Ultra")) {
|
||||
ssr.ApplyRaytracingPreset(RaytracingPreset.Ultra);
|
||||
}
|
||||
EditorGUILayout.EndHorizontal();
|
||||
EditorGUILayout.PropertyField(sampleCount);
|
||||
EditorGUILayout.PropertyField(maxRayLength);
|
||||
EditorGUILayout.PropertyField(thickness);
|
||||
EditorGUILayout.PropertyField(binarySearchIterations);
|
||||
EditorGUILayout.PropertyField(refineThickness);
|
||||
if (refineThickness.boolValue) {
|
||||
EditorGUILayout.PropertyField(thicknessFine);
|
||||
}
|
||||
EditorGUILayout.PropertyField(jitter);
|
||||
EditorGUILayout.PropertyField(animatedJitter);
|
||||
|
||||
EditorGUILayout.PropertyField(smoothnessThreshold, new GUIContent("Smoothness Threshold", "Minimum smoothness to receive reflections"));
|
||||
EditorGUILayout.PropertyField(reflectionsMultiplier, new GUIContent("Global Multiplier"));
|
||||
EditorGUILayout.PropertyField(reflectionsMinIntensity, new GUIContent("Min Intensity"));
|
||||
EditorGUILayout.PropertyField(reflectionsMaxIntensity, new GUIContent("Max Intensity"));
|
||||
EditorGUILayout.PropertyField(fresnel);
|
||||
EditorGUILayout.PropertyField(decay);
|
||||
EditorGUILayout.PropertyField(specularControl);
|
||||
if (specularControl.boolValue) {
|
||||
EditorGUILayout.PropertyField(specularSoftenPower);
|
||||
}
|
||||
EditorGUILayout.PropertyField(vignetteSize);
|
||||
|
||||
EditorGUILayout.PropertyField(fuzzyness, new GUIContent("Fuzziness"));
|
||||
EditorGUILayout.PropertyField(contactHardening);
|
||||
EditorGUILayout.PropertyField(minimumBlur);
|
||||
EditorGUILayout.PropertyField(blurDownsampling);
|
||||
EditorGUILayout.PropertyField(blurStrength);
|
||||
|
||||
if (reflectionsCount > 0) {
|
||||
if (!shiny.isDeferredActive) {
|
||||
EditorGUILayout.HelpBox("Some settings may be overriden by Reflections scripts on specific objects.", MessageType.Info);
|
||||
}
|
||||
EditorGUILayout.Separator();
|
||||
EditorGUILayout.LabelField("Reflections scripts in Scene", EditorStyles.helpBox);
|
||||
if (shiny.isDeferredActive) {
|
||||
EditorGUILayout.HelpBox("In deferred rendering path, only global SSR settings are used.", MessageType.Warning);
|
||||
}
|
||||
for (int k = 0; k < reflectionsCount; k++) {
|
||||
Reflections refl = reflections[k];
|
||||
if (refl == null) continue;
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
GUI.enabled = refl.gameObject.activeInHierarchy;
|
||||
if (GUILayout.Button(new GUIContent(refl.enabled ? bulbOnIcon : bulbOffIcon, "Toggle on/off this reflection"), EditorStyles.miniButton, GUILayout.Width(35))) {
|
||||
refl.enabled = !refl.enabled;
|
||||
}
|
||||
GUI.enabled = true;
|
||||
if (GUILayout.Button(new GUIContent(deleteIcon, "Remove this reflection script"), EditorStyles.miniButton, GUILayout.Width(35))) {
|
||||
if (EditorUtility.DisplayDialog("Confirmation", "Remove the reflection script on " + refl.gameObject.name + "?", "Ok", "Cancel")) {
|
||||
DestroyImmediate(refl);
|
||||
reflections[k] = null;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (GUILayout.Button(new GUIContent(arrowRight, "Select this reflection script"), EditorStyles.miniButton, GUILayout.Width(35), GUILayout.Width(40))) {
|
||||
Selection.activeObject = refl.gameObject;
|
||||
EditorGUIUtility.PingObject(refl.gameObject);
|
||||
GUIUtility.ExitGUI();
|
||||
}
|
||||
GUI.enabled = refl.isActiveAndEnabled;
|
||||
if (!refl.gameObject.activeInHierarchy) {
|
||||
GUILayout.Label(refl.name + " (hidden gameobject)");
|
||||
} else {
|
||||
GUILayout.Label(refl.name);
|
||||
}
|
||||
GUI.enabled = true;
|
||||
EditorGUILayout.EndHorizontal();
|
||||
}
|
||||
} else if (reflectionsCount == 0) {
|
||||
if (!shiny.isDeferredActive) {
|
||||
EditorGUILayout.Separator();
|
||||
EditorGUILayout.LabelField("Reflections in Scene", EditorStyles.helpBox);
|
||||
EditorGUILayout.HelpBox("In forward rendering path, add a Reflections script to any object or group of objects that you want to get reflections.", MessageType.Info);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 13896aabf7b59431f81d75f56d7dece0
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences:
|
||||
- bulbOnIcon: {fileID: 2800000, guid: dd840e0a27f8e4bb5844722993c541be, type: 3}
|
||||
- bulbOffIcon: {fileID: 2800000, guid: 7f28d2ee7b6104945a9761f8a6879afc, type: 3}
|
||||
- deleteIcon: {fileID: 2800000, guid: d156c5754f844469b8874c1c5fb37e8b, type: 3}
|
||||
- arrowRight: {fileID: 2800000, guid: cb3a0e4282dfb452884cb8f63e7975f5, type: 3}
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 48f41183a3a11478dbfd6fa43108a255
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
After Width: | Height: | Size: 882 B |
|
@ -0,0 +1,116 @@
|
|||
fileFormatVersion: 2
|
||||
guid: cb3a0e4282dfb452884cb8f63e7975f5
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 2
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
After Width: | Height: | Size: 2.2 KiB |
|
@ -0,0 +1,116 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 7f28d2ee7b6104945a9761f8a6879afc
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 2
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
After Width: | Height: | Size: 3.8 KiB |
|
@ -0,0 +1,116 @@
|
|||
fileFormatVersion: 2
|
||||
guid: dd840e0a27f8e4bb5844722993c541be
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 2
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
After Width: | Height: | Size: 1.2 KiB |
|
@ -0,0 +1,116 @@
|
|||
fileFormatVersion: 2
|
||||
guid: d156c5754f844469b8874c1c5fb37e8b
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 2
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,56 @@
|
|||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace ShinySSRR {
|
||||
|
||||
[CustomPropertyDrawer(typeof(SubMeshSettingsData))]
|
||||
public class SubMeshSettingsDrawer : PropertyDrawer {
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label) {
|
||||
GUIStyle style = GUI.skin.GetStyle("label");
|
||||
float lineHeight = style.CalcHeight(label, EditorGUIUtility.currentViewWidth);
|
||||
return lineHeight;
|
||||
}
|
||||
|
||||
|
||||
public override void OnGUI(Rect position, SerializedProperty prop, GUIContent label) {
|
||||
Rect firstColumn = position;
|
||||
firstColumn.width = EditorGUIUtility.labelWidth - firstColumn.x;
|
||||
Rect secondColumn = position;
|
||||
secondColumn.x = EditorGUIUtility.labelWidth + 5;
|
||||
secondColumn.width = position.width - secondColumn.x;
|
||||
int propIndex = GetArrayIndex(prop);
|
||||
Reflections refl = (Reflections)prop.serializedObject.targetObject;
|
||||
if (refl.ssrRenderers != null && refl.ssrRenderers.Count == 1 && refl.ssrRenderers[0].originalMaterials != null) {
|
||||
List<Material> materials = refl.ssrRenderers[0].originalMaterials;
|
||||
int matIndex = propIndex;
|
||||
if (matIndex >= materials.Count) {
|
||||
matIndex = materials.Count - 1;
|
||||
}
|
||||
EditorGUI.LabelField(firstColumn, materials[matIndex].name);
|
||||
} else {
|
||||
EditorGUI.LabelField(firstColumn, "SubMesh " + propIndex);
|
||||
}
|
||||
EditorGUI.PropertyField(secondColumn, prop.FindPropertyRelative("smoothness"), GUIContent.none);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the index of this property in the array
|
||||
/// </summary>
|
||||
int GetArrayIndex(SerializedProperty property) {
|
||||
string s = property.propertyPath;
|
||||
int bracket = s.LastIndexOf("[");
|
||||
if (bracket >= 0) {
|
||||
string indexStr = s.Substring(bracket + 1, s.Length - bracket - 2);
|
||||
int index;
|
||||
if (int.TryParse(indexStr, out index)) {
|
||||
return index;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1b3f27cbc12734736a0815f99ff123c8
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,77 @@
|
|||
********************************
|
||||
* SHINY - SSRR *
|
||||
* Created by Kronnect *
|
||||
* README FILE *
|
||||
********************************
|
||||
|
||||
|
||||
This package is designed for the built-in pipeline (for URP, please remove this one and import the other package included in the bundle).
|
||||
Requirements: Unity 2019.4 or later
|
||||
|
||||
How to use the asset
|
||||
--------------------
|
||||
Add ShinySSRR to the camera where you want reflections to be visible
|
||||
|
||||
|
||||
Help & Support Forum
|
||||
--------------------
|
||||
|
||||
Check the Documentation (PDF) for detailed instructions:
|
||||
|
||||
Have any question or issue?
|
||||
* Email: contact@kronnect.com
|
||||
* Support Forum: https://kronnect.com
|
||||
* Twitter: @Kronnect
|
||||
|
||||
If you like Shiny, please rate it on the Asset Store. It encourages us to keep improving it! Thanks!
|
||||
|
||||
|
||||
Future updates
|
||||
--------------
|
||||
|
||||
All our assets follow an incremental development process by which a few beta releases are published on our support forum (kronnect.com).
|
||||
We encourage you to signup and engage our forum. The forum is the primary support and feature discussions medium.
|
||||
|
||||
Of course, all updates of the asset will be eventually available on the Asset Store.
|
||||
|
||||
|
||||
|
||||
More Cool Assets!
|
||||
-----------------
|
||||
Check out our other assets here:
|
||||
https://assetstore.unity.com/publishers/15018
|
||||
|
||||
|
||||
|
||||
Version history
|
||||
---------------
|
||||
|
||||
Version 4.1
|
||||
- Added "Smoothness Threshold" parameter to global settings
|
||||
|
||||
Version 4.0
|
||||
- Added raytracing quality presets
|
||||
- Added "Refine Thickness" option
|
||||
- Replaced "Step Size" with "Max Ray Length"
|
||||
- Added "Stop NaN" option which can prevents artifacts when blending reflections due to pixel values out of range
|
||||
- Added "Blur Strength" option
|
||||
- Fixes and minor improvements
|
||||
|
||||
Version 3.0
|
||||
- Redesigned reflection blur with simpler settings and contact hardening option
|
||||
- New pyramid-blur for contact hardening/distance blur
|
||||
- Rearranged inspector options
|
||||
- Material smoothness now reduces fuzzyness
|
||||
|
||||
Version 2.6
|
||||
- Ability to customize the material property names for smoothness map & normal map in Reflections script
|
||||
|
||||
Version 2.5
|
||||
- Added support for smoothness map when using metallic workflow in forward rendering path
|
||||
|
||||
Version 1.1
|
||||
- Max Reflections Multiplier increased to 2
|
||||
- Added Reflections Min and Max clamping parameters
|
||||
|
||||
Version 1.0
|
||||
- First release for the built-in pipeline based on the URP version feature set
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: afa59e23243a84ed78c2b40071a90760
|
||||
timeCreated: 1542901568
|
||||
licenseType: Store
|
||||
TextScriptImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e1963f396e1564dc98a20530a7199f1d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8dba4c348fa3a43c096bbbabc14d44b8
|
||||
folderAsset: yes
|
||||
timeCreated: 1542876301
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 544859eb1711348f3888a2d91d804bd4
|
||||
folderAsset: yes
|
||||
timeCreated: 1542893576
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,134 @@
|
|||
Shader "Hidden/Kronnect/SSR" {
|
||||
Properties {
|
||||
_MainTex("", any) = "" {}
|
||||
_BumpMap("Normal Map", 2D) = "bump" {}
|
||||
_SmoothnessMap("Smoothness Map", 2D) = "white" {}
|
||||
_Color("", Color) = (1,1,1)
|
||||
_NoiseTex("", any) = "" {}
|
||||
_SSRSettings("", Vector) = (1,1,1,1)
|
||||
_SSRSettings2("", Vector) = (1,1,1,1)
|
||||
}
|
||||
|
||||
HLSLINCLUDE
|
||||
#pragma target 3.0
|
||||
ENDHLSL
|
||||
|
||||
|
||||
Subshader {
|
||||
|
||||
Tags { "RenderType" = "Transparent" "DisableBatching"="True" "ForceNoShadowCasting"="True" }
|
||||
|
||||
HLSLINCLUDE
|
||||
#pragma target 3.0
|
||||
#pragma prefer_hlslcc gles
|
||||
#pragma exclude_renderers d3d11_9x
|
||||
#include "UnityCG.cginc"
|
||||
ENDHLSL
|
||||
|
||||
Pass { // 0: Copy exact
|
||||
ZWrite Off ZTest Always Cull Off
|
||||
HLSLPROGRAM
|
||||
#pragma vertex VertSSR
|
||||
#pragma fragment FragCopyExact
|
||||
#include "SSR_Blends.hlsl"
|
||||
ENDHLSL
|
||||
}
|
||||
|
||||
Pass { // 1: Surface reflection
|
||||
HLSLPROGRAM
|
||||
#pragma vertex VertSSRSurf
|
||||
#pragma fragment FragSSRSurf
|
||||
#pragma multi_compile_local _ SSR_NORMALMAP
|
||||
#pragma multi_compile_local _ SSR_SMOOTHNESSMAP
|
||||
#pragma multi_compile_local _ SSR_JITTER
|
||||
#pragma multi_compile_local _ SSR_THICKNESS_FINE
|
||||
|
||||
#include "SSR_Common.hlsl"
|
||||
#include "SSR_Surface_Pass.hlsl"
|
||||
ENDHLSL
|
||||
}
|
||||
|
||||
Pass { // 2 Resolve
|
||||
ZWrite Off ZTest Always Cull Off
|
||||
HLSLPROGRAM
|
||||
#pragma vertex VertSSR
|
||||
#pragma fragment FragResolve
|
||||
#include "SSR_Solve.hlsl"
|
||||
ENDHLSL
|
||||
}
|
||||
|
||||
Pass { // 3 Blur horizontally
|
||||
ZWrite Off ZTest Always Cull Off
|
||||
HLSLPROGRAM
|
||||
#pragma vertex VertBlur
|
||||
#pragma fragment FragBlur
|
||||
#pragma multi_compile_local _ SSR_DENOISE
|
||||
#define SSR_BLUR_HORIZ
|
||||
#include "SSR_Blur.hlsl"
|
||||
ENDHLSL
|
||||
}
|
||||
|
||||
Pass { // 4 Blur vertically
|
||||
ZWrite Off ZTest Always Cull Off
|
||||
HLSLPROGRAM
|
||||
#pragma vertex VertBlur
|
||||
#pragma multi_compile_local _ SSR_DENOISE
|
||||
#pragma fragment FragBlur
|
||||
#include "SSR_Blur.hlsl"
|
||||
ENDHLSL
|
||||
}
|
||||
|
||||
Pass { // 5 Debug
|
||||
ZWrite Off ZTest Always Cull Off
|
||||
Blend One Zero
|
||||
HLSLPROGRAM
|
||||
#pragma vertex VertSSR
|
||||
#pragma fragment FragCopyExact
|
||||
#include "SSR_Blends.hlsl"
|
||||
ENDHLSL
|
||||
}
|
||||
|
||||
Pass { // 6 Combine
|
||||
ZWrite Off ZTest Always Cull Off
|
||||
Blend One One // precomputed alpha in Resolve pass
|
||||
HLSLPROGRAM
|
||||
#pragma vertex VertSSR
|
||||
#pragma fragment FragCombine
|
||||
#include "SSR_Blends.hlsl"
|
||||
ENDHLSL
|
||||
}
|
||||
|
||||
Pass { // 7 Combine with compare
|
||||
ZWrite Off ZTest Always Cull Off
|
||||
Blend One One // precomputed alpha in Resolve pass
|
||||
HLSLPROGRAM
|
||||
#pragma vertex VertSSR
|
||||
#pragma fragment FragCombineWithCompare
|
||||
#include "SSR_Blends.hlsl"
|
||||
ENDHLSL
|
||||
}
|
||||
|
||||
Pass { // 8 Deferred pass
|
||||
ZWrite Off ZTest Always Cull Off
|
||||
HLSLPROGRAM
|
||||
#pragma vertex VertSSR
|
||||
#pragma fragment FragSSR
|
||||
#pragma multi_compile_local _ SSR_JITTER
|
||||
#pragma multi_compile_local _ SSR_THICKNESS_FINE
|
||||
#include "SSR_Common.hlsl"
|
||||
#include "SSR_GBuf_Pass.hlsl"
|
||||
ENDHLSL
|
||||
}
|
||||
|
||||
Pass { // 9: Copy with bilinear filter
|
||||
ZWrite Off ZTest Always Cull Off
|
||||
HLSLPROGRAM
|
||||
#pragma vertex VertSSR
|
||||
#pragma fragment FragCopy
|
||||
#include "SSR_Blends.hlsl"
|
||||
ENDHLSL
|
||||
}
|
||||
|
||||
}
|
||||
FallBack Off
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 3dc251e8adb204285a24311c59c0dc71
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
preprocessorOverride: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,115 @@
|
|||
#ifndef SSR_BLENDS
|
||||
#define SSR_BLENDS
|
||||
|
||||
// Copyright 2021 Kronnect - All Rights Reserved.
|
||||
|
||||
#include "SSR_Common.hlsl"
|
||||
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_MainTex);
|
||||
float4 _MainTex_ST;
|
||||
float4 _MainTex_TexelSize;
|
||||
float4 _SSRSettings4;
|
||||
#define SEPARATION_POS _SSRSettings4.x
|
||||
float _MinimumBlur;
|
||||
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_RayCastRT);
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_ReflectionsRT);
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_BlurRTMip0);
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_BlurRTMip1);
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_BlurRTMip2);
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_BlurRTMip3);
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_BlurRTMip4);
|
||||
|
||||
|
||||
struct Attributes {
|
||||
float4 vertex : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct VaryingsSSR {
|
||||
float4 positionCS : SV_POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
|
||||
VaryingsSSR VertSSR(Attributes input) {
|
||||
VaryingsSSR output;
|
||||
UNITY_SETUP_INSTANCE_ID(input);
|
||||
UNITY_TRANSFER_INSTANCE_ID(input, output);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
|
||||
output.positionCS = UnityObjectToClipPos(input.vertex);
|
||||
output.uv = UnityStereoScreenSpaceUVAdjust(input.uv, _MainTex_ST);
|
||||
return output;
|
||||
}
|
||||
|
||||
half4 FragCopy (VaryingsSSR i) : SV_Target {
|
||||
UNITY_SETUP_INSTANCE_ID(i);
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
|
||||
half4 pixel = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv);
|
||||
return pixel;
|
||||
}
|
||||
|
||||
half4 FragCopyExact (VaryingsSSR i) : SV_Target {
|
||||
UNITY_SETUP_INSTANCE_ID(i);
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
|
||||
half4 pixel = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv);
|
||||
pixel = max(pixel, 0.0);
|
||||
return pixel;
|
||||
}
|
||||
|
||||
|
||||
half4 Combine (VaryingsSSR i) : SV_Target {
|
||||
|
||||
// exclude skybox from blur bleed
|
||||
float depth01 = GetDepth01(i.uv);
|
||||
if (depth01 >= 1) return half4(0,0,0,0);
|
||||
|
||||
half4 mip0 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_ReflectionsRT, i.uv);
|
||||
half4 mip1 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_BlurRTMip0, i.uv);
|
||||
half4 mip2 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_BlurRTMip1, i.uv);
|
||||
half4 mip3 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_BlurRTMip2, i.uv);
|
||||
half4 mip4 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_BlurRTMip3, i.uv);
|
||||
half4 mip5 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_BlurRTMip4, i.uv);
|
||||
|
||||
half r = mip5.a;
|
||||
half4 reflData = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_RayCastRT, i.uv);
|
||||
if (reflData.z > 0) {
|
||||
r = min(reflData.z, r);
|
||||
}
|
||||
|
||||
half roughness = clamp(r + _MinimumBlur, 0, 5);
|
||||
|
||||
half w0 = max(0, 1.0 - roughness);
|
||||
half w1 = max(0, 1.0 - abs(roughness - 1.0));
|
||||
half w2 = max(0, 1.0 - abs(roughness - 2.0));
|
||||
half w3 = max(0, 1.0 - abs(roughness - 3.0));
|
||||
half w4 = max(0, 1.0 - abs(roughness - 4.0));
|
||||
half w5 = max(0, 1.0 - abs(roughness - 5.0));
|
||||
|
||||
half4 refl = mip0 * w0 + mip1 * w1 + mip2 * w2 + mip3 * w3 + mip4 * w4 + mip5 * w5;
|
||||
return refl;
|
||||
}
|
||||
|
||||
|
||||
half4 FragCombine (VaryingsSSR i) : SV_Target {
|
||||
UNITY_SETUP_INSTANCE_ID(i);
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
|
||||
return Combine(i);
|
||||
}
|
||||
|
||||
|
||||
half4 FragCombineWithCompare (VaryingsSSR i) : SV_Target {
|
||||
UNITY_SETUP_INSTANCE_ID(i);
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
|
||||
if (i.uv.x < SEPARATION_POS - _MainTex_TexelSize.x * 3) {
|
||||
return 0;
|
||||
} else if (i.uv.x < SEPARATION_POS + _MainTex_TexelSize.x * 3) {
|
||||
return 1.0;
|
||||
} else {
|
||||
return Combine(i);
|
||||
}
|
||||
}
|
||||
|
||||
#endif // SSR_BLENDS
|
|
@ -0,0 +1,10 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 744b9a39168214ae0a406965afb5f3d5
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
preprocessorOverride: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,98 @@
|
|||
#ifndef SSR_BLUR
|
||||
#define SSR_BLUR
|
||||
|
||||
// Copyright 2021 Kronnect - All Rights Reserved.
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_MainTex);
|
||||
float4 _MainTex_ST;
|
||||
float4 _MainTex_TexelSize;
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_RayCastRT);
|
||||
float4 _SSRSettings4;
|
||||
#define DENOISE_POWER _SSRSettings4.w
|
||||
float2 _SSRBlurStrength;
|
||||
#define BLUR_STRENGTH_HORIZ _SSRBlurStrength.x
|
||||
#define BLUR_STRENGTH_VERT _SSRBlurStrength.y
|
||||
|
||||
#if defined(UNITY_SINGLE_PASS_STEREO)
|
||||
#define SSR_VERTEX_CROSS_DATA
|
||||
#define SSR_VERTEX_OUTPUT_GAUSSIAN_UV(o)
|
||||
#if defined(SSR_BLUR_HORIZ)
|
||||
#define SSR_FRAG_SETUP_GAUSSIAN_UV(i) float2 offset1 = float2(_MainTex_TexelSize.x * 1.3846153846 * BLUR_STRENGTH_HORIZ, 0); float2 offset2 = float2(_MainTex_TexelSize.x * 3.2307692308 * BLUR_STRENGTH_HORIZ, 0);
|
||||
#else
|
||||
#define SSR_FRAG_SETUP_GAUSSIAN_UV(i) float2 offset1 = float2(0, _MainTex_TexelSize.y * 1.3846153846 * BLUR_STRENGTH_VERT); float2 offset2 = float2(0, _MainTex_TexelSize.y * 3.2307692308 * BLUR_STRENGTH_VERT);
|
||||
#endif
|
||||
|
||||
#else
|
||||
#define SSR_VERTEX_CROSS_DATA float2 offset1 : TEXCOORD1; float2 offset2 : TEXCOORD2;
|
||||
#if defined(SSR_BLUR_HORIZ)
|
||||
#define SSR_VERTEX_OUTPUT_GAUSSIAN_UV(o) o.offset1 = float2(_MainTex_TexelSize.x * 1.3846153846 * BLUR_STRENGTH_HORIZ, 0); o.offset2 = float2(_MainTex_TexelSize.x * 3.2307692308 * BLUR_STRENGTH_HORIZ, 0);
|
||||
#else
|
||||
#define SSR_VERTEX_OUTPUT_GAUSSIAN_UV(o) o.offset1 = float2(0, _MainTex_TexelSize.y * 1.3846153846 * BLUR_STRENGTH_VERT); o.offset2 = float2(0, _MainTex_TexelSize.y * 3.2307692308 * BLUR_STRENGTH_VERT);
|
||||
#endif
|
||||
#define SSR_FRAG_SETUP_GAUSSIAN_UV(i) float2 offset1 = i.offset1; float2 offset2 = i.offset2;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
struct Attributes {
|
||||
float4 vertex : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct VaryingsCross {
|
||||
float4 positionCS : SV_POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
SSR_VERTEX_CROSS_DATA
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
|
||||
VaryingsCross VertBlur(Attributes input) {
|
||||
VaryingsCross output;
|
||||
UNITY_SETUP_INSTANCE_ID(v);
|
||||
UNITY_TRANSFER_INSTANCE_ID(v, output);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
|
||||
output.positionCS = UnityObjectToClipPos(input.vertex);
|
||||
output.uv = UnityStereoScreenSpaceUVAdjust(input.uv, _MainTex_ST);
|
||||
SSR_VERTEX_OUTPUT_GAUSSIAN_UV(output)
|
||||
return output;
|
||||
}
|
||||
|
||||
|
||||
inline half getLuma(float3 rgb) {
|
||||
const half3 lum = float3(0.299, 0.587, 0.114);
|
||||
return dot(rgb, lum);
|
||||
}
|
||||
|
||||
half4 FragBlur (VaryingsCross i): SV_Target {
|
||||
UNITY_SETUP_INSTANCE_ID(i);
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
|
||||
SSR_FRAG_SETUP_GAUSSIAN_UV(i)
|
||||
|
||||
float2 uv = i.uv;
|
||||
half4 c0 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, uv);
|
||||
half4 c1 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, uv + offset1);
|
||||
half4 c2 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, uv - offset1);
|
||||
half4 c3 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, uv + offset2);
|
||||
half4 c4 = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, uv - offset2);
|
||||
|
||||
#if SSR_DENOISE
|
||||
half l0 = abs(getLuma(c0.rgb));
|
||||
half l1 = abs(getLuma(c1.rgb));
|
||||
half l2 = abs(getLuma(c2.rgb));
|
||||
half l3 = abs(getLuma(c3.rgb));
|
||||
half l4 = abs(getLuma(c4.rgb));
|
||||
|
||||
half ml = (l0+l1+l2+l3+l4) * 0.2;
|
||||
c0.rgb *= pow( (1.0 + min(ml, l0)) / (1.0 + l0) , DENOISE_POWER);
|
||||
c1.rgb *= pow( (1.0 + min(ml, l1)) / (1.0 + l1) , DENOISE_POWER);
|
||||
c2.rgb *= pow( (1.0 + min(ml, l2)) / (1.0 + l2) , DENOISE_POWER);
|
||||
c3.rgb *= pow( (1.0 + min(ml, l3)) / (1.0 + l3) , DENOISE_POWER);
|
||||
c4.rgb *= pow( (1.0 + min(ml, l4)) / (1.0 + l4) , DENOISE_POWER);
|
||||
#endif
|
||||
|
||||
half4 blurred = c0 * 0.2270270270 + (c1 + c2) * 0.3162162162 + (c3 + c4) * 0.0702702703;
|
||||
return blurred;
|
||||
}
|
||||
|
||||
#endif // SSR_BLUR
|
|
@ -0,0 +1,10 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 22f6b60d67e3646a5af5737d10b8b4d8
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
preprocessorOverride: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,177 @@
|
|||
#ifndef SSR_COMMON
|
||||
#define SSR_COMMON
|
||||
|
||||
struct VertexPositionInputs
|
||||
{
|
||||
float3 positionWS; // World space position
|
||||
float3 positionVS; // View space position
|
||||
float4 positionCS; // Homogeneous clip space position
|
||||
float4 positionNDC;// Homogeneous normalized device coordinates
|
||||
};
|
||||
|
||||
struct VertexNormalInputs
|
||||
{
|
||||
float3 tangentWS;
|
||||
float3 bitangentWS;
|
||||
float3 normalWS;
|
||||
};
|
||||
|
||||
|
||||
#define FLT_MIN 1.175494351e-38 // Minimum normalized positive floating-point number
|
||||
|
||||
// Normalize that account for vectors with zero length
|
||||
float3 SafeNormalize(float3 inVec)
|
||||
{
|
||||
float dp3 = max(FLT_MIN, dot(inVec, inVec));
|
||||
return inVec * rsqrt(dp3);
|
||||
}
|
||||
|
||||
|
||||
float4x4 GetObjectToWorldMatrix()
|
||||
{
|
||||
return UNITY_MATRIX_M;
|
||||
}
|
||||
|
||||
float4x4 GetWorldToObjectMatrix()
|
||||
{
|
||||
return unity_WorldToObject;
|
||||
}
|
||||
|
||||
float4x4 GetWorldToViewMatrix()
|
||||
{
|
||||
return UNITY_MATRIX_V;
|
||||
}
|
||||
|
||||
float4x4 GetWorldToHClipMatrix()
|
||||
{
|
||||
return UNITY_MATRIX_VP;
|
||||
}
|
||||
|
||||
float3 GetCameraPositionWS()
|
||||
{
|
||||
return _WorldSpaceCameraPos;
|
||||
}
|
||||
|
||||
|
||||
float3 TransformObjectToWorld(float3 positionOS)
|
||||
{
|
||||
return mul(GetObjectToWorldMatrix(), float4(positionOS, 1.0)).xyz;
|
||||
}
|
||||
|
||||
float3 TransformWorldToView(float3 positionWS)
|
||||
{
|
||||
return mul(GetWorldToViewMatrix(), float4(positionWS, 1.0)).xyz;
|
||||
}
|
||||
|
||||
float3 TransformObjectToWorldDir(float3 dirOS)
|
||||
{
|
||||
// Normalize to support uniform scaling
|
||||
return SafeNormalize(mul((float3x3)GetObjectToWorldMatrix(), dirOS));
|
||||
}
|
||||
|
||||
float3 TransformWorldToViewDir(float3 dirWS)
|
||||
{
|
||||
return mul((float3x3)GetWorldToViewMatrix(), dirWS).xyz;
|
||||
}
|
||||
|
||||
float4 TransformObjectToHClip(float3 positionOS)
|
||||
{
|
||||
// More efficient than computing M*VP matrix product
|
||||
return mul(GetWorldToHClipMatrix(), mul(GetObjectToWorldMatrix(), float4(positionOS, 1.0)));
|
||||
}
|
||||
|
||||
float4 TransformWorldToHClip(float3 positionWS)
|
||||
{
|
||||
return mul(GetWorldToHClipMatrix(), float4(positionWS, 1.0));
|
||||
}
|
||||
|
||||
float3 TransformTangentToWorld(float3 dirTS, float3x3 tangentToWorld)
|
||||
{
|
||||
// Note matrix is in row major convention with left multiplication as it is build on the fly
|
||||
return mul(dirTS, tangentToWorld);
|
||||
}
|
||||
|
||||
|
||||
float3 TransformObjectToWorldNormal(float3 normalOS)
|
||||
{
|
||||
#ifdef UNITY_ASSUME_UNIFORM_SCALING
|
||||
return TransformObjectToWorldDir(normalOS);
|
||||
#else
|
||||
// Normal need to be multiply by inverse transpose
|
||||
return SafeNormalize(mul(normalOS, (float3x3)GetWorldToObjectMatrix()));
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
VertexPositionInputs GetVertexPositionInputs(float3 positionOS)
|
||||
{
|
||||
VertexPositionInputs input;
|
||||
input.positionWS = TransformObjectToWorld(positionOS);
|
||||
input.positionVS = TransformWorldToView(input.positionWS);
|
||||
input.positionCS = TransformWorldToHClip(input.positionWS);
|
||||
|
||||
float4 ndc = input.positionCS * 0.5f;
|
||||
input.positionNDC.xy = float2(ndc.x, ndc.y * _ProjectionParams.x) + ndc.w;
|
||||
input.positionNDC.zw = input.positionCS.zw;
|
||||
|
||||
return input;
|
||||
}
|
||||
|
||||
float GetOddNegativeScale()
|
||||
{
|
||||
return unity_WorldTransformParams.w;
|
||||
}
|
||||
|
||||
|
||||
VertexNormalInputs GetVertexNormalInputs(float3 normalOS, float4 tangentOS)
|
||||
{
|
||||
VertexNormalInputs tbn;
|
||||
|
||||
// mikkts space compliant. only normalize when extracting normal at frag.
|
||||
float sign = tangentOS.w * GetOddNegativeScale();
|
||||
tbn.normalWS = TransformObjectToWorldNormal(normalOS);
|
||||
tbn.tangentWS = TransformObjectToWorldDir(tangentOS.xyz);
|
||||
tbn.bitangentWS = cross(tbn.normalWS, tbn.tangentWS) * sign;
|
||||
return tbn;
|
||||
}
|
||||
|
||||
float4 ComputeClipSpacePosition(float2 positionNDC, float deviceDepth)
|
||||
{
|
||||
float4 positionCS = float4(positionNDC * 2.0 - 1.0, deviceDepth, 1.0);
|
||||
|
||||
#if UNITY_UV_STARTS_AT_TOP
|
||||
// Our world space, view space, screen space and NDC space are Y-up.
|
||||
// Our clip space is flipped upside-down due to poor legacy Unity design.
|
||||
// The flip is baked into the projection matrix, so we only have to flip
|
||||
// manually when going from CS to NDC and back.
|
||||
positionCS.y = -positionCS.y;
|
||||
#endif
|
||||
|
||||
return positionCS;
|
||||
}
|
||||
|
||||
float3 ComputeViewSpacePosition(float2 positionNDC, float deviceDepth, float4x4 invProjMatrix)
|
||||
{
|
||||
float4 positionCS = ComputeClipSpacePosition(positionNDC, deviceDepth);
|
||||
float4 positionVS = mul(invProjMatrix, positionCS);
|
||||
// The view space uses a right-handed coordinate system.
|
||||
positionVS.z = -positionVS.z;
|
||||
return positionVS.xyz / positionVS.w;
|
||||
}
|
||||
|
||||
|
||||
UNITY_DECLARE_DEPTH_TEXTURE(_CameraDepthTexture);
|
||||
float4 _CameraDepthTexture_TexelSize;
|
||||
|
||||
inline float GetDepth01(float2 uv) {
|
||||
float rawDepth = SAMPLE_DEPTH_TEXTURE_LOD(_CameraDepthTexture, float4(uv, 0, 0)).r;
|
||||
return Linear01Depth(rawDepth);
|
||||
}
|
||||
|
||||
inline float GetLinearDepth(float2 uv) {
|
||||
float rawDepth = SAMPLE_DEPTH_TEXTURE_LOD(_CameraDepthTexture, float4(uv, 0, 0)).r;
|
||||
return LinearEyeDepth(rawDepth);
|
||||
}
|
||||
|
||||
|
||||
#endif // SSR_COMMON
|
|
@ -0,0 +1,10 @@
|
|||
fileFormatVersion: 2
|
||||
guid: fe624f91c6d944cbd9575730aae2653d
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
preprocessorOverride: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,201 @@
|
|||
#ifndef SSR_GBUF_PASS
|
||||
#define SSR_GBUF_PASS
|
||||
|
||||
// Copyright 2021 Kronnect - All Rights Reserved.
|
||||
sampler2D _NoiseTex;
|
||||
float4 _NoiseTex_TexelSize;
|
||||
|
||||
float4 _MaterialData;
|
||||
#define SMOOTHNESS _MaterialData.x
|
||||
#define FRESNEL _MaterialData.y
|
||||
#define FUZZYNESS _MaterialData.z
|
||||
#define DECAY _MaterialData.w
|
||||
|
||||
float4 _SSRSettings;
|
||||
#define THICKNESS _SSRSettings.x
|
||||
#define SAMPLES _SSRSettings.y
|
||||
#define BINARY_SEARCH_ITERATIONS _SSRSettings.z
|
||||
#define MAX_RAY_LENGTH _SSRSettings.w
|
||||
|
||||
float2 _SSRSettings5;
|
||||
#define REFLECTIONS_THRESHOLD _SSRSettings5.y
|
||||
|
||||
#if SSR_THICKNESS_FINE
|
||||
#define THICKNESS_FINE _SSRSettings5.x
|
||||
#else
|
||||
#define THICKNESS_FINE THICKNESS
|
||||
#endif
|
||||
|
||||
float4 _SSRSettings2;
|
||||
#define JITTER _SSRSettings2.x
|
||||
#define CONTACT_HARDENING _SSRSettings2.y
|
||||
|
||||
float4 _SSRSettings3;
|
||||
#define INPUT_SIZE _SSRSettings3.xy
|
||||
#define GOLDEN_RATIO_ACUM _SSRSettings3.z
|
||||
#define DEPTH_BIAS _SSRSettings3.w
|
||||
|
||||
float4x4 _WorldToViewDir;
|
||||
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_CameraGBufferTexture1);
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_CameraGBufferTexture2);
|
||||
|
||||
#define dot2(x) dot(x, x)
|
||||
|
||||
|
||||
struct Attributes {
|
||||
float4 positionOS : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct VaryingsSSR {
|
||||
float4 positionCS : SV_POSITION;
|
||||
float4 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
|
||||
VaryingsSSR VertSSR(Attributes input) {
|
||||
VaryingsSSR output;
|
||||
UNITY_SETUP_INSTANCE_ID(input);
|
||||
UNITY_TRANSFER_INSTANCE_ID(input, output);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
|
||||
output.positionCS = TransformObjectToHClip(input.positionOS.xyz);
|
||||
output.uv.xy = input.uv;
|
||||
float4 projPos = output.positionCS * 0.5;
|
||||
projPos.xy = projPos.xy + projPos.w;
|
||||
output.uv.zw = projPos.xy;
|
||||
return output;
|
||||
}
|
||||
|
||||
|
||||
float4 SSR_Pass(float2 uv, float3 normalVS, float3 rayStart, float smoothness) {
|
||||
|
||||
float3 viewDirVS = normalize(rayStart);
|
||||
float3 rayDir = reflect( viewDirVS, normalVS );
|
||||
|
||||
// if ray is toward the camera, early exit (optional)
|
||||
//if (rayDir.z < 0) return 0.0.xxxx;
|
||||
|
||||
float rayLength = MAX_RAY_LENGTH;
|
||||
|
||||
float3 rayEnd = rayStart + rayDir * rayLength;
|
||||
if (rayEnd.z < _ProjectionParams.y) {
|
||||
rayLength = (rayStart.z - _ProjectionParams.y) / rayDir.z;
|
||||
}
|
||||
rayEnd = rayStart + rayDir * rayLength;
|
||||
|
||||
float4 sposStart = mul(unity_CameraProjection, float4(rayStart, 1.0));
|
||||
float4 sposEnd = mul(unity_CameraProjection, float4(rayEnd, 1.0));
|
||||
float k0 = rcp(sposStart.w);
|
||||
float q0 = rayStart.z * k0;
|
||||
float k1 = rcp(sposEnd.w);
|
||||
float q1 = rayEnd.z * k1;
|
||||
float4 p = float4(uv, q0, k0);
|
||||
|
||||
// length in pixels
|
||||
float2 uv1 = (sposEnd.xy * rcp(rayEnd.z) + 1.0) * 0.5;
|
||||
float2 duv = uv1 - uv;
|
||||
float2 duvPixel = abs(duv * INPUT_SIZE);
|
||||
float pixelDistance = max(duvPixel.x, duvPixel.y);
|
||||
pixelDistance = max(1, pixelDistance);
|
||||
int sampleCount = (int)SAMPLES;
|
||||
float scale = max(1, SAMPLES * rcp(pixelDistance));
|
||||
sampleCount = (int)(sampleCount * rcp(scale));
|
||||
float4 pincr = float4(duv, q1-q0, k1-k0) * rcp(sampleCount);
|
||||
|
||||
#if SSR_JITTER
|
||||
float jitter = tex2D(_NoiseTex, uv * INPUT_SIZE * _NoiseTex_TexelSize.xy + GOLDEN_RATIO_ACUM).r;
|
||||
//pincr *= 1.0 + jitter * JITTER;
|
||||
p += pincr * (jitter * JITTER);
|
||||
#endif
|
||||
|
||||
float collision = 0;
|
||||
float dist = 0;
|
||||
float zdist = 0;
|
||||
|
||||
UNITY_LOOP
|
||||
for (int k = 0; k < sampleCount; k++) {
|
||||
p += pincr;
|
||||
if (any(floor(p.xy)!=0)) return 0.0.xxxx; // exit if out of screen space
|
||||
float sceneDepth = GetLinearDepth(p.xy);
|
||||
float pz = p.z / p.w;
|
||||
float depthDiff = pz - sceneDepth;
|
||||
if (depthDiff > 0 && depthDiff < THICKNESS) {
|
||||
float4 origPincr = pincr;
|
||||
p -= pincr;
|
||||
float reduction = 1.0;
|
||||
UNITY_LOOP
|
||||
for (int j = 0; j < BINARY_SEARCH_ITERATIONS; j++) {
|
||||
reduction *= 0.5;
|
||||
p += pincr * reduction;
|
||||
sceneDepth = GetLinearDepth(p.xy);
|
||||
pz = p.z / p.w;
|
||||
depthDiff = sceneDepth - pz;
|
||||
pincr = sign(depthDiff) * origPincr;
|
||||
}
|
||||
#if SSR_THICKNESS_FINE
|
||||
if (abs(depthDiff) < THICKNESS_FINE)
|
||||
#endif
|
||||
{
|
||||
float hitAccuracy = 1.0 - abs(depthDiff) / THICKNESS_FINE;
|
||||
zdist = (pz - rayStart.z) / (0.0001 + rayEnd.z - rayStart.z);
|
||||
float rayFade = 1.0 - saturate(zdist);
|
||||
collision = hitAccuracy * rayFade;
|
||||
break;
|
||||
}
|
||||
pincr = origPincr;
|
||||
p += pincr;
|
||||
}
|
||||
}
|
||||
|
||||
if (collision > 0) {
|
||||
|
||||
// intersection found
|
||||
float reflectionIntensity = smoothness * pow(collision, DECAY);
|
||||
|
||||
// compute fresnel
|
||||
float fresnel = 1.0 - FRESNEL * abs(dot(normalVS, viewDirVS));
|
||||
float reflectionAmount = reflectionIntensity * fresnel;
|
||||
|
||||
// compute blur amount
|
||||
float wdist = rayLength * zdist;
|
||||
float blurAmount = max(0, wdist - CONTACT_HARDENING) * FUZZYNESS * (1 - smoothness);
|
||||
|
||||
// return hit pixel
|
||||
return float4(p.xy, blurAmount + 0.001, reflectionAmount);
|
||||
}
|
||||
|
||||
return float4(0,0,0,0);
|
||||
}
|
||||
|
||||
|
||||
float4 FragSSR (VaryingsSSR input) : SV_Target {
|
||||
|
||||
UNITY_SETUP_INSTANCE_ID(input);
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
|
||||
|
||||
float depth = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, input.uv.xy).r;
|
||||
#if UNITY_REVERSED_Z
|
||||
depth = 1.0 - depth;
|
||||
#endif
|
||||
if (depth >= 1.0) return float4(0,0,0,0);
|
||||
|
||||
depth = 2.0 * depth - 1.0;
|
||||
float3 positionVS = ComputeViewSpacePosition(input.uv.zw, depth, unity_CameraInvProjection);
|
||||
|
||||
float4 normals = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_CameraGBufferTexture2, input.uv.xy);
|
||||
float3 normalWS = normals.xyz * 2.0 - 1.0;
|
||||
float3 normalVS = mul((float3x3)_WorldToViewDir, normalWS);
|
||||
normalVS.z *= -1.0;
|
||||
|
||||
float smoothness = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_CameraGBufferTexture1, input.uv.xy).a;
|
||||
smoothness = max(0, smoothness - REFLECTIONS_THRESHOLD);
|
||||
|
||||
float4 reflection = SSR_Pass(input.uv.xy, normalVS, positionVS, smoothness);
|
||||
return reflection;
|
||||
}
|
||||
|
||||
|
||||
#endif // SSR_GBUF_PASS
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 60e6293b2213646e387fe487ef2adfcf
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,69 @@
|
|||
#ifndef SSR_SOLVE
|
||||
#define SSR_SOLVE
|
||||
|
||||
// Copyright 2021 Kronnect - All Rights Reserved.
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_MainTex);
|
||||
float4 _MainTex_ST;
|
||||
float4 _MainTex_TexelSize;
|
||||
UNITY_DECLARE_SCREENSPACE_TEXTURE(_RayCastRT);
|
||||
float4 _SSRSettings2;
|
||||
#define REFLECTIONS_MULTIPLIER _SSRSettings2.z
|
||||
float4 _SSRSettings4;
|
||||
#define REFLECTIONS_MIN_INTENSITY _SSRSettings4.y
|
||||
#define REFLECTIONS_MAX_INTENSITY _SSRSettings4.z
|
||||
#define VIGNETTE_SIZE _SSRSettings2.w
|
||||
|
||||
#define dot2(x) dot(x, x)
|
||||
|
||||
struct Attributes {
|
||||
float4 vertex : POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct VaryingsSSR {
|
||||
float4 positionCS : SV_POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
VaryingsSSR VertSSR(Attributes input) {
|
||||
VaryingsSSR output;
|
||||
UNITY_SETUP_INSTANCE_ID(input);
|
||||
UNITY_TRANSFER_INSTANCE_ID(input, output);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
|
||||
output.positionCS = UnityObjectToClipPos(input.vertex);
|
||||
output.uv = UnityStereoScreenSpaceUVAdjust(input.uv, _MainTex_ST);
|
||||
return output;
|
||||
}
|
||||
|
||||
half4 FragResolve (VaryingsSSR i) : SV_Target {
|
||||
UNITY_SETUP_INSTANCE_ID(i);
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
|
||||
|
||||
half4 reflData = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_RayCastRT, i.uv);
|
||||
half4 reflection = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, reflData.xy);
|
||||
|
||||
reflection.rgb = min(reflection.rgb, 1.0); // stop NAN pixels
|
||||
|
||||
half vd = dot2( (reflData.xy - 0.5) * 2.0 );
|
||||
half vignette = saturate( VIGNETTE_SIZE - vd * vd );
|
||||
|
||||
half reflectionIntensity = clamp(reflData.a * REFLECTIONS_MULTIPLIER, REFLECTIONS_MIN_INTENSITY, REFLECTIONS_MAX_INTENSITY) * vignette;
|
||||
reflection.rgb *= reflectionIntensity;
|
||||
|
||||
reflection.rgb = min(reflection.rgb, 1.2); // clamp max brightness
|
||||
|
||||
// conserve energy
|
||||
half4 pixel = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, i.uv);
|
||||
reflection.rgb -= pixel.rgb * reflectionIntensity;
|
||||
|
||||
// keep blur factor in alpha channel
|
||||
reflection.a = reflData.z;
|
||||
|
||||
return reflection;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endif // SSR_SOLVE
|
|
@ -0,0 +1,10 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a40b0a3683e1a478ab7da6e74a644e00
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
preprocessorOverride: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,240 @@
|
|||
#ifndef SSR_SURF_FX
|
||||
#define SSR_SURF_FX
|
||||
|
||||
// Copyright 2021 Kronnect - All Rights Reserved.
|
||||
sampler2D _NoiseTex;
|
||||
sampler2D _BumpMap;
|
||||
sampler2D _SmoothnessMap;
|
||||
float4 _BumpMap_ST;
|
||||
float4 _NoiseTex_TexelSize;
|
||||
|
||||
float4 _MaterialData;
|
||||
#define SMOOTHNESS _MaterialData.x
|
||||
#define FRESNEL _MaterialData.y
|
||||
#define FUZZYNESS _MaterialData.z
|
||||
#define DECAY _MaterialData.w
|
||||
|
||||
float4 _SSRSettings;
|
||||
#define THICKNESS _SSRSettings.x
|
||||
#define SAMPLES _SSRSettings.y
|
||||
#define BINARY_SEARCH_ITERATIONS _SSRSettings.z
|
||||
#define MAX_RAY_LENGTH _SSRSettings.w
|
||||
|
||||
float2 _SSRSettings5;
|
||||
#define REFLECTIONS_THRESHOLD _SSRSettings5.y
|
||||
|
||||
#if SSR_THICKNESS_FINE
|
||||
#define THICKNESS_FINE _SSRSettings5.x
|
||||
#else
|
||||
#define THICKNESS_FINE THICKNESS
|
||||
#endif
|
||||
|
||||
float4 _SSRSettings2;
|
||||
#define JITTER _SSRSettings2.x
|
||||
#define CONTACT_HARDENING _SSRSettings2.y
|
||||
|
||||
float4 _SSRSettings3;
|
||||
#define INPUT_SIZE _SSRSettings3.xy
|
||||
#define GOLDEN_RATIO_ACUM _SSRSettings3.z
|
||||
#define DEPTH_BIAS _SSRSettings3.w
|
||||
|
||||
|
||||
#define dot2(x) dot(x, x)
|
||||
|
||||
struct AttributesSurf {
|
||||
float4 positionOS : POSITION;
|
||||
float2 texcoord : TEXCOORD0;
|
||||
float3 normalOS : NORMAL;
|
||||
float4 tangentOS : TANGENT;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct VaryingsSSRSurf {
|
||||
float4 positionCS : SV_POSITION;
|
||||
float2 uv : TEXCOORD0;
|
||||
float4 scrPos : TEXCOORD1;
|
||||
float3 positionVS : TEXCOORD2;
|
||||
#if SSR_NORMALMAP
|
||||
float4 normal : TEXCOORD3; // xyz: normal, w: viewDir.x
|
||||
float4 tangent : TEXCOORD4; // xyz: tangent, w: viewDir.y
|
||||
float4 bitangent : TEXCOORD5; // xyz: bitangent, w: viewDir.z
|
||||
#else
|
||||
float3 normal : TEXCOORD3;
|
||||
#endif
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
VaryingsSSRSurf VertSSRSurf(AttributesSurf input) {
|
||||
|
||||
VaryingsSSRSurf output = (VaryingsSSRSurf)0;
|
||||
|
||||
UNITY_SETUP_INSTANCE_ID(input);
|
||||
UNITY_TRANSFER_INSTANCE_ID(input, output);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
|
||||
|
||||
VertexPositionInputs positions = GetVertexPositionInputs(input.positionOS.xyz);
|
||||
VertexNormalInputs normalInput = GetVertexNormalInputs(input.normalOS, input.tangentOS);
|
||||
|
||||
output.positionCS = positions.positionCS;
|
||||
output.positionVS = positions.positionVS * float3(1,1,-1);
|
||||
output.scrPos = ComputeScreenPos(positions.positionCS);
|
||||
output.uv = TRANSFORM_TEX(input.texcoord, _BumpMap);
|
||||
|
||||
#if SSR_NORMALMAP
|
||||
half3 viewDirWS = GetCameraPositionWS() - positions.positionWS;
|
||||
output.normal = half4(normalInput.normalWS, viewDirWS.x);
|
||||
output.tangent = half4(normalInput.tangentWS, viewDirWS.y);
|
||||
output.bitangent = half4(normalInput.bitangentWS, viewDirWS.z);
|
||||
#else
|
||||
output.normal = TransformWorldToViewDir(normalInput.normalWS) * float3(1,1,-1);
|
||||
#endif
|
||||
|
||||
#if UNITY_REVERSED_Z
|
||||
output.positionCS.z += 0.001;
|
||||
#else
|
||||
output.positionCS.z -= 0.001;
|
||||
#endif
|
||||
|
||||
return output;
|
||||
}
|
||||
|
||||
|
||||
float4 SSR_Pass(float2 uv, float3 normalVS, float3 rayStart, float smoothness) {
|
||||
|
||||
float3 viewDirVS = normalize(rayStart);
|
||||
float3 rayDir = reflect( viewDirVS, normalVS );
|
||||
|
||||
// if ray is toward the camera, early exit (optional)
|
||||
//if (rayDir.z < 0) return 0.0.xxxx;
|
||||
|
||||
float rayLength = MAX_RAY_LENGTH;
|
||||
|
||||
float3 rayEnd = rayStart + rayDir * rayLength;
|
||||
if (rayEnd.z < _ProjectionParams.y) {
|
||||
rayLength = (rayStart.z - _ProjectionParams.y) / rayDir.z;
|
||||
}
|
||||
rayEnd = rayStart + rayDir * rayLength;
|
||||
|
||||
float4 sposStart = mul(unity_CameraProjection, float4(rayStart, 1.0));
|
||||
float4 sposEnd = mul(unity_CameraProjection, float4(rayEnd, 1.0));
|
||||
float k0 = rcp(sposStart.w);
|
||||
float q0 = rayStart.z * k0;
|
||||
float k1 = rcp(sposEnd.w);
|
||||
float q1 = rayEnd.z * k1;
|
||||
float4 p = float4(uv, q0, k0);
|
||||
|
||||
// depth clip check
|
||||
float sceneDepth = GetLinearDepth(p.xy);
|
||||
float pz = p.z / p.w;
|
||||
if (sceneDepth < pz - DEPTH_BIAS) return 0;
|
||||
|
||||
// length in pixels
|
||||
float2 uv1 = (sposEnd.xy * rcp(rayEnd.z) + 1.0) * 0.5;
|
||||
float2 duv = uv1 - uv;
|
||||
float2 duvPixel = abs(duv * INPUT_SIZE);
|
||||
float pixelDistance = max(duvPixel.x, duvPixel.y);
|
||||
pixelDistance = max(1, pixelDistance);
|
||||
int sampleCount = (int)SAMPLES;
|
||||
float scale = max(1, SAMPLES * rcp(pixelDistance));
|
||||
sampleCount = (int)(sampleCount * rcp(scale));
|
||||
float4 pincr = float4(duv, q1-q0, k1-k0) * rcp(sampleCount);
|
||||
|
||||
#if SSR_JITTER
|
||||
float jitter = tex2D(_NoiseTex, uv * INPUT_SIZE * _NoiseTex_TexelSize.xy + GOLDEN_RATIO_ACUM).r;
|
||||
//pincr *= 1.0 + jitter * JITTER;
|
||||
p += pincr * (jitter * JITTER);
|
||||
#endif
|
||||
|
||||
float collision = 0;
|
||||
float dist = 0;
|
||||
float zdist = 0;
|
||||
|
||||
UNITY_LOOP
|
||||
for (int k = 0; k < sampleCount; k++) {
|
||||
p += pincr;
|
||||
if (any(floor(p.xy)!=0)) return 0.0.xxxx; // exit if out of screen space
|
||||
sceneDepth = GetLinearDepth(p.xy);
|
||||
pz = p.z / p.w;
|
||||
float depthDiff = pz - sceneDepth;
|
||||
if (depthDiff > 0 && depthDiff < THICKNESS) {
|
||||
float4 origPincr = pincr;
|
||||
p -= pincr;
|
||||
float reduction = 1.0;
|
||||
UNITY_LOOP
|
||||
for (int j = 0; j < BINARY_SEARCH_ITERATIONS; j++) {
|
||||
reduction *= 0.5;
|
||||
p += pincr * reduction;
|
||||
sceneDepth = GetLinearDepth(p.xy);
|
||||
pz = p.z / p.w;
|
||||
depthDiff = sceneDepth - pz;
|
||||
pincr = sign(depthDiff) * origPincr;
|
||||
}
|
||||
#if SSR_THICKNESS_FINE
|
||||
if (abs(depthDiff) < THICKNESS_FINE)
|
||||
{
|
||||
#endif
|
||||
float hitAccuracy = 1.0 - abs(depthDiff) / THICKNESS_FINE;
|
||||
zdist = (pz - rayStart.z) / (0.0001 + rayEnd.z - rayStart.z);
|
||||
float rayFade = 1.0 - saturate(zdist);
|
||||
collision = hitAccuracy * rayFade;
|
||||
break;
|
||||
#if SSR_THICKNESS_FINE
|
||||
}
|
||||
pincr = origPincr;
|
||||
p += pincr;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
if (collision > 0) {
|
||||
|
||||
// intersection found
|
||||
float reflectionIntensity = smoothness * pow(collision, DECAY);
|
||||
|
||||
// compute fresnel
|
||||
float fresnel = 1.0 - FRESNEL * abs(dot(normalVS, viewDirVS));
|
||||
float reflectionAmount = reflectionIntensity * fresnel;
|
||||
|
||||
// compute blur amount
|
||||
float wdist = rayLength * zdist;
|
||||
float blurAmount = max(0, wdist - CONTACT_HARDENING) * FUZZYNESS * (1 - smoothness);
|
||||
|
||||
// return hit pixel
|
||||
return float4(p.xy, blurAmount + 0.001, reflectionAmount);
|
||||
}
|
||||
|
||||
return float4(0,0,0,0);
|
||||
}
|
||||
|
||||
|
||||
float4 FragSSRSurf (VaryingsSSRSurf input) : SV_Target {
|
||||
UNITY_SETUP_INSTANCE_ID(input);
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
|
||||
input.scrPos.xy /= input.scrPos.w;
|
||||
input.scrPos = UnityStereoTransformScreenSpaceTex(input.scrPos);
|
||||
#if SSR_NORMALMAP
|
||||
float4 packedNormal = tex2D(_BumpMap, input.uv);
|
||||
float3 normalTS = UnpackNormal(packedNormal);
|
||||
half3 viewDirWS = half3(input.normal.w, input.tangent.w, input.bitangent.w);
|
||||
float3 normalWS = TransformTangentToWorld(normalTS, half3x3(input.tangent.xyz, input.bitangent.xyz, input.normal.xyz));
|
||||
float3 normalVS = TransformWorldToViewDir(normalWS);
|
||||
normalVS.z *= -1;
|
||||
#else
|
||||
float3 normalVS = input.normal;
|
||||
#endif
|
||||
|
||||
#if SSR_SMOOTHNESSMAP
|
||||
float smoothness = SMOOTHNESS * tex2D(_SmoothnessMap, input.uv).a;
|
||||
#else
|
||||
float smoothness = SMOOTHNESS;
|
||||
#endif
|
||||
|
||||
smoothness = max(0, smoothness - REFLECTIONS_THRESHOLD);
|
||||
float4 reflection = SSR_Pass(input.scrPos.xy, normalVS, input.positionVS, smoothness);
|
||||
|
||||
return reflection;
|
||||
}
|
||||
|
||||
|
||||
#endif // SSR_SURF_FX
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 4e563a51a6e3e4c53bb04c621a65ff93
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
After Width: | Height: | Size: 6.9 KiB |
|
@ -0,0 +1,116 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 61cdb903ff6ea425583a56231df1cd06
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 0
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: -1
|
||||
wrapV: -1
|
||||
wrapW: -1
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
applyGammaDecoding: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 0
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|