浏览代码
Merge branch 'hackweek2017' of https://github.com/stramit/MaterialGraph into hackweek2017
/main
Merge branch 'hackweek2017' of https://github.com/stramit/MaterialGraph into hackweek2017
/main
ChrisTchou
8 年前
当前提交
a6a2d4de
共有 150 个文件被更改,包括 12983 次插入 和 4 次删除
-
2MaterialGraphProject/Assets/Brandon/Electricity/Electricity.mat
-
5MaterialGraphProject/Assets/Eduardo/FunctionNInNOut.cs
-
7MaterialGraphProject/Assets/_MingWai/GradientNode.cs
-
2MaterialGraphProject/Assets/_MingWai/Gradient_Texture.ShaderGraph
-
9MaterialGraphProject/Assets/Brandon/Cellular.meta
-
1001MaterialGraphProject/Assets/Brandon/Electricity/Electricity.shader
-
10MaterialGraphProject/Assets/Brandon/Electricity/Electricity.shader.meta
-
1MaterialGraphProject/Assets/Florent/2Pass.ShaderGraph
-
9MaterialGraphProject/Assets/Florent/2Pass.ShaderGraph.meta
-
44MaterialGraphProject/Assets/Florent/2PassCustomTexture.asset
-
9MaterialGraphProject/Assets/Florent/2PassCustomTexture.asset.meta
-
1MaterialGraphProject/Assets/Florent/2Pass_Edited.ShaderGraph
-
9MaterialGraphProject/Assets/Florent/2Pass_Edited.ShaderGraph.meta
-
9MaterialGraphProject/Assets/Florent/FirstPass.meta
-
75MaterialGraphProject/Assets/Florent/MaterialWith2PassTexture.mat
-
9MaterialGraphProject/Assets/Florent/MaterialWith2PassTexture.mat.meta
-
25MaterialGraphProject/Assets/Florent/UnityEngine.MaterialGraph.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d37.mat
-
9MaterialGraphProject/Assets/Florent/UnityEngine.MaterialGraph.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d37.mat.meta
-
25MaterialGraphProject/Assets/Florent/UnityEngine.MaterialGraph.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d38.mat
-
9MaterialGraphProject/Assets/Florent/UnityEngine.MaterialGraph.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d38.mat.meta
-
25MaterialGraphProject/Assets/Florent/UnityEngine.MaterialGraph.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d39.mat
-
9MaterialGraphProject/Assets/Florent/UnityEngine.MaterialGraph.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d39.mat.meta
-
25MaterialGraphProject/Assets/Florent/UnityEngine.MaterialGraph.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d40.mat
-
9MaterialGraphProject/Assets/Florent/UnityEngine.MaterialGraph.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d40.mat.meta
-
29MaterialGraphProject/Assets/Florent/UnityEngine.MaterialGraph.ExportTextureMasterNode8e1be5fc-7506-4529-879d-f1ce8c5aab04.mat
-
9MaterialGraphProject/Assets/Florent/UnityEngine.MaterialGraph.ExportTextureMasterNode8e1be5fc-7506-4529-879d-f1ce8c5aab04.mat.meta
-
44MaterialGraphProject/Assets/Generated.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d37.asset
-
9MaterialGraphProject/Assets/Generated.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d37.asset.meta
-
25MaterialGraphProject/Assets/Generated.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d37.mat
-
9MaterialGraphProject/Assets/Generated.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d37.mat.meta
-
9MaterialGraphProject/Assets/Matt/CharacterRendering.meta
-
44MaterialGraphProject/Assets/_MingWai/New Custom Texture.asset
-
9MaterialGraphProject/Assets/_MingWai/New Custom Texture.asset.meta
-
25MaterialGraphProject/Assets/_MingWai/Unlit_Wathever.mat
-
9MaterialGraphProject/Assets/_MingWai/Unlit_Wathever.mat.meta
-
58MaterialGraphProject/Assets/_MingWai/Wathever.shader
-
10MaterialGraphProject/Assets/_MingWai/Wathever.shader.meta
-
9MaterialGraphProject/Assets/Brandon/Cellular/Cellular.ShaderGraph.meta
-
287MaterialGraphProject/Assets/Brandon/Cellular/Cellular.unity
-
8MaterialGraphProject/Assets/Brandon/Cellular/Cellular.unity.meta
-
10MaterialGraphProject/Assets/Brandon/Cellular/Cellular.shader.meta
-
9MaterialGraphProject/Assets/Brandon/Cellular/Cellular_Material.mat.meta
-
1MaterialGraphProject/Assets/Brandon/Cellular/Cellular.ShaderGraph
-
175MaterialGraphProject/Assets/Brandon/Cellular/Cellular.shader
-
79MaterialGraphProject/Assets/Brandon/Cellular/Cellular_Material.mat
-
75MaterialGraphProject/Assets/Florent/FirstPass/AnimatedMaterial.mat
-
9MaterialGraphProject/Assets/Florent/FirstPass/AnimatedMaterial.mat.meta
-
44MaterialGraphProject/Assets/Florent/FirstPass/CustomTexture.asset
-
9MaterialGraphProject/Assets/Florent/FirstPass/CustomTexture.asset.meta
-
861MaterialGraphProject/Assets/Florent/FirstPass/New Scene.unity
-
8MaterialGraphProject/Assets/Florent/FirstPass/New Scene.unity.meta
-
1MaterialGraphProject/Assets/Florent/FirstPass/RealtimeUpdate.ShaderGraph
-
9MaterialGraphProject/Assets/Florent/FirstPass/RealtimeUpdate.ShaderGraph.meta
-
30MaterialGraphProject/Assets/Florent/FirstPass/UnityEngine.MaterialGraph.ExportTextureMasterNodeeac16720-baa9-4e44-8ca0-c395445c4ed3.mat
-
9MaterialGraphProject/Assets/Florent/FirstPass/UnityEngine.MaterialGraph.ExportTextureMasterNodeeac16720-baa9-4e44-8ca0-c395445c4ed3.mat.meta
-
940MaterialGraphProject/Assets/Matt/CharacterRendering/Anisotropic.shader
-
10MaterialGraphProject/Assets/Matt/CharacterRendering/Anisotropic.shader.meta
-
941MaterialGraphProject/Assets/Matt/CharacterRendering/AnisotropicTransparent.shader
-
10MaterialGraphProject/Assets/Matt/CharacterRendering/AnisotropicTransparent.shader.meta
-
9MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger.meta
-
1001MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Chal_Rig.fbx
-
696MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Chal_Rig.fbx.meta
-
1001MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Chal_thick_SSS.png
-
75MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Chal_thick_SSS.png.meta
-
9MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Challenger.meta
-
1001MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Challenger.unity
-
8MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Challenger.unity.meta
-
8MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Challenger/LightingData.asset
-
9MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Challenger/LightingData.asset.meta
-
212MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Challenger/ReflectionProbe-0.exr
-
76MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Challenger/ReflectionProbe-0.exr.meta
-
9MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Materials.meta
-
116MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Materials/challenger_beard.mat
-
5MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Materials/challenger_beard.mat.meta
-
143MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Materials/challenger_body.mat
-
5MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Materials/challenger_body.mat.meta
-
235MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Materials/challenger_body2.mat
-
5MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Materials/challenger_body2.mat.meta
-
294MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Materials/challenger_eye_wetness.mat
-
5MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Materials/challenger_eye_wetness.mat.meta
-
115MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Materials/challenger_eyes.mat
-
5MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Materials/challenger_eyes.mat.meta
-
239MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Materials/challenger_fingers.mat
-
8MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Materials/challenger_fingers.mat.meta
-
122MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Materials/challenger_hair.mat
-
5MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Materials/challenger_hair.mat.meta
-
117MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Materials/challenger_head.mat
-
9MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Materials/challenger_head.mat.meta
-
127MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Materials/challenger_teeth.mat
-
5MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Materials/challenger_teeth.mat.meta
-
1001MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/challenger_AO_1.png
-
75MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/challenger_AO_1.png.meta
-
1001MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/challenger_AO_2_1.png
-
75MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/challenger_AO_2_1.png.meta
2
MaterialGraphProject/Assets/_MingWai/Gradient_Texture.ShaderGraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 58673c3408a107e4c85fb0da78993b78 |
|||
folderAsset: yes |
|||
timeCreated: 1495743911 |
|||
licenseType: Pro |
|||
DefaultImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
MaterialGraphProject/Assets/Brandon/Electricity/Electricity.shader
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 073d4fc800a96ba49a525f9363f6cd18 |
|||
timeCreated: 1495748683 |
|||
licenseType: Pro |
|||
ShaderImporter: |
|||
defaultTextures: [] |
|||
nonModifiableTextures: [] |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1
MaterialGraphProject/Assets/Florent/2Pass.ShaderGraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 9de4796ffebd15d4a9d6e044a172fe49 |
|||
timeCreated: 1495744149 |
|||
licenseType: Pro |
|||
ScriptedImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!86 &8600000 |
|||
CustomRenderTexture: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: 2PassCustomTexture |
|||
m_ImageContentsHash: |
|||
serializedVersion: 2 |
|||
Hash: 00000000000000000000000000000000 |
|||
m_Width: 256 |
|||
m_Height: 256 |
|||
m_AntiAliasing: 1 |
|||
m_DepthFormat: 0 |
|||
m_ColorFormat: 0 |
|||
m_MipMap: 0 |
|||
m_GenerateMips: 1 |
|||
m_SRGB: 0 |
|||
m_TextureSettings: |
|||
serializedVersion: 2 |
|||
m_FilterMode: 1 |
|||
m_Aniso: 1 |
|||
m_MipBias: 0 |
|||
m_WrapU: 1 |
|||
m_WrapV: 1 |
|||
m_WrapW: 1 |
|||
m_Dimension: 2 |
|||
m_VolumeDepth: 1 |
|||
m_Material: {fileID: 2100000, guid: 08334708bd70c504e8c76f956c62750f, type: 2} |
|||
m_InitSource: 0 |
|||
m_InitMaterial: {fileID: 0} |
|||
m_InitColor: {r: 1, g: 1, b: 1, a: 1} |
|||
m_InitTexture: {fileID: 0} |
|||
m_UpdateMode: 1 |
|||
m_InitializationMode: 1 |
|||
m_UpdateZoneSpace: 0 |
|||
m_CurrentUpdateZoneSpace: 0 |
|||
m_UpdateZones: [] |
|||
m_UpdatePeriod: 0 |
|||
m_ShaderPass: 0 |
|||
m_CubemapFaceMask: 4294967295 |
|||
m_DoubleBuffered: 0 |
|||
m_WrapUpdateZones: 0 |
|
|||
fileFormatVersion: 2 |
|||
guid: 4175b1311e786fc4bbbe7ba7f8bdc702 |
|||
timeCreated: 1495744795 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 8600000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1
MaterialGraphProject/Assets/Florent/2Pass_Edited.ShaderGraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: c07ee90c6976be945b82c415058ab856 |
|||
timeCreated: 1495744149 |
|||
licenseType: Pro |
|||
ScriptedImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} |
|
|||
fileFormatVersion: 2 |
|||
guid: eb36f875e27437d46b5af42ea2c10b92 |
|||
folderAsset: yes |
|||
timeCreated: 1495744160 |
|||
licenseType: Pro |
|||
DefaultImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: MaterialWith2PassTexture |
|||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- _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: 8600000, guid: 4175b1311e786fc4bbbe7ba7f8bdc702, type: 2} |
|||
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} |
|||
m_Floats: |
|||
- _BumpScale: 1 |
|||
- _Cutoff: 0.5 |
|||
- _DetailNormalMapScale: 1 |
|||
- _DstBlend: 0 |
|||
- _GlossMapScale: 1 |
|||
- _Glossiness: 0.5 |
|||
- _GlossyReflections: 1 |
|||
- _Metallic: 0 |
|||
- _Mode: 0 |
|||
- _OcclusionStrength: 1 |
|||
- _Parallax: 0.02 |
|||
- _SmoothnessTextureChannel: 0 |
|||
- _SpecularHighlights: 1 |
|||
- _SrcBlend: 1 |
|||
- _UVSec: 0 |
|||
- _ZWrite: 1 |
|||
m_Colors: |
|||
- _Color: {r: 1, g: 1, b: 1, a: 1} |
|||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: 498f1d2437c6bb84d8b82d451d56eaee |
|||
timeCreated: 1495744861 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 2100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: UnityEngine.MaterialGraph.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d37 |
|||
m_Shader: {fileID: 4800000, guid: 9de4796ffebd15d4a9d6e044a172fe49, type: 3} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- Texture_339414d4_3f08_4a60_b7de_60b5078454cd_Uniform: |
|||
m_Texture: {fileID: 8600000, guid: 3d2f7c217d996304986bdb68379c189e, type: 2} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: [] |
|||
m_Colors: [] |
|
|||
fileFormatVersion: 2 |
|||
guid: 07f024bdcd70166408ae4c312452248a |
|||
timeCreated: 1495744826 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 2100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: UnityEngine.MaterialGraph.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d38 |
|||
m_Shader: {fileID: 4800000, guid: 9de4796ffebd15d4a9d6e044a172fe49, type: 3} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- Texture_339414d4_3f08_4a60_b7de_60b5078454cd_Uniform: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: [] |
|||
m_Colors: [] |
|
|||
fileFormatVersion: 2 |
|||
guid: 2f36728588f68054283366ab4ae9c063 |
|||
timeCreated: 1495748163 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 2100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: UnityEngine.MaterialGraph.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d39 |
|||
m_Shader: {fileID: 4800000, guid: 9de4796ffebd15d4a9d6e044a172fe49, type: 3} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- Texture_339414d4_3f08_4a60_b7de_60b5078454cd_Uniform: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: [] |
|||
m_Colors: [] |
|
|||
fileFormatVersion: 2 |
|||
guid: 7405d8d39be93f147ade2d16eb314ed9 |
|||
timeCreated: 1495748173 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 2100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: UnityEngine.MaterialGraph.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d40 |
|||
m_Shader: {fileID: 4800000, guid: 9de4796ffebd15d4a9d6e044a172fe49, type: 3} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- Texture_339414d4_3f08_4a60_b7de_60b5078454cd_Uniform: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: [] |
|||
m_Colors: [] |
|
|||
fileFormatVersion: 2 |
|||
guid: 6d1fb85810f6b2f4692425a7f4eb996a |
|||
timeCreated: 1495748373 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 2100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: UnityEngine.MaterialGraph.ExportTextureMasterNode8e1be5fc-7506-4529-879d-f1ce8c5aab04 |
|||
m_Shader: {fileID: 4800000, guid: c07ee90c6976be945b82c415058ab856, type: 3} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- Texture_52494c62_81e0_463e_aa3f_fadca56482fa_Uniform: |
|||
m_Texture: {fileID: 2800000, guid: 153d265862621434696692a6c4c4400c, type: 3} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture_bcbba8c3_42d3_4afd_970e_817d00cd2f76_Uniform: |
|||
m_Texture: {fileID: 2800000, guid: 5d84e1086e00e3347aaa0bbba206bb80, type: 3} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: [] |
|||
m_Colors: [] |
|
|||
fileFormatVersion: 2 |
|||
guid: 08334708bd70c504e8c76f956c62750f |
|||
timeCreated: 1495748895 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 2100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!86 &8600000 |
|||
CustomRenderTexture: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: Generated.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d37 |
|||
m_ImageContentsHash: |
|||
serializedVersion: 2 |
|||
Hash: 00000000000000000000000000000000 |
|||
m_Width: 256 |
|||
m_Height: 256 |
|||
m_AntiAliasing: 1 |
|||
m_DepthFormat: 0 |
|||
m_ColorFormat: 0 |
|||
m_MipMap: 0 |
|||
m_GenerateMips: 1 |
|||
m_SRGB: 0 |
|||
m_TextureSettings: |
|||
serializedVersion: 2 |
|||
m_FilterMode: 1 |
|||
m_Aniso: 1 |
|||
m_MipBias: 0 |
|||
m_WrapU: 1 |
|||
m_WrapV: 1 |
|||
m_WrapW: 1 |
|||
m_Dimension: 2 |
|||
m_VolumeDepth: 1 |
|||
m_Material: {fileID: 2100000, guid: 3bf2f26244334984889b9e531155075d, type: 2} |
|||
m_InitSource: 0 |
|||
m_InitMaterial: {fileID: 0} |
|||
m_InitColor: {r: 1, g: 1, b: 1, a: 1} |
|||
m_InitTexture: {fileID: 0} |
|||
m_UpdateMode: 0 |
|||
m_InitializationMode: 2 |
|||
m_UpdateZoneSpace: 0 |
|||
m_CurrentUpdateZoneSpace: 0 |
|||
m_UpdateZones: [] |
|||
m_UpdatePeriod: 0 |
|||
m_ShaderPass: 0 |
|||
m_CubemapFaceMask: 4294967295 |
|||
m_DoubleBuffered: 0 |
|||
m_WrapUpdateZones: 0 |
|
|||
fileFormatVersion: 2 |
|||
guid: 99bed326f1768e1408b629b445ad0c39 |
|||
timeCreated: 1495748248 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 8600000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: Generated.ExportTextureMasterNode71166862-083a-4792-8c3a-4111b9dd9d37 |
|||
m_Shader: {fileID: 4800000, guid: 4afc3341bed83d34cb1aebb7e98d8751, type: 3} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- Texture_339414d4_3f08_4a60_b7de_60b5078454cd_Uniform: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: [] |
|||
m_Colors: [] |
|
|||
fileFormatVersion: 2 |
|||
guid: 3bf2f26244334984889b9e531155075d |
|||
timeCreated: 1495748242 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 2100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: f25473f70e5844a4dabcea9bce39e35f |
|||
folderAsset: yes |
|||
timeCreated: 1495740471 |
|||
licenseType: Pro |
|||
DefaultImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!86 &8600000 |
|||
CustomRenderTexture: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: New Custom Texture |
|||
m_ImageContentsHash: |
|||
serializedVersion: 2 |
|||
Hash: 00000000000000000000000000000000 |
|||
m_Width: 256 |
|||
m_Height: 256 |
|||
m_AntiAliasing: 1 |
|||
m_DepthFormat: 0 |
|||
m_ColorFormat: 0 |
|||
m_MipMap: 0 |
|||
m_GenerateMips: 1 |
|||
m_SRGB: 0 |
|||
m_TextureSettings: |
|||
serializedVersion: 2 |
|||
m_FilterMode: 1 |
|||
m_Aniso: 1 |
|||
m_MipBias: 0 |
|||
m_WrapU: 1 |
|||
m_WrapV: 1 |
|||
m_WrapW: 1 |
|||
m_Dimension: 2 |
|||
m_VolumeDepth: 1 |
|||
m_Material: {fileID: 0} |
|||
m_InitSource: 0 |
|||
m_InitMaterial: {fileID: 0} |
|||
m_InitColor: {r: 1, g: 1, b: 1, a: 1} |
|||
m_InitTexture: {fileID: 0} |
|||
m_UpdateMode: 0 |
|||
m_InitializationMode: 2 |
|||
m_UpdateZoneSpace: 0 |
|||
m_CurrentUpdateZoneSpace: 0 |
|||
m_UpdateZones: [] |
|||
m_UpdatePeriod: 0 |
|||
m_ShaderPass: 0 |
|||
m_CubemapFaceMask: 4294967295 |
|||
m_DoubleBuffered: 0 |
|||
m_WrapUpdateZones: 0 |
|
|||
fileFormatVersion: 2 |
|||
guid: 28805740b89754d4f87ecf03fa9a100d |
|||
timeCreated: 1495750594 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 8600000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: Unlit_Wathever |
|||
m_Shader: {fileID: 4800000, guid: 0caa73edc5ef95645a596a31baaf26ea, type: 3} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- _MainTex: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: [] |
|||
m_Colors: [] |
|
|||
fileFormatVersion: 2 |
|||
guid: ae2bee3d4885c164d91753ebf4c12c5b |
|||
timeCreated: 1495750581 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 2100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
Shader "Unlit/Wathever" |
|||
{ |
|||
Properties |
|||
{ |
|||
_MainTex ("Texture", 2D) = "white" {} |
|||
} |
|||
SubShader |
|||
{ |
|||
Tags { "RenderType"="Opaque" } |
|||
LOD 100 |
|||
|
|||
Pass |
|||
{ |
|||
CGPROGRAM |
|||
#pragma vertex vert |
|||
#pragma fragment frag |
|||
// make fog work |
|||
#pragma multi_compile_fog |
|||
|
|||
#include "UnityCG.cginc" |
|||
|
|||
struct appdata |
|||
{ |
|||
float4 vertex : POSITION; |
|||
float2 uv : TEXCOORD0; |
|||
}; |
|||
|
|||
struct v2f |
|||
{ |
|||
float2 uv : TEXCOORD0; |
|||
UNITY_FOG_COORDS(1) |
|||
float4 vertex : SV_POSITION; |
|||
}; |
|||
|
|||
sampler2D _MainTex; |
|||
float4 _MainTex_ST; |
|||
|
|||
v2f vert (appdata v) |
|||
{ |
|||
v2f o; |
|||
o.vertex = UnityObjectToClipPos(v.vertex); |
|||
o.uv = TRANSFORM_TEX(v.uv, _MainTex); |
|||
UNITY_TRANSFER_FOG(o,o.vertex); |
|||
return o; |
|||
} |
|||
|
|||
fixed4 frag (v2f i) : SV_Target |
|||
{ |
|||
// sample the texture |
|||
fixed4 col = tex2D(_MainTex, i.uv); |
|||
// apply fog |
|||
UNITY_APPLY_FOG(i.fogCoord, col); |
|||
return col; |
|||
} |
|||
ENDCG |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 0caa73edc5ef95645a596a31baaf26ea |
|||
timeCreated: 1495750552 |
|||
licenseType: Pro |
|||
ShaderImporter: |
|||
defaultTextures: [] |
|||
nonModifiableTextures: [] |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: a5c24b3171b60fd41a749afad9ecd12e |
|||
timeCreated: 1495743902 |
|||
licenseType: Pro |
|||
ScriptedImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!29 &1 |
|||
OcclusionCullingSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
m_OcclusionBakeSettings: |
|||
smallestOccluder: 5 |
|||
smallestHole: 0.25 |
|||
backfaceThreshold: 100 |
|||
m_SceneGUID: 00000000000000000000000000000000 |
|||
m_OcclusionCullingData: {fileID: 0} |
|||
--- !u!104 &2 |
|||
RenderSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 8 |
|||
m_Fog: 0 |
|||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} |
|||
m_FogMode: 3 |
|||
m_FogDensity: 0.01 |
|||
m_LinearFogStart: 0 |
|||
m_LinearFogEnd: 300 |
|||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} |
|||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} |
|||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} |
|||
m_AmbientIntensity: 1 |
|||
m_AmbientMode: 0 |
|||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} |
|||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_HaloStrength: 0.5 |
|||
m_FlareStrength: 1 |
|||
m_FlareFadeSpeed: 3 |
|||
m_HaloTexture: {fileID: 0} |
|||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} |
|||
m_DefaultReflectionMode: 0 |
|||
m_DefaultReflectionResolution: 128 |
|||
m_ReflectionBounces: 1 |
|||
m_ReflectionIntensity: 1 |
|||
m_CustomReflection: {fileID: 0} |
|||
m_Sun: {fileID: 0} |
|||
m_IndirectSpecularColor: {r: 0.1273174, g: 0.13414761, b: 0.12107885, a: 1} |
|||
--- !u!157 &3 |
|||
LightmapSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 11 |
|||
m_GIWorkflowMode: 0 |
|||
m_GISettings: |
|||
serializedVersion: 2 |
|||
m_BounceScale: 1 |
|||
m_IndirectOutputScale: 1 |
|||
m_AlbedoBoost: 1 |
|||
m_TemporalCoherenceThreshold: 1 |
|||
m_EnvironmentLightingMode: 0 |
|||
m_EnableBakedLightmaps: 1 |
|||
m_EnableRealtimeLightmaps: 1 |
|||
m_LightmapEditorSettings: |
|||
serializedVersion: 9 |
|||
m_Resolution: 2 |
|||
m_BakeResolution: 40 |
|||
m_TextureWidth: 1024 |
|||
m_TextureHeight: 1024 |
|||
m_AO: 0 |
|||
m_AOMaxDistance: 1 |
|||
m_CompAOExponent: 1 |
|||
m_CompAOExponentDirect: 0 |
|||
m_Padding: 2 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_LightmapsBakeMode: 1 |
|||
m_TextureCompression: 1 |
|||
m_FinalGather: 0 |
|||
m_FinalGatherFiltering: 1 |
|||
m_FinalGatherRayCount: 256 |
|||
m_ReflectionCompression: 2 |
|||
m_MixedBakeMode: 2 |
|||
m_BakeBackend: 0 |
|||
m_PVRSampling: 1 |
|||
m_PVRDirectSampleCount: 32 |
|||
m_PVRSampleCount: 500 |
|||
m_PVRBounces: 2 |
|||
m_PVRFiltering: 0 |
|||
m_PVRFilteringMode: 1 |
|||
m_PVRCulling: 1 |
|||
m_PVRFilteringGaussRadiusDirect: 1 |
|||
m_PVRFilteringGaussRadiusIndirect: 5 |
|||
m_PVRFilteringGaussRadiusAO: 2 |
|||
m_PVRFilteringAtrousColorSigma: 1 |
|||
m_PVRFilteringAtrousNormalSigma: 1 |
|||
m_PVRFilteringAtrousPositionSigma: 1 |
|||
m_LightingDataAsset: {fileID: 0} |
|||
m_UseShadowmask: 1 |
|||
--- !u!196 &4 |
|||
NavMeshSettings: |
|||
serializedVersion: 2 |
|||
m_ObjectHideFlags: 0 |
|||
m_BuildSettings: |
|||
serializedVersion: 2 |
|||
agentTypeID: 0 |
|||
agentRadius: 0.5 |
|||
agentHeight: 2 |
|||
agentSlope: 45 |
|||
agentClimb: 0.4 |
|||
ledgeDropHeight: 0 |
|||
maxJumpAcrossDistance: 0 |
|||
minRegionArea: 2 |
|||
manualCellSize: 0 |
|||
cellSize: 0.16666667 |
|||
manualTileSize: 0 |
|||
tileSize: 256 |
|||
accuratePlacement: 0 |
|||
debug: |
|||
m_Flags: 0 |
|||
m_NavMeshData: {fileID: 0} |
|||
--- !u!1 &316000887 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 316000888} |
|||
- component: {fileID: 316000891} |
|||
- component: {fileID: 316000890} |
|||
- component: {fileID: 316000889} |
|||
m_Layer: 0 |
|||
m_Name: Quad |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!4 &316000888 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 316000887} |
|||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} |
|||
m_LocalPosition: {x: 0, y: 0, z: 2} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 1227316044} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!23 &316000889 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 316000887} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 9f6a36086f28fc54ba905afa25a84e6a, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 1 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!64 &316000890 |
|||
MeshCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 316000887} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Convex: 0 |
|||
m_InflateMesh: 0 |
|||
m_SkinWidth: 0.01 |
|||
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!33 &316000891 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 316000887} |
|||
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!1 &1227316039 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 1227316044} |
|||
- component: {fileID: 1227316043} |
|||
- component: {fileID: 1227316042} |
|||
- component: {fileID: 1227316041} |
|||
- component: {fileID: 1227316040} |
|||
m_Layer: 0 |
|||
m_Name: Main Camera |
|||
m_TagString: MainCamera |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!81 &1227316040 |
|||
AudioListener: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1227316039} |
|||
m_Enabled: 1 |
|||
--- !u!124 &1227316041 |
|||
Behaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1227316039} |
|||
m_Enabled: 1 |
|||
--- !u!92 &1227316042 |
|||
Behaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1227316039} |
|||
m_Enabled: 1 |
|||
--- !u!20 &1227316043 |
|||
Camera: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1227316039} |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_ClearFlags: 2 |
|||
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} |
|||
m_NormalizedViewPortRect: |
|||
serializedVersion: 2 |
|||
x: 0 |
|||
y: 0 |
|||
width: 1 |
|||
height: 1 |
|||
near clip plane: 0.3 |
|||
far clip plane: 1000 |
|||
field of view: 60 |
|||
orthographic: 0 |
|||
orthographic size: 5 |
|||
m_Depth: -1 |
|||
m_CullingMask: |
|||
serializedVersion: 2 |
|||
m_Bits: 4294967295 |
|||
m_RenderingPath: -1 |
|||
m_TargetTexture: {fileID: 0} |
|||
m_TargetDisplay: 0 |
|||
m_TargetEye: 3 |
|||
m_HDR: 0 |
|||
m_AllowMSAA: 0 |
|||
m_ForceIntoRT: 0 |
|||
m_OcclusionCulling: 0 |
|||
m_StereoConvergence: 10 |
|||
m_StereoSeparation: 0.022 |
|||
m_StereoMirrorMode: 0 |
|||
--- !u!4 &1227316044 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1227316039} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 0, y: 10, z: 0} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: |
|||
- {fileID: 316000888} |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|
|||
fileFormatVersion: 2 |
|||
guid: a19001a5d7a2e154d88fdf5c73da19f9 |
|||
timeCreated: 1495745502 |
|||
licenseType: Pro |
|||
DefaultImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: b1fd770cc7814084f9a27232d7fba579 |
|||
timeCreated: 1495747644 |
|||
licenseType: Pro |
|||
ShaderImporter: |
|||
defaultTextures: [] |
|||
nonModifiableTextures: [] |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 9f6a36086f28fc54ba905afa25a84e6a |
|||
timeCreated: 1495747143 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 2100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1
MaterialGraphProject/Assets/Brandon/Cellular/Cellular.ShaderGraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
Shader "Brandon/Cellular" |
|||
{ |
|||
Properties |
|||
{ |
|||
Texture_b86ff54c_bbe9_4694_8531_326cc9640f0b_Uniform("Texture", 2D) = "white" {} |
|||
|
|||
} |
|||
|
|||
SubShader |
|||
{ |
|||
Tags |
|||
{ |
|||
"RenderType"="Opaque" |
|||
"Queue"="Geometry" |
|||
} |
|||
|
|||
Blend One Zero |
|||
|
|||
Cull Back |
|||
|
|||
ZTest LEqual |
|||
|
|||
ZWrite On |
|||
|
|||
|
|||
LOD 200 |
|||
|
|||
CGPROGRAM |
|||
#pragma target 3.0 |
|||
#pragma surface surf Standard vertex:vert |
|||
#pragma glsl |
|||
#pragma debug |
|||
|
|||
sampler2D Texture_b86ff54c_bbe9_4694_8531_326cc9640f0b_Uniform; |
|||
|
|||
inline float4 unity_remap_float (float4 arg1, float2 arg2, float2 arg3) |
|||
{ |
|||
return arg3.x + (arg1 - arg2.x) * (arg3.y - arg3.x) / (arg2.y - arg2.x); |
|||
} |
|||
inline float2 unity_voronoi_noise_randomVector (float2 uv, float offset) |
|||
{ |
|||
float2x2 m = float2x2(15.27, 47.63, 99.41, 89.98); |
|||
uv = frac(sin(mul(uv, m)) * 46839.32); |
|||
return float2(sin(uv.y*+offset)*0.5+0.5, cos(uv.x*offset)*0.5+0.5); |
|||
} |
|||
inline void unity_voronoinoise_float (float2 uv, float angleOffset, out float n1, out float n2, out float n3) |
|||
{ |
|||
float2 g = floor(uv); |
|||
float2 f = frac(uv); |
|||
float t = 8.0; |
|||
float3 res = float3(8.0, 0.0, 0.0); |
|||
for(int y=-1; y<=1; y++) |
|||
{ |
|||
for(int x=-1; x<=1; x++) |
|||
{ |
|||
float2 lattice = float2(x,y); |
|||
float2 offset = unity_voronoi_noise_randomVector(lattice + g, angleOffset); |
|||
float d = distance(lattice + offset, f); |
|||
if(d < res.x) |
|||
{ |
|||
res = float3(d, offset.x, offset.y); |
|||
n1 = res.x; |
|||
n2 = res.y; |
|||
n3 = 1.0 - res.x; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
inline float unity_particle_float (float2 uv, float scaleFactor) |
|||
{ |
|||
uv = uv * 2.0 - 1.0; |
|||
return abs(1.0/length(uv * scaleFactor)); |
|||
} |
|||
inline float unity_oneminus_float (float arg1) |
|||
{ |
|||
return arg1 * -1 + 1; |
|||
} |
|||
inline float unity_multiply_float (float arg1, float arg2) |
|||
{ |
|||
return arg1 * arg2; |
|||
} |
|||
inline float3 unity_multiply_float (float3 arg1, float3 arg2) |
|||
{ |
|||
return arg1 * arg2; |
|||
} |
|||
inline float2 unity_uvpanner_float (float2 UV, float HorizontalOffset, float VerticalOffset) |
|||
{ |
|||
return float2(UV.x + HorizontalOffset, UV.y + VerticalOffset); |
|||
} |
|||
inline float3 unity_add_float (float3 arg1, float3 arg2) |
|||
{ |
|||
return arg1 + arg2; |
|||
} |
|||
inline float3 unity_rgbtolinear_float (float3 arg1) |
|||
{ |
|||
float3 linearRGBLo = arg1 / 12.92; |
|||
float3 linearRGBHi = pow(max(abs((arg1 + 0.055) / 1.055), 1.192092896e-07), float3(2.4, 2.4, 2.4)); |
|||
return float3(arg1 <= 0.04045) ? linearRGBLo : linearRGBHi; |
|||
} |
|||
inline float4 unity_oneminus_float (float4 arg1) |
|||
{ |
|||
return arg1 * -1 + 1; |
|||
} |
|||
inline void unity_CustomCode_test (float d, float dp, out float c) |
|||
{ |
|||
c = step(dp, d); |
|||
} |
|||
|
|||
|
|||
|
|||
struct Input |
|||
{ |
|||
float4 color : COLOR; |
|||
half4 meshUV0; |
|||
|
|||
}; |
|||
|
|||
void vert (inout appdata_full v, out Input o) |
|||
{ |
|||
UNITY_INITIALIZE_OUTPUT(Input,o); |
|||
o.meshUV0 = v.texcoord; |
|||
|
|||
} |
|||
|
|||
void surf (Input IN, inout SurfaceOutputStandard o) |
|||
{ |
|||
half4 uv0 = IN.meshUV0; |
|||
float3 Vector3_ff318061_3405_4489_b0c0_004f3556b379_Uniform = float3 (3, 2.5, 5); |
|||
float4 UV_257dbdde_fb0e_45d2_b1d5_3245a77a7446_UV = uv0; |
|||
float4 Remap_e2de5e87_5108_4e55_91d0_202c89bfdc77_Output = unity_remap_float (UV_257dbdde_fb0e_45d2_b1d5_3245a77a7446_UV, float2 (0,1), float2 (-10,10)); |
|||
float VoronoiNoise_6363f48c_fb0a_4d4a_b0a0_e9c095b25f14_n1; |
|||
float VoronoiNoise_6363f48c_fb0a_4d4a_b0a0_e9c095b25f14_n2; |
|||
float VoronoiNoise_6363f48c_fb0a_4d4a_b0a0_e9c095b25f14_n3; |
|||
unity_voronoinoise_float (Remap_e2de5e87_5108_4e55_91d0_202c89bfdc77_Output, _Time.y, VoronoiNoise_6363f48c_fb0a_4d4a_b0a0_e9c095b25f14_n1, VoronoiNoise_6363f48c_fb0a_4d4a_b0a0_e9c095b25f14_n2, VoronoiNoise_6363f48c_fb0a_4d4a_b0a0_e9c095b25f14_n3); |
|||
float4 UV_b1e148d9_f64d_4409_bc93_047246acb763_UV = uv0; |
|||
float Particle_bc661883_3410_41aa_9c40_9841d35071d1_Output = unity_particle_float (UV_b1e148d9_f64d_4409_bc93_047246acb763_UV, 2.44); |
|||
float OneMinus_ed098cd5_7e1f_43c8_aa71_e28f93649eb3_Output = unity_oneminus_float (Particle_bc661883_3410_41aa_9c40_9841d35071d1_Output); |
|||
float Multiply_f23a464e_ad77_4844_96be_5f17a4ee2ad5_Output = unity_multiply_float (VoronoiNoise_6363f48c_fb0a_4d4a_b0a0_e9c095b25f14_n1, OneMinus_ed098cd5_7e1f_43c8_aa71_e28f93649eb3_Output); |
|||
float Saturate_4f751b04_b16e_426b_8661_93bba25e78ea_Output = saturate (Multiply_f23a464e_ad77_4844_96be_5f17a4ee2ad5_Output); |
|||
float3 Multiply_51e47dbb_3a27_43fb_85f3_075820b6f397_Output = unity_multiply_float (Vector3_ff318061_3405_4489_b0c0_004f3556b379_Uniform, Saturate_4f751b04_b16e_426b_8661_93bba25e78ea_Output); |
|||
float4 UV_f53721a3_b62f_474c_8348_cd27dce64004_UV = uv0; |
|||
float4 Remap_fc254320_74c6_4929_9c55_12b74013aa50_Output = unity_remap_float (UV_f53721a3_b62f_474c_8348_cd27dce64004_UV, float2 (0,1), float2 (-10,10)); |
|||
float VoronoiNoise_5d4bee83_6fb2_48e2_b332_76a7ce558de7_n1; |
|||
float VoronoiNoise_5d4bee83_6fb2_48e2_b332_76a7ce558de7_n2; |
|||
float VoronoiNoise_5d4bee83_6fb2_48e2_b332_76a7ce558de7_n3; |
|||
unity_voronoinoise_float (Remap_fc254320_74c6_4929_9c55_12b74013aa50_Output, _Time.z, VoronoiNoise_5d4bee83_6fb2_48e2_b332_76a7ce558de7_n1, VoronoiNoise_5d4bee83_6fb2_48e2_b332_76a7ce558de7_n2, VoronoiNoise_5d4bee83_6fb2_48e2_b332_76a7ce558de7_n3); |
|||
float2 UVPanner_a7d52543_81f8_4b8f_9f48_a83f6390465f_Output = unity_uvpanner_float (Remap_fc254320_74c6_4929_9c55_12b74013aa50_Output, 0.45, 0.45); |
|||
float Particle_ff7ecb20_7b31_4549_a468_0da4421a2b0e_Output = unity_particle_float (UVPanner_a7d52543_81f8_4b8f_9f48_a83f6390465f_Output, -0.78); |
|||
float SmoothStep_d93b46f2_249b_4b3a_93a9_70e542a367ea_Output = smoothstep (0.15, 0.4, Particle_ff7ecb20_7b31_4549_a468_0da4421a2b0e_Output); |
|||
float Multiply_3002b60e_2a73_4b04_9567_798629fb7fb7_Output = unity_multiply_float (VoronoiNoise_5d4bee83_6fb2_48e2_b332_76a7ce558de7_n3, SmoothStep_d93b46f2_249b_4b3a_93a9_70e542a367ea_Output); |
|||
float Saturate_848599e3_7853_4ad1_9dc9_d854e0c98884_Output = saturate (Multiply_3002b60e_2a73_4b04_9567_798629fb7fb7_Output); |
|||
float3 Vector3_ed4329c2_0a82_4467_816a_99ed1694361d_Uniform = float3 (2, 4, 8); |
|||
float3 Multiply_196a897c_4a8f_4c02_87f1_4818aeec305d_Output = unity_multiply_float (Saturate_848599e3_7853_4ad1_9dc9_d854e0c98884_Output, Vector3_ed4329c2_0a82_4467_816a_99ed1694361d_Uniform); |
|||
float3 Add_371d52ad_c3e8_484a_8546_7079c5df37df_Output = unity_add_float (Multiply_51e47dbb_3a27_43fb_85f3_075820b6f397_Output, Multiply_196a897c_4a8f_4c02_87f1_4818aeec305d_Output); |
|||
float3 RGBtoLinear_b45ced7c_417b_406b_9524_9699354a5af9_Output = unity_rgbtolinear_float (Add_371d52ad_c3e8_484a_8546_7079c5df37df_Output); |
|||
float4 UV_f07867b1_de17_49e3_8e83_602340969ed4_UV = uv0; |
|||
float4 Texture_b86ff54c_bbe9_4694_8531_326cc9640f0b = tex2D (Texture_b86ff54c_bbe9_4694_8531_326cc9640f0b_Uniform, (UV_f07867b1_de17_49e3_8e83_602340969ed4_UV.xy)); |
|||
float4 OneMinus_4ee34df0_3179_41cf_b2d7_f7a3a8a7795e_Output = unity_oneminus_float (Texture_b86ff54c_bbe9_4694_8531_326cc9640f0b); |
|||
float3 Multiply_a8ff6c5c_5b0d_413a_b22d_7a95b12dadbc_Output = unity_multiply_float (RGBtoLinear_b45ced7c_417b_406b_9524_9699354a5af9_Output, OneMinus_4ee34df0_3179_41cf_b2d7_f7a3a8a7795e_Output); |
|||
float CustomCode_de9dc268_2bcc_4906_804c_bd10b50ad4f4_c; |
|||
unity_CustomCode_test (OneMinus_4ee34df0_3179_41cf_b2d7_f7a3a8a7795e_Output, 0.57, CustomCode_de9dc268_2bcc_4906_804c_bd10b50ad4f4_c); |
|||
float Multiply_2f548bb2_d578_4b2b_b00c_20897ee877b3_Output = unity_multiply_float (CustomCode_de9dc268_2bcc_4906_804c_bd10b50ad4f4_c, 0.75); |
|||
float3 Add_e67d33e0_c8c9_451a_9962_408b4fa9f2e9_Output = unity_add_float (Multiply_a8ff6c5c_5b0d_413a_b22d_7a95b12dadbc_Output, Multiply_2f548bb2_d578_4b2b_b00c_20897ee877b3_Output); |
|||
float Vector1_514d9c2d_f80f_4ffd_824e_58e3f2d8a162_Uniform = 1; |
|||
o.Emission = Add_e67d33e0_c8c9_451a_9962_408b4fa9f2e9_Output; |
|||
o.Alpha = Vector1_514d9c2d_f80f_4ffd_824e_58e3f2d8a162_Uniform; |
|||
|
|||
} |
|||
ENDCG |
|||
} |
|||
|
|||
|
|||
FallBack "Diffuse" |
|||
CustomEditor "LegacyIlluminShaderGUI" |
|||
} |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: Cellular_Material |
|||
m_Shader: {fileID: 4800000, guid: b1fd770cc7814084f9a27232d7fba579, type: 3} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 1 |
|||
m_EnableInstancingVariants: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- Texture_b86ff54c_bbe9_4694_8531_326cc9640f0b_Uniform: |
|||
m_Texture: {fileID: 2800000, guid: ad78029cb3832214ca442896e68ae18f, type: 3} |
|||
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} |
|||
m_Floats: |
|||
- _BumpScale: 1 |
|||
- _Cutoff: 0.5 |
|||
- _DetailNormalMapScale: 1 |
|||
- _DstBlend: 0 |
|||
- _GlossMapScale: 1 |
|||
- _Glossiness: 0.5 |
|||
- _GlossyReflections: 1 |
|||
- _Metallic: 0 |
|||
- _Mode: 0 |
|||
- _OcclusionStrength: 1 |
|||
- _Parallax: 0.02 |
|||
- _SmoothnessTextureChannel: 0 |
|||
- _SpecularHighlights: 1 |
|||
- _SrcBlend: 1 |
|||
- _UVSec: 0 |
|||
- _ZWrite: 1 |
|||
m_Colors: |
|||
- _Color: {r: 1, g: 1, b: 1, a: 1} |
|||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: AnimatedMaterial |
|||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- _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: 8600000, guid: 3d2f7c217d996304986bdb68379c189e, type: 2} |
|||
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} |
|||
m_Floats: |
|||
- _BumpScale: 1 |
|||
- _Cutoff: 0.5 |
|||
- _DetailNormalMapScale: 1 |
|||
- _DstBlend: 0 |
|||
- _GlossMapScale: 1 |
|||
- _Glossiness: 0.5 |
|||
- _GlossyReflections: 1 |
|||
- _Metallic: 0 |
|||
- _Mode: 0 |
|||
- _OcclusionStrength: 1 |
|||
- _Parallax: 0.02 |
|||
- _SmoothnessTextureChannel: 0 |
|||
- _SpecularHighlights: 1 |
|||
- _SrcBlend: 1 |
|||
- _UVSec: 0 |
|||
- _ZWrite: 1 |
|||
m_Colors: |
|||
- _Color: {r: 1, g: 1, b: 1, a: 1} |
|||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: 1e99b83ff341d5b4f8a53e7ecb2a8ed9 |
|||
timeCreated: 1495742381 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 2100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!86 &8600000 |
|||
CustomRenderTexture: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: CustomTexture |
|||
m_ImageContentsHash: |
|||
serializedVersion: 2 |
|||
Hash: 00000000000000000000000000000000 |
|||
m_Width: 256 |
|||
m_Height: 256 |
|||
m_AntiAliasing: 1 |
|||
m_DepthFormat: 0 |
|||
m_ColorFormat: 0 |
|||
m_MipMap: 0 |
|||
m_GenerateMips: 1 |
|||
m_SRGB: 0 |
|||
m_TextureSettings: |
|||
serializedVersion: 2 |
|||
m_FilterMode: 1 |
|||
m_Aniso: 1 |
|||
m_MipBias: 0 |
|||
m_WrapU: 1 |
|||
m_WrapV: 1 |
|||
m_WrapW: 1 |
|||
m_Dimension: 2 |
|||
m_VolumeDepth: 1 |
|||
m_Material: {fileID: 2100000, guid: a04cf3d84ac9f56498f2ac8b907a5fa4, type: 2} |
|||
m_InitSource: 0 |
|||
m_InitMaterial: {fileID: 0} |
|||
m_InitColor: {r: 1, g: 1, b: 1, a: 1} |
|||
m_InitTexture: {fileID: 0} |
|||
m_UpdateMode: 1 |
|||
m_InitializationMode: 1 |
|||
m_UpdateZoneSpace: 0 |
|||
m_CurrentUpdateZoneSpace: 0 |
|||
m_UpdateZones: [] |
|||
m_UpdatePeriod: 0 |
|||
m_ShaderPass: 0 |
|||
m_CubemapFaceMask: 4294967295 |
|||
m_DoubleBuffered: 0 |
|||
m_WrapUpdateZones: 0 |
|
|||
fileFormatVersion: 2 |
|||
guid: 3d2f7c217d996304986bdb68379c189e |
|||
timeCreated: 1495741994 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 8600000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!29 &1 |
|||
OcclusionCullingSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
m_OcclusionBakeSettings: |
|||
smallestOccluder: 5 |
|||
smallestHole: 0.25 |
|||
backfaceThreshold: 100 |
|||
m_SceneGUID: 00000000000000000000000000000000 |
|||
m_OcclusionCullingData: {fileID: 0} |
|||
--- !u!104 &2 |
|||
RenderSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 8 |
|||
m_Fog: 0 |
|||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} |
|||
m_FogMode: 3 |
|||
m_FogDensity: 0.01 |
|||
m_LinearFogStart: 0 |
|||
m_LinearFogEnd: 300 |
|||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} |
|||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} |
|||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} |
|||
m_AmbientIntensity: 1 |
|||
m_AmbientMode: 0 |
|||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} |
|||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_HaloStrength: 0.5 |
|||
m_FlareStrength: 1 |
|||
m_FlareFadeSpeed: 3 |
|||
m_HaloTexture: {fileID: 0} |
|||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} |
|||
m_DefaultReflectionMode: 0 |
|||
m_DefaultReflectionResolution: 128 |
|||
m_ReflectionBounces: 1 |
|||
m_ReflectionIntensity: 1 |
|||
m_CustomReflection: {fileID: 0} |
|||
m_Sun: {fileID: 0} |
|||
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} |
|||
--- !u!157 &3 |
|||
LightmapSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 11 |
|||
m_GIWorkflowMode: 1 |
|||
m_GISettings: |
|||
serializedVersion: 2 |
|||
m_BounceScale: 1 |
|||
m_IndirectOutputScale: 1 |
|||
m_AlbedoBoost: 1 |
|||
m_TemporalCoherenceThreshold: 1 |
|||
m_EnvironmentLightingMode: 0 |
|||
m_EnableBakedLightmaps: 1 |
|||
m_EnableRealtimeLightmaps: 1 |
|||
m_LightmapEditorSettings: |
|||
serializedVersion: 9 |
|||
m_Resolution: 2 |
|||
m_BakeResolution: 40 |
|||
m_TextureWidth: 1024 |
|||
m_TextureHeight: 1024 |
|||
m_AO: 0 |
|||
m_AOMaxDistance: 1 |
|||
m_CompAOExponent: 1 |
|||
m_CompAOExponentDirect: 0 |
|||
m_Padding: 2 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_LightmapsBakeMode: 1 |
|||
m_TextureCompression: 1 |
|||
m_FinalGather: 0 |
|||
m_FinalGatherFiltering: 1 |
|||
m_FinalGatherRayCount: 256 |
|||
m_ReflectionCompression: 2 |
|||
m_MixedBakeMode: 2 |
|||
m_BakeBackend: 0 |
|||
m_PVRSampling: 1 |
|||
m_PVRDirectSampleCount: 32 |
|||
m_PVRSampleCount: 500 |
|||
m_PVRBounces: 2 |
|||
m_PVRFiltering: 0 |
|||
m_PVRFilteringMode: 1 |
|||
m_PVRCulling: 1 |
|||
m_PVRFilteringGaussRadiusDirect: 1 |
|||
m_PVRFilteringGaussRadiusIndirect: 5 |
|||
m_PVRFilteringGaussRadiusAO: 2 |
|||
m_PVRFilteringAtrousColorSigma: 1 |
|||
m_PVRFilteringAtrousNormalSigma: 1 |
|||
m_PVRFilteringAtrousPositionSigma: 1 |
|||
m_LightingDataAsset: {fileID: 0} |
|||
m_UseShadowmask: 1 |
|||
--- !u!196 &4 |
|||
NavMeshSettings: |
|||
serializedVersion: 2 |
|||
m_ObjectHideFlags: 0 |
|||
m_BuildSettings: |
|||
serializedVersion: 2 |
|||
agentTypeID: 0 |
|||
agentRadius: 0.5 |
|||
agentHeight: 2 |
|||
agentSlope: 45 |
|||
agentClimb: 0.4 |
|||
ledgeDropHeight: 0 |
|||
maxJumpAcrossDistance: 0 |
|||
minRegionArea: 2 |
|||
manualCellSize: 0 |
|||
cellSize: 0.16666667 |
|||
manualTileSize: 0 |
|||
tileSize: 256 |
|||
accuratePlacement: 0 |
|||
debug: |
|||
m_Flags: 0 |
|||
m_NavMeshData: {fileID: 0} |
|||
--- !u!1 &213559196 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 213559200} |
|||
- component: {fileID: 213559199} |
|||
- component: {fileID: 213559198} |
|||
- component: {fileID: 213559197} |
|||
m_Layer: 0 |
|||
m_Name: Cube (4) |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!23 &213559197 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 213559196} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 1e99b83ff341d5b4f8a53e7ecb2a8ed9, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 1 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!65 &213559198 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 213559196} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &213559199 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 213559196} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!4 &213559200 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 213559196} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 1.08, y: 2.64, z: -2.570777} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 6 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &262669736 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 262669740} |
|||
- component: {fileID: 262669739} |
|||
- component: {fileID: 262669738} |
|||
- component: {fileID: 262669737} |
|||
m_Layer: 0 |
|||
m_Name: Cube (1) |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!23 &262669737 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 262669736} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 498f1d2437c6bb84d8b82d451d56eaee, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 1 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!65 &262669738 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 262669736} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &262669739 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 262669736} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!4 &262669740 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 262669736} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 1.74, y: 1.17, z: -2.570777} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 3 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &267604125 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 267604129} |
|||
- component: {fileID: 267604128} |
|||
- component: {fileID: 267604127} |
|||
- component: {fileID: 267604126} |
|||
m_Layer: 0 |
|||
m_Name: Cube (6) |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!23 &267604126 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 267604125} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 1e99b83ff341d5b4f8a53e7ecb2a8ed9, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 1 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!65 &267604127 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 267604125} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &267604128 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 267604125} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!4 &267604129 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 267604125} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: -0.81, y: -0.51, z: -2.570777} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 8 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &1240285616 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 1240285620} |
|||
- component: {fileID: 1240285619} |
|||
- component: {fileID: 1240285618} |
|||
- component: {fileID: 1240285617} |
|||
m_Layer: 0 |
|||
m_Name: Cube |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!23 &1240285617 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1240285616} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 1e99b83ff341d5b4f8a53e7ecb2a8ed9, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 1 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!65 &1240285618 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1240285616} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &1240285619 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1240285616} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!4 &1240285620 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1240285616} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 0.15, y: 1.17, z: -2.570777} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 2 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &1251357087 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 1251357091} |
|||
- component: {fileID: 1251357090} |
|||
- component: {fileID: 1251357089} |
|||
- component: {fileID: 1251357088} |
|||
m_Layer: 0 |
|||
m_Name: Cube (3) |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!23 &1251357088 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1251357087} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 1e99b83ff341d5b4f8a53e7ecb2a8ed9, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 1 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!65 &1251357089 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1251357087} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &1251357090 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1251357087} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!4 &1251357091 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1251357087} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: -0.72, y: 2.65, z: -2.570777} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 5 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &1257845278 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 1257845283} |
|||
- component: {fileID: 1257845282} |
|||
- component: {fileID: 1257845281} |
|||
- component: {fileID: 1257845280} |
|||
- component: {fileID: 1257845279} |
|||
m_Layer: 0 |
|||
m_Name: Main Camera |
|||
m_TagString: MainCamera |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!81 &1257845279 |
|||
AudioListener: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1257845278} |
|||
m_Enabled: 1 |
|||
--- !u!124 &1257845280 |
|||
Behaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1257845278} |
|||
m_Enabled: 1 |
|||
--- !u!92 &1257845281 |
|||
Behaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1257845278} |
|||
m_Enabled: 1 |
|||
--- !u!20 &1257845282 |
|||
Camera: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1257845278} |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_ClearFlags: 1 |
|||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} |
|||
m_NormalizedViewPortRect: |
|||
serializedVersion: 2 |
|||
x: 0 |
|||
y: 0 |
|||
width: 1 |
|||
height: 1 |
|||
near clip plane: 0.3 |
|||
far clip plane: 1000 |
|||
field of view: 60 |
|||
orthographic: 0 |
|||
orthographic size: 5 |
|||
m_Depth: -1 |
|||
m_CullingMask: |
|||
serializedVersion: 2 |
|||
m_Bits: 4294967295 |
|||
m_RenderingPath: -1 |
|||
m_TargetTexture: {fileID: 0} |
|||
m_TargetDisplay: 0 |
|||
m_TargetEye: 3 |
|||
m_HDR: 1 |
|||
m_AllowMSAA: 1 |
|||
m_ForceIntoRT: 0 |
|||
m_OcclusionCulling: 1 |
|||
m_StereoConvergence: 10 |
|||
m_StereoSeparation: 0.022 |
|||
m_StereoMirrorMode: 0 |
|||
--- !u!4 &1257845283 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1257845278} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 0, y: 1, z: -10} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &1609885672 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 1609885676} |
|||
- component: {fileID: 1609885675} |
|||
- component: {fileID: 1609885674} |
|||
- component: {fileID: 1609885673} |
|||
m_Layer: 0 |
|||
m_Name: Cube (2) |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!23 &1609885673 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1609885672} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 498f1d2437c6bb84d8b82d451d56eaee, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 1 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!65 &1609885674 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1609885672} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &1609885675 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1609885672} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!4 &1609885676 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1609885672} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: -1.55, y: 1.2, z: -2.570777} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 4 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &1701227851 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 1701227855} |
|||
- component: {fileID: 1701227854} |
|||
- component: {fileID: 1701227853} |
|||
- component: {fileID: 1701227852} |
|||
m_Layer: 0 |
|||
m_Name: Cube (5) |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!23 &1701227852 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1701227851} |
|||
m_Enabled: 1 |
|||
m_CastShadows: 1 |
|||
m_ReceiveShadows: 1 |
|||
m_DynamicOccludee: 1 |
|||
m_MotionVectors: 1 |
|||
m_LightProbeUsage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_Materials: |
|||
- {fileID: 2100000, guid: 1e99b83ff341d5b4f8a53e7ecb2a8ed9, type: 2} |
|||
m_StaticBatchInfo: |
|||
firstSubMesh: 0 |
|||
subMeshCount: 0 |
|||
m_StaticBatchRoot: {fileID: 0} |
|||
m_ProbeAnchor: {fileID: 0} |
|||
m_LightProbeVolumeOverride: {fileID: 0} |
|||
m_ScaleInLightmap: 1 |
|||
m_PreserveUVs: 1 |
|||
m_IgnoreNormalsForChartDetection: 0 |
|||
m_ImportantGI: 0 |
|||
m_SelectedEditorRenderState: 3 |
|||
m_MinimumChartSize: 4 |
|||
m_AutoUVMaxDistance: 0.5 |
|||
m_AutoUVMaxAngle: 89 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_SortingLayerID: 0 |
|||
m_SortingLayer: 0 |
|||
m_SortingOrder: 0 |
|||
--- !u!65 &1701227853 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1701227851} |
|||
m_Material: {fileID: 0} |
|||
m_IsTrigger: 0 |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_Size: {x: 1, y: 1, z: 1} |
|||
m_Center: {x: 0, y: 0, z: 0} |
|||
--- !u!33 &1701227854 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1701227851} |
|||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!4 &1701227855 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1701227851} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 0.93, y: -0.43, z: -2.570777} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 7 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &1950489749 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 1950489751} |
|||
- component: {fileID: 1950489750} |
|||
m_Layer: 0 |
|||
m_Name: Directional Light |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!108 &1950489750 |
|||
Light: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1950489749} |
|||
m_Enabled: 1 |
|||
serializedVersion: 8 |
|||
m_Type: 1 |
|||
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} |
|||
m_Intensity: 1 |
|||
m_Range: 10 |
|||
m_SpotAngle: 30 |
|||
m_CookieSize: 10 |
|||
m_Shadows: |
|||
m_Type: 2 |
|||
m_Resolution: -1 |
|||
m_CustomResolution: -1 |
|||
m_Strength: 1 |
|||
m_Bias: 0.05 |
|||
m_NormalBias: 0.4 |
|||
m_NearPlane: 0.2 |
|||
m_Cookie: {fileID: 0} |
|||
m_DrawHalo: 0 |
|||
m_Flare: {fileID: 0} |
|||
m_RenderMode: 0 |
|||
m_CullingMask: |
|||
serializedVersion: 2 |
|||
m_Bits: 4294967295 |
|||
m_Lightmapping: 4 |
|||
m_AreaSize: {x: 1, y: 1} |
|||
m_BounceIntensity: 1 |
|||
m_FalloffTable: |
|||
m_Table[0]: 0 |
|||
m_Table[1]: 0 |
|||
m_Table[2]: 0 |
|||
m_Table[3]: 0 |
|||
m_Table[4]: 0 |
|||
m_Table[5]: 0 |
|||
m_Table[6]: 0 |
|||
m_Table[7]: 0 |
|||
m_Table[8]: 0 |
|||
m_Table[9]: 0 |
|||
m_Table[10]: 0 |
|||
m_Table[11]: 0 |
|||
m_Table[12]: 0 |
|||
m_ColorTemperature: 6570 |
|||
m_UseColorTemperature: 0 |
|||
m_ShadowRadius: 0 |
|||
m_ShadowAngle: 0 |
|||
--- !u!4 &1950489751 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1950489749} |
|||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} |
|||
m_LocalPosition: {x: 0, y: 3, z: 0} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 1 |
|||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} |
|
|||
fileFormatVersion: 2 |
|||
guid: cf037fe0510459a4d9218aeb3c780b2b |
|||
timeCreated: 1495742354 |
|||
licenseType: Pro |
|||
DefaultImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1
MaterialGraphProject/Assets/Florent/FirstPass/RealtimeUpdate.ShaderGraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 17691048a8eeabd4baf339beaee72f46 |
|||
timeCreated: 1495742007 |
|||
licenseType: Pro |
|||
ScriptedImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: UnityEngine.MaterialGraph.ExportTextureMasterNodeeac16720-baa9-4e44-8ca0-c395445c4ed3 |
|||
m_Shader: {fileID: 4800000, guid: 17691048a8eeabd4baf339beaee72f46, type: 3} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- Texture_7a4ffc17_ec7a_49b8_a833_bdec799dea94_Uniform: |
|||
m_Texture: {fileID: 2800000, guid: 5485e2f56028a3c4cb54f5caa167377e, type: 3} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _Tex: |
|||
m_Texture: {fileID: 2800000, guid: 5485e2f56028a3c4cb54f5caa167377e, type: 3} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: [] |
|||
m_Colors: |
|||
- _Color: {r: 1, g: 1, b: 1, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: a04cf3d84ac9f56498f2ac8b907a5fa4 |
|||
timeCreated: 1495742291 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 2100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
Shader "Character/Anisotropy" |
|||
{ |
|||
Properties |
|||
{ |
|||
Texture_02787904_5090_4666_a7c8_97507f02d498_Uniform("Albedo", 2D) = "white" {} |
|||
Color_c9de3ed1_a353_4808_af95_5a93b2d8ea8d_Uniform("Color", Color) = (1,1,1,0) |
|||
Texture_71f3d401_2df9_4089_9d97_b67c1150fd8f_Uniform("Normal", 2D) = "bump" {} |
|||
Texture_8d2e732f_5ca2_405f_9835_5f727d9e43e2_Uniform("Metallic Tex", 2D) = "white" {} |
|||
Vector1_1a947b3b_f0d1_47e4_923c_a34e01736c82_Uniform("Metallic", Range(0, 1)) = 1 |
|||
Vector1_1f0b0b76_65f8_4986_8eb5_9f7ef1373895_Uniform("Smoothness", Range(0, 1)) = 1 |
|||
Vector1_d193efae_d745_43f0_8f92_f814516da592_Uniform("Anisotropy", Range(0, 1)) = 0.5 |
|||
|
|||
} |
|||
|
|||
SubShader |
|||
{ |
|||
Tags |
|||
{ |
|||
"RenderType" = "Opaque" |
|||
"Queue" = "Geometry" |
|||
} |
|||
|
|||
Blend One Zero |
|||
|
|||
Cull Back |
|||
|
|||
ZTest LEqual |
|||
|
|||
ZWrite On |
|||
|
|||
|
|||
LOD 200 |
|||
|
|||
CGPROGRAM |
|||
#include "UnityCG.cginc" |
|||
//#include "AdvancedBRDF.cginc" |
|||
//#include "AdvancedShading.cginc" |
|||
//#include "AdvancedLighting.cginc" |
|||
|
|||
#define SHADINGMODELID_STANDARD |
|||
|
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Diffuse |
|||
|
|||
// From UE4 - Used for Cloth (Deprecated) |
|||
float3 Diffuse_Lambert(float3 DiffuseColor) |
|||
{ |
|||
return DiffuseColor * (1 / UNITY_PI); |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Fresnel |
|||
|
|||
// From UE4 - Used for Cloth |
|||
// [Schlick 1994, "An Inexpensive BRDF Model for Physically-Based Rendering"] |
|||
float3 F_Schlick(float3 SpecularColor, float VoH) |
|||
{ |
|||
float Fc = Pow5(1 - VoH); // 1 sub, 3 mul |
|||
//return Fc + (1 - Fc) * SpecularColor; // 1 add, 3 mad |
|||
// Anything less than 2% is physically impossible and is instead considered to be shadowing |
|||
return saturate(50.0 * SpecularColor.g) * Fc + (1 - Fc) * SpecularColor; |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Distribution |
|||
|
|||
// From UE4 - USed for Cloth |
|||
// GGX / Trowbridge-Reitz |
|||
// [Walter et al. 2007, "Microfacet models for refraction through rough surfaces"] |
|||
float D_GGX(float roughness, float NdotH) |
|||
{ |
|||
float a = roughness * roughness; |
|||
float a2 = a * a; |
|||
float d = (NdotH * a2 - NdotH) * NdotH + 1; // 2 mad |
|||
return a2 / (UNITY_PI*d*d); // 4 mul, 1 rcp |
|||
} |
|||
|
|||
// Anisotropic GGX |
|||
// Taken from HDRenderPipeline |
|||
float D_GGXAnisotropic(float TdotH, float BdotH, float NdotH, float roughnessT, float roughnessB) |
|||
{ |
|||
float f = TdotH * TdotH / (roughnessT * roughnessT) + BdotH * BdotH / (roughnessB * roughnessB) + NdotH * NdotH; |
|||
return 1.0 / (roughnessT * roughnessB * f * f); |
|||
} |
|||
|
|||
// From UE4 - Used for Cloth |
|||
float D_InvGGX(float roughness, float NdotH) |
|||
{ |
|||
float a = roughness * roughness; |
|||
float a2 = a * a; |
|||
float A = 4; |
|||
float d = (NdotH - a2 * NdotH) * NdotH + a2; |
|||
return 1 / (UNITY_PI * (1 + A*a2)) * (1 + 4 * a2*a2 / (d*d)); //RCP |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Visibility |
|||
|
|||
// From UE4 - Used for Cloth |
|||
// Appoximation of joint Smith term for GGX |
|||
// [Heitz 2014, "Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs"] |
|||
float Vis_SmithJointApprox(float Roughness, float NoV, float NoL) |
|||
{ |
|||
float a = (Roughness*Roughness); |
|||
float Vis_SmithV = NoL * (NoV * (1 - a) + a); |
|||
float Vis_SmithL = NoV * (NoL * (1 - a) + a); |
|||
// Note: will generate NaNs with Roughness = 0. MinRoughness is used to prevent this |
|||
return 0.5 * 1 / (Vis_SmithV + Vis_SmithL); //RCP |
|||
} |
|||
|
|||
// From UE4 - Used for Cloth |
|||
float Vis_Cloth(float NoV, float NoL) |
|||
{ |
|||
return 1 / (4 * (NoL + NoV - NoL * NoV)); //RCP |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// SORT THESE |
|||
|
|||
// Smith Joint GGX Anisotropic Visibility |
|||
// Taken from https://cedec.cesa.or.jp/2015/session/ENG/14698.html |
|||
float SmithJointGGXAnisotropic(float TdotV, float BdotV, float NdotV, float TdotL, float BdotL, float NdotL, float roughnessT, float roughnessB) |
|||
{ |
|||
float aT = roughnessT; |
|||
float aT2 = aT * aT; |
|||
float aB = roughnessB; |
|||
float aB2 = aB * aB; |
|||
|
|||
float lambdaV = NdotL * sqrt(aT2 * TdotV * TdotV + aB2 * BdotV * BdotV + NdotV * NdotV); |
|||
float lambdaL = NdotV * sqrt(aT2 * TdotL * TdotL + aB2 * BdotL * BdotL + NdotL * NdotL); |
|||
|
|||
return 0.5 / (lambdaV + lambdaL); |
|||
} |
|||
|
|||
// Convert Anistropy to roughness |
|||
void ConvertAnisotropyToRoughness(float roughness, float anisotropy, out float roughnessT, out float roughnessB) |
|||
{ |
|||
// (0 <= anisotropy <= 1), therefore (0 <= anisoAspect <= 1) |
|||
// The 0.9 factor limits the aspect ratio to 10:1. |
|||
float anisoAspect = sqrt(1.0 - 0.9 * anisotropy); |
|||
roughnessT = roughness / anisoAspect; // Distort along tangent (rougher) |
|||
roughnessB = roughness * anisoAspect; // Straighten along bitangent (smoother) |
|||
} |
|||
|
|||
// Schlick Fresnel |
|||
float FresnelSchlick(float f0, float f90, float u) |
|||
{ |
|||
float x = 1.0 - u; |
|||
float x5 = x * x; |
|||
x5 = x5 * x5 * x; |
|||
return (f90 - f0) * x5 + f0; // sub mul mul mul sub mad |
|||
} |
|||
|
|||
//Clamp roughness |
|||
float ClampRoughnessForAnalyticalLights(float roughness) |
|||
{ |
|||
return max(roughness, 0.000001); |
|||
} |
|||
|
|||
//Calculate tangent warp for IBL (Reference Version - not used) |
|||
float3 SpecularGGXIBLRef(float3 viewDir, float3 normalDir, float3 tangentDir, float3 bitangentDir, float roughnessT, float roughnessB) |
|||
{ |
|||
return float3(1, 1, 1); |
|||
//Hidden in UnityAnisotropicLighting.cginc |
|||
} |
|||
|
|||
// Sample Anisotropic Direction for IBL (Reference Version - not used) |
|||
void SampleAnisoGGXDir(float2 u, float3 viewDir, float3 normalDir, float3 tangent, float3 bitangent, float roughnessT, float roughnessB, out float3 halfDir, out float3 lightDir) |
|||
{ |
|||
// AnisoGGX NDF sampling |
|||
halfDir = sqrt(u.x / (1.0 - u.x)) * (roughnessT * cos((UNITY_PI * 2) * u.y) * tangent + roughnessB * sin((UNITY_PI * 2) * u.y) * bitangent) + normalDir; |
|||
halfDir = normalize(halfDir); |
|||
|
|||
// Convert sample from half angle to incident angle |
|||
lightDir = 2.0 * saturate(dot(viewDir, halfDir)) * halfDir - viewDir; |
|||
} |
|||
|
|||
// Ref: Donald Revie - Implementing Fur Using Deferred Shading (GPU Pro 2) |
|||
// The grain direction (e.g. hair or brush direction) is assumed to be orthogonal to the normal. |
|||
// The returned normal is NOT normalized. |
|||
float3 ComputeGrainNormal(float3 grainDir, float3 V) |
|||
{ |
|||
float3 B = cross(-V, grainDir); |
|||
return cross(B, grainDir); |
|||
} |
|||
|
|||
//Modify Normal for Anisotropic IBL (Realtime version) |
|||
// Fake anisotropic by distorting the normal. |
|||
// The grain direction (e.g. hair or brush direction) is assumed to be orthogonal to N. |
|||
// Anisotropic ratio (0->no isotropic; 1->full anisotropy in tangent direction) |
|||
float3 GetAnisotropicModifiedNormal(float3 grainDir, float3 N, float3 V, float anisotropy) |
|||
{ |
|||
float3 grainNormal = ComputeGrainNormal(grainDir, V); |
|||
// TODO: test whether normalizing 'grainNormal' is worth it. |
|||
return normalize(lerp(N, grainNormal, anisotropy)); |
|||
} |
|||
|
|||
/// REGION END - ANISOTROPY |
|||
|
|||
/// REGION START - SUBSURFACE SCATTERING |
|||
|
|||
half Fresnel(half3 H, half3 V, half F0) |
|||
{ |
|||
half base = 1.0 - dot(V, H); |
|||
half exponential = pow(base, 5.0); |
|||
return exponential + F0 * (1.0 - exponential); |
|||
} |
|||
/* |
|||
inline half3 KelemenSzirmayKalosSpecular(half3 normal, half3 lightDir, half3 viewDir, float roughness, float rho_s) |
|||
{ |
|||
half3 result = half3(0, 0, 0); |
|||
half NdotL = dot(normal, lightDir); |
|||
if (NdotL > 0.0) |
|||
{ |
|||
half3 h = lightDir + viewDir; |
|||
half3 H = normalize(h); |
|||
half NdotH = dot(normal, H); |
|||
half PH = pow(2.0 * tex2D(_BeckmannPrecomputedTex, half2(NdotH, roughness)).r, 10.0); |
|||
half F = Fresnel(H, viewDir, 0.028); |
|||
half frSpec = max(PH * F / dot(h, h), 0); |
|||
half term = NdotL * rho_s * frSpec; |
|||
result = half3(term, term, term); |
|||
} |
|||
return result; |
|||
}*/ |
|||
/* |
|||
half3 SkinDiffuse(float curv, float3 NdotL) |
|||
{ |
|||
float3 lookup = NdotL * 0.5 + 0.5; |
|||
float3 diffuse; |
|||
|
|||
diffuse.r = tex2D(_DiffusionProfileTexture, float2(lookup.r, curv)).r; |
|||
diffuse.g = tex2D(_DiffusionProfileTexture, float2(lookup.g, curv)).g; |
|||
diffuse.b = tex2D(_DiffusionProfileTexture, float2(lookup.b, curv)).b; |
|||
|
|||
return diffuse; |
|||
}*/ |
|||
|
|||
/// REGION END - SUBSURFACE SCATTERING |
|||
|
|||
// Upgrade NOTE: replaced 'defined SHADINGMODELID_CLEARCOAT' with 'defined (SHADINGMODELID_CLEARCOAT)' |
|||
// Upgrade NOTE: replaced 'defined SHADINGMODELID_CLOTH' with 'defined (SHADINGMODELID_CLOTH)' |
|||
// Upgrade NOTE: replaced 'defined SHADINGMODELID_EYE' with 'defined (SHADINGMODELID_EYE)' |
|||
// Upgrade NOTE: replaced 'defined SHADINGMODELID_FOLIAGE' with 'defined (SHADINGMODELID_FOLIAGE)' |
|||
// Upgrade NOTE: replaced 'defined SHADINGMODELID_HAIR' with 'defined (SHADINGMODELID_HAIR)' |
|||
// Upgrade NOTE: replaced 'defined SHADINGMODELID_SKIN' with 'defined (SHADINGMODELID_SKIN)' |
|||
// Upgrade NOTE: replaced 'defined SHADINGMODELID_SUBSURFACE' with 'defined (SHADINGMODELID_SUBSURFACE)' |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Shading models |
|||
|
|||
//#pragma multi_compile SHADINGMODELID_UNLIT SHADINGMODELID_STANDARD SHADINGMODELID_SUBSURFACE SHADINGMODELID_SKIN SHADINGMODELID_FOLIAGE SHADINGMODELID_CLEARCOAT SHADINGMODELID_CLOTH SHADINGMODELID_EYE |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Input |
|||
|
|||
half _ShadingModel; |
|||
|
|||
sampler2D _AnisotropyMap; |
|||
half _Anisotropy; |
|||
sampler2D _TangentMap; |
|||
|
|||
half4 _TranslucentColor; |
|||
sampler2D _TranslucencyMap; |
|||
|
|||
sampler2D _FuzzTex; |
|||
half3 _FuzzColor; |
|||
half _Cloth; |
|||
|
|||
sampler2D _IrisNormal; |
|||
sampler2D _IrisMask; |
|||
half _IrisDistance; |
|||
|
|||
half _TDistortion; |
|||
half _TScale; |
|||
half _TAmbient; |
|||
half _TPower; |
|||
half _TAttenuation; |
|||
half _TransmissionOverallStrength; |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Maths helpers |
|||
|
|||
// Octahedron Normal Vectors |
|||
// [Cigolle 2014, "A Survey of Efficient Representations for Independent Unit Vectors"] |
|||
// Mean Max |
|||
// oct 8:8 0.33709 0.94424 |
|||
// snorm 8:8:8 0.17015 0.38588 |
|||
// oct 10:10 0.08380 0.23467 |
|||
// snorm 10:10:10 0.04228 0.09598 |
|||
// oct 12:12 0.02091 0.05874 |
|||
|
|||
float2 UnitVectorToOctahedron(float3 N) |
|||
{ |
|||
N.xy /= dot(float3(1,1,1), abs(N)); |
|||
if (N.z <= 0) |
|||
{ |
|||
N.xy = (1 - abs(N.yx)) * (N.xy >= 0 ? float2(1, 1) : float2(-1, -1)); |
|||
} |
|||
return N.xy; |
|||
} |
|||
|
|||
float3 OctahedronToUnitVector(float2 Oct) |
|||
{ |
|||
float3 N = float3(Oct, 1 - dot(float2(1,1), abs(Oct))); |
|||
if (N.z < 0) |
|||
{ |
|||
N.xy = (1 - abs(N.yx)) * (N.xy >= 0 ? float2(1, 1) : float2(-1, -1)); |
|||
} |
|||
return float3(1, 1, 1); |
|||
return normalize(N); |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Surface helpers |
|||
|
|||
half Anisotropy(float2 uv) |
|||
{ |
|||
return tex2D(_AnisotropyMap, uv) * _Anisotropy; |
|||
} |
|||
|
|||
half3 Fuzz(float2 uv) |
|||
{ |
|||
return tex2D(_FuzzTex, uv) * _FuzzColor; |
|||
} |
|||
|
|||
half Cloth() |
|||
{ |
|||
return _Cloth; |
|||
} |
|||
|
|||
half4 Iris(float2 uv) |
|||
{ |
|||
float2 n = UnitVectorToOctahedron(normalize(UnpackNormal(tex2D(_IrisNormal, uv)).rgb)) * 0.5 + 0.5; |
|||
float m = saturate(tex2D(_IrisMask, uv).r); // Iris Mask |
|||
float d = saturate(_IrisDistance); // Iris Distance |
|||
return float4(n.x, n.y, m, d); |
|||
} |
|||
|
|||
half3 Translucency(float2 uv) |
|||
{ |
|||
return tex2D(_TranslucencyMap, uv).rgb * _TranslucentColor.rgb; |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Unlit Shading Function |
|||
|
|||
float4 UnlitShading(float3 diffColor) |
|||
{ |
|||
return half4(diffColor, 1); |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Standard Shading Function |
|||
|
|||
float4 StandardShading(float3 diffColor, float3 specColor, float oneMinusReflectivity, float smoothness, float3 normal, float3x3 worldVectors, |
|||
float anisotropy, float metallic, float3 viewDir, UnityLight light, UnityIndirect gi) |
|||
{ |
|||
//Unpack world vectors |
|||
float3 tangent = worldVectors[0]; |
|||
float3 bitangent = worldVectors[1]; |
|||
//Normal shift |
|||
float shiftAmount = dot(normal, viewDir); |
|||
normal = shiftAmount < 0.0f ? normal + viewDir * (-shiftAmount + 1e-5f) : normal; |
|||
//Regular vectors |
|||
float NdotL = saturate(dot(normal, light.dir)); //sat? |
|||
float NdotV = abs(dot(normal, viewDir)); //abs? |
|||
float LdotV = dot(light.dir, viewDir); |
|||
float3 H = Unity_SafeNormalize(light.dir + viewDir); |
|||
float invLenLV = rsqrt(abs(2 + 2 * normalize(LdotV))); |
|||
//float invLenLV = rsqrt(abs(2 + 2 * LdotV)); |
|||
//float NdotH = (NdotL + normalize(NdotV)) * invLenLV; |
|||
float NdotH = saturate(dot(normal, H)); |
|||
//float NdotH = saturate((NdotL + normalize(NdotV)) * invLenLV); |
|||
//float H = (light.dir + viewDir) * invLenLV; |
|||
float LdotH = saturate(dot(light.dir, H)); |
|||
//Tangent vectors |
|||
float TdotH = dot(tangent, H); |
|||
float TdotL = dot(tangent, light.dir); |
|||
float BdotH = dot(bitangent, H); |
|||
float BdotL = dot(bitangent, light.dir); |
|||
float TdotV = dot(viewDir, tangent); |
|||
float BdotV = dot(viewDir, bitangent); |
|||
//Fresnels |
|||
half grazingTerm = saturate(smoothness + (1 - oneMinusReflectivity)); |
|||
float3 F = FresnelLerp(specColor, grazingTerm, NdotV); //Original Schlick - Replace from SRP? |
|||
//float3 fresnel0 = lerp(specColor, diffColor, metallic); |
|||
//float3 F = FresnelSchlick(fresnel0, 1.0, LdotH); |
|||
//Calculate roughness |
|||
float roughnessT; |
|||
float roughnessB; |
|||
float perceptualRoughness = SmoothnessToPerceptualRoughness(smoothness); |
|||
float roughness = PerceptualRoughnessToRoughness(perceptualRoughness); |
|||
ConvertAnisotropyToRoughness(roughness, anisotropy, roughnessT, roughnessB); |
|||
//Clamp roughness |
|||
//roughness = ClampRoughnessForAnalyticalLights(roughness); |
|||
roughnessT = ClampRoughnessForAnalyticalLights(roughnessT); |
|||
roughnessB = ClampRoughnessForAnalyticalLights(roughnessB); |
|||
//Visibility & Distribution terms |
|||
float V = SmithJointGGXAnisotropic(TdotV, BdotV, NdotV, TdotL, BdotL, NdotL, roughnessT, roughnessB); |
|||
float D = D_GGXAnisotropic(TdotH, BdotH, NdotH, roughnessT, roughnessB); |
|||
//Specular term |
|||
float3 specularTerm = V * D; //*UNITY_PI; |
|||
# ifdef UNITY_COLORSPACE_GAMMA |
|||
specularTerm = sqrt(max(1e-4h, specularTerm)); |
|||
# endif |
|||
// specularTerm * nl can be NaN on Metal in some cases, use max() to make sure it's a sane value |
|||
specularTerm = max(0, specularTerm * NdotL); |
|||
#if defined(_SPECULARHIGHLIGHTS_OFF) |
|||
specularTerm = 0.0; |
|||
#endif |
|||
//Diffuse term |
|||
float diffuseTerm = DisneyDiffuse(NdotV, NdotL, LdotH, perceptualRoughness) * NdotL;// - Need this NdotL multiply? |
|||
//Reduction |
|||
half surfaceReduction; |
|||
# ifdef UNITY_COLORSPACE_GAMMA |
|||
surfaceReduction = 1.0 - 0.28*roughness*perceptualRoughness; // 1-0.28*x^3 as approximation for (1/(x^4+1))^(1/2.2) on the domain [0;1] |
|||
# else |
|||
surfaceReduction = 1.0 / (roughness*roughness + 1.0); // fade \in [0.5;1] |
|||
# endif |
|||
//Final |
|||
half3 color = (diffColor * (gi.diffuse + light.color * diffuseTerm)) |
|||
+ specularTerm * light.color * FresnelTerm(specColor, LdotH) |
|||
+ surfaceReduction * gi.specular * FresnelLerp(specColor, grazingTerm, NdotV); |
|||
return half4(color, 1); |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Cloth Shading Function |
|||
|
|||
//float3 ClothShading(FGBufferData GBuffer, float3 LobeRoughness, float3 LobeEnergy, float3 L, float3 V, half3 N) |
|||
float4 ClothShading(float3 diffColor, float3 specColor, float3 fuzzColor, float cloth, float oneMinusReflectivity, float smoothness, float3 normal, float3 viewDir, UnityLight light, UnityIndirect gi, float3x3 worldVectors, float anisotropy) |
|||
{ |
|||
const float3 FuzzColor = saturate(fuzzColor); |
|||
const float Cloth = saturate(cloth); |
|||
|
|||
//Regular vectors |
|||
float NdotL = saturate(dot(normal, light.dir)); //sat? |
|||
float NdotV = abs(dot(normal, viewDir)); //abs? |
|||
float LdotV = dot(light.dir, viewDir); |
|||
//float invLenLV = rsqrt(abs(2 + 2 * normalize(LdotV))); |
|||
////float invLenLV = rsqrt(abs(2 + 2 * LdotV)); |
|||
//float NdotH = (NdotL + normalize(NdotV)) * invLenLV; |
|||
//float NdotH = saturate((NdotL + normalize(NdotV)) * invLenLV); |
|||
float3 H = Unity_SafeNormalize(light.dir + viewDir); |
|||
//float H = (light.dir + viewDir) * invLenLV; |
|||
float LdotH = saturate(dot(light.dir, H)); |
|||
|
|||
//float3 H = normalize(viewDir + light.dir); |
|||
//float NdotL = saturate(dot(normal, light.dir)); |
|||
//float NdotV = saturate(abs(dot(normal, viewDir)) + 1e-5); |
|||
float NdotH = saturate(dot(normal, H)); |
|||
float VdotH = saturate(dot(viewDir, H)); |
|||
//float LdotH = saturate(dot(light.dir, H)); |
|||
|
|||
half grazingTerm = saturate(smoothness + (1 - oneMinusReflectivity)); |
|||
|
|||
// Diffuse |
|||
float perceptualRoughness = SmoothnessToPerceptualRoughness(smoothness); |
|||
float roughness = PerceptualRoughnessToRoughness(perceptualRoughness); |
|||
float diffuseTerm = DisneyDiffuse(NdotV, NdotL, LdotH, perceptualRoughness) * NdotL;// - Need this NdotL multiply? |
|||
|
|||
// Cloth - Asperity Scattering - Inverse Beckmann Layer |
|||
float3 F1 = FresnelTerm(fuzzColor, LdotH);// FresnelLerp(fuzzColor, grazingTerm, NdotV);// FresnelTerm(FuzzColor, LdotH);// F_Schlick(FuzzColor, VdotH); |
|||
float D1 = D_InvGGX(roughness, NdotH); |
|||
float V1 = Vis_Cloth(NdotV, NdotL); |
|||
//Specular term |
|||
float3 specularTerm1 = V1 * D1; //*UNITY_PI; |
|||
# ifdef UNITY_COLORSPACE_GAMMA |
|||
specularTerm1 = sqrt(max(1e-4h, specularTerm1)); |
|||
# endif |
|||
// specularTerm * nl can be NaN on Metal in some cases, use max() to make sure it's a sane value |
|||
// specularTerm1 = max(0, specularTerm1 * NdotL); |
|||
#if defined(_SPECULARHIGHLIGHTS_OFF) |
|||
specularTerm1 = 0.0; |
|||
#endif |
|||
float3 Spec1 = specularTerm1 * light.color * FresnelTerm(fuzzColor, LdotH); |
|||
|
|||
// Generalized microfacet specular |
|||
/*float3 F2 = F_Schlick(specColor, VdotH); |
|||
float D2 = D_GGX(roughness, NdotH); |
|||
float V2 = Vis_SmithJointApprox(roughness, NdotV, NdotL); |
|||
float3 Spec2 = D2 * V2 * F2 * light.color;*/ |
|||
|
|||
//Unpack world vectors |
|||
float3 tangent = worldVectors[0]; |
|||
float3 bitangent = worldVectors[1]; |
|||
//Tangent vectors |
|||
float TdotH = dot(tangent, H); |
|||
float TdotL = dot(tangent, light.dir); |
|||
float BdotH = dot(bitangent, H); |
|||
float BdotL = dot(bitangent, light.dir); |
|||
float TdotV = dot(viewDir, tangent); |
|||
float BdotV = dot(viewDir, bitangent); |
|||
//Fresnels |
|||
float3 F2 = FresnelLerp(specColor, grazingTerm, NdotV);// FresnelTerm(specColor, LdotH);// FresnelLerp(specColor, grazingTerm, NdotV); //Original Schlick - Replace from SRP? |
|||
float roughnessT; |
|||
float roughnessB; |
|||
//float perceptualRoughness = SmoothnessToPerceptualRoughness(smoothness); |
|||
//float roughness = PerceptualRoughnessToRoughness(perceptualRoughness); |
|||
ConvertAnisotropyToRoughness(roughness, anisotropy, roughnessT, roughnessB); |
|||
//Clamp roughness |
|||
//roughness = ClampRoughnessForAnalyticalLights(roughness); |
|||
roughnessT = ClampRoughnessForAnalyticalLights(roughnessT); |
|||
roughnessB = ClampRoughnessForAnalyticalLights(roughnessB); |
|||
//Visibility & Distribution terms |
|||
float V2 = SmithJointGGXAnisotropic(TdotV, BdotV, NdotV, TdotL, BdotL, NdotL, roughnessT, roughnessB); |
|||
float D2 = D_GGXAnisotropic(TdotH, BdotH, NdotH, roughnessT, roughnessB); |
|||
//Specular term |
|||
float3 specularTerm2 = V2 * D2; //*UNITY_PI; |
|||
# ifdef UNITY_COLORSPACE_GAMMA |
|||
specularTerm2 = sqrt(max(1e-4h, specularTerm2)); |
|||
# endif |
|||
// specularTerm * nl can be NaN on Metal in some cases, use max() to make sure it's a sane value |
|||
specularTerm2 = max(0, specularTerm2 * NdotL); |
|||
#if defined(_SPECULARHIGHLIGHTS_OFF) |
|||
specularTerm2 = 0.0; |
|||
#endif |
|||
float3 Spec2 = specularTerm2 * light.color * FresnelTerm(specColor, LdotH); |
|||
|
|||
float3 Spec = lerp(Spec2, Spec1, Cloth); |
|||
|
|||
//Reduction |
|||
half surfaceReduction; |
|||
# ifdef UNITY_COLORSPACE_GAMMA |
|||
surfaceReduction = 1.0 - 0.28*roughness*perceptualRoughness; // 1-0.28*x^3 as approximation for (1/(x^4+1))^(1/2.2) on the domain [0;1] |
|||
# else |
|||
surfaceReduction = 1.0 / (roughness*roughness + 1.0); // fade \in [0.5;1] |
|||
# endif |
|||
//Final |
|||
//half grazingTerm = saturate(smoothness + (1 - oneMinusReflectivity)); |
|||
half3 color = (diffColor * (gi.diffuse + light.color * diffuseTerm)) |
|||
+ Spec |
|||
+ surfaceReduction * gi.specular * FresnelLerp(specColor, grazingTerm, NdotV); |
|||
return half4(color, 1); |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Eye Shading Function |
|||
|
|||
//float3 EyeShading(FGBufferData GBuffer, float3 LobeRoughness, float3 LobeEnergy, float3 L, float3 V, half3 N) |
|||
float4 EyeShading(float3 diffColor, float3 specColor, float3 viewDir, half3 normal, float smoothness, float oneMinusReflectivity, UnityLight light, UnityIndirect gi) |
|||
{ |
|||
float3 H = normalize(viewDir + light.dir); |
|||
float NdotL = saturate(dot(normal, light.dir)); |
|||
float NdotV = saturate(abs(dot(normal, viewDir)) + 1e-5); |
|||
float NdotH = saturate(dot(normal, H)); |
|||
float VdotH = saturate(dot(viewDir, H)); |
|||
float LdotH = saturate(dot(light.dir, H)); |
|||
|
|||
// Generalized microfacet specular |
|||
float perceptualRoughness = SmoothnessToPerceptualRoughness(smoothness); |
|||
float roughness = PerceptualRoughnessToRoughness(perceptualRoughness); |
|||
|
|||
float D = D_GGX(roughness, NdotH);// *LobeEnergy[1]; |
|||
float V = Vis_SmithJointApprox(roughness, NdotV, NdotL); |
|||
float3 F = F_Schlick(specColor, VdotH); |
|||
|
|||
float3 specularTerm = V * D; //*UNITY_PI; |
|||
# ifdef UNITY_COLORSPACE_GAMMA |
|||
specularTerm = sqrt(max(1e-4h, specularTerm)); |
|||
# endif |
|||
// specularTerm * nl can be NaN on Metal in some cases, use max() to make sure it's a sane value |
|||
specularTerm = max(0, specularTerm * NdotL); |
|||
#if defined(_SPECULARHIGHLIGHTS_OFF) |
|||
specularTerm = 0.0; |
|||
#endif |
|||
half grazingTerm = saturate(smoothness + (1 - oneMinusReflectivity)); |
|||
half surfaceReduction; |
|||
# ifdef UNITY_COLORSPACE_GAMMA |
|||
surfaceReduction = 1.0 - 0.28*roughness*perceptualRoughness; // 1-0.28*x^3 as approximation for (1/(x^4+1))^(1/2.2) on the domain [0;1] |
|||
# else |
|||
surfaceReduction = 1.0 / (roughness*roughness + 1.0); // fade \in [0.5;1] |
|||
# endif |
|||
|
|||
float diffuseTerm = DisneyDiffuse(NdotV, NdotL, LdotH, perceptualRoughness) * NdotL; // TODO - Unreal does not apply diffuse in Shading function |
|||
//Final |
|||
half3 color = (diffColor * (gi.diffuse + light.color * diffuseTerm)) |
|||
+ specularTerm * light.color * FresnelTerm(specColor, LdotH) |
|||
+ surfaceReduction * gi.specular * FresnelLerp(specColor, grazingTerm, NdotV); |
|||
return half4(color, 1); |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Subsurface Shading Function |
|||
|
|||
float3 SubsurfaceShadingSimple(float3 diffColor, float3 normal, float3 viewDir, float3 thickness, UnityLight light) |
|||
{ |
|||
half3 vLTLight = light.dir + normal * 1; |
|||
half fLTDot = pow(saturate(dot(viewDir, -vLTLight)), 3.5) * 1.5; |
|||
half3 fLT = 1 * (fLTDot + 1.2) * (thickness); |
|||
return diffColor * ((light.color * fLT) * 0.4); |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Eye Subsurface Shading Function |
|||
|
|||
//float3 EyeSubsurfaceShading(FGBufferData GBuffer, float3 L, float3 V, half3 N) |
|||
float3 EyeSubsurfaceShading(float3 diffColor, float3 specColor, float3 viewDir, half3 normal, float smoothness, float4 iris, UnityLight light) |
|||
{ |
|||
float2 irisNormal = iris.rg; |
|||
float irisMask = iris.z; |
|||
float irisDistance = iris.w; |
|||
|
|||
float3 H = normalize(viewDir + light.dir); |
|||
float VdotH = saturate(dot(viewDir, H)); |
|||
float NdotV = saturate(abs(dot(normal, viewDir)) + 1e-5); |
|||
float LdotH = saturate(dot(light.dir, H)); |
|||
|
|||
// F_Schlick |
|||
//float F0 = GBuffer.Specular * 0.08; |
|||
//float Fc = Pow5(1 - VoH); |
|||
//float F = Fc + (1 - Fc) * F0; |
|||
float3 fresnel0 = lerp(specColor, diffColor, smoothness); |
|||
float3 F = FresnelSchlick(fresnel0, 1.0, LdotH); |
|||
|
|||
//float IrisDistance = GBuffer.CustomData.w; |
|||
//float IrisMask = GBuffer.CustomData.z; |
|||
|
|||
float3 IrisNormal; |
|||
IrisNormal = OctahedronToUnitVector(irisNormal * 2 - 1); |
|||
|
|||
// Blend in the negative intersection normal to create some concavity |
|||
// Not great as it ties the concavity to the convexity of the cornea surface |
|||
// No good justification for that. On the other hand, if we're just looking to |
|||
// introduce some concavity, this does the job. |
|||
float3 CausticNormal = normalize(lerp(IrisNormal, -normal, irisMask*irisDistance)); |
|||
|
|||
float NdotL = saturate(dot(IrisNormal, light.dir)); |
|||
float Power = lerp(12, 1, NdotL); |
|||
float Caustic = 0.6 + 0.2 * (Power + 1) * pow(saturate(dot(CausticNormal, light.dir)), Power); |
|||
float Iris = NdotL * Caustic; |
|||
|
|||
// http://blog.stevemcauley.com/2011/12/03/energy-conserving-wrapped-diffuse/ |
|||
float Wrap = 0.15; |
|||
float Sclera = saturate((dot(normal, light.dir) + Wrap) / (1 + Wrap) * (1 + Wrap)); |
|||
|
|||
return (1 - F) * lerp(Sclera, Iris, irisMask) * diffColor / UNITY_PI; |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Shading function selectors |
|||
|
|||
//float3 SurfaceShading(/*FGBufferData GBuffer,*/ float3 LobeRoughness, float3 LobeEnergy, float3 L, float3 V, half3 N, uint2 Random) |
|||
float4 SurfaceShading(float3 diffColor, float3 specColor, float oneMinusReflectivity, float smoothness, float3 normal, |
|||
float3x3 worldVectors, float anisotropy, float4 customData, float metallic, float3 viewDir, UnityLight light, UnityIndirect gi) |
|||
{ |
|||
#if defined(SHADINGMODELID_UNLIT) |
|||
{ |
|||
return UnlitShading(diffColor); |
|||
} |
|||
#elif defined(SHADINGMODELID_STANDARD) || defined(SHADINGMODELID_SUBSURFACE) || defined(SHADINGMODELID_SKIN) || defined(SHADINGMODELID_FOLIAGE) |
|||
{ |
|||
return StandardShading(diffColor, specColor, oneMinusReflectivity, smoothness, |
|||
normal, worldVectors, anisotropy, metallic, viewDir, light, gi); |
|||
} |
|||
#elif defined (SHADINGMODELID_CLEARCOAT) |
|||
{ |
|||
return float4(1, 1, 1, 1); //ClearCoatShading(GBuffer, LobeRoughness, LobeEnergy, L, V, N); |
|||
} |
|||
#elif defined (SHADINGMODELID_CLOTH) |
|||
{ |
|||
return ClothShading(diffColor, specColor, customData.rgb, customData.a, oneMinusReflectivity, smoothness, normal, viewDir, light, gi, worldVectors, anisotropy); |
|||
} |
|||
#elif defined (SHADINGMODELID_EYE) |
|||
{ |
|||
return EyeShading(diffColor, specColor, viewDir, normal, smoothness, oneMinusReflectivity, light, gi); //EyeShading(GBuffer, LobeRoughness, LobeEnergy, L, V, N); |
|||
} |
|||
#endif |
|||
return float4(0, 0, 0, 0); |
|||
} |
|||
|
|||
//float3 SubsurfaceShading(/*FGBufferData GBuffer,*/ float3 L, float3 V, half3 N, float Shadow, uint2 Random) |
|||
float3 SubsurfaceShading(float3 diffColor, float3 specColor, float3 normal, float smoothness, float3 viewDir, float4 customData, UnityLight light) |
|||
{ |
|||
#if defined (SHADINGMODELID_SUBSURFACE) |
|||
{ |
|||
return SubsurfaceShadingSimple(diffColor, normal, viewDir, customData.rgb, light); |
|||
} |
|||
#elif defined (SHADINGMODELID_SKIN) |
|||
{ |
|||
return float3(0, 0, 0); //SubsurfaceShadingPreintegratedSkin(GBuffer, L, V, N); |
|||
} |
|||
#elif defined (SHADINGMODELID_FOLIAGE) |
|||
{ |
|||
return float3(0, 0, 0); //SubsurfaceShadingTwoSided(SubsurfaceColor, L, V, N); |
|||
} |
|||
#elif defined (SHADINGMODELID_HAIR) |
|||
{ |
|||
return float3(0, 0, 0); //HairShading(GBuffer, L, V, N, Shadow, 1, 0, Random); |
|||
} |
|||
#elif defined (SHADINGMODELID_EYE) |
|||
{ |
|||
return EyeSubsurfaceShading(diffColor, specColor, viewDir, normal, smoothness, customData, light); //EyeSubsurfaceShading(GBuffer, L, V, N); |
|||
} |
|||
#endif |
|||
return float3(0, 0, 0); |
|||
} |
|||
|
|||
//#endif UNITY_ADVANCED_SHADINGMODELS_INCLUDED |
|||
|
|||
//------------------------------------------------------------------------------------- |
|||
// Lighting Helpers |
|||
|
|||
// Glossy Environment |
|||
half3 Unity_AnisotropicGlossyEnvironment(UNITY_ARGS_TEXCUBE(tex), half4 hdr, Unity_GlossyEnvironmentData glossIn, half anisotropy) //Reference IBL from HD Pipe (Add half3 L input and replace R) |
|||
{ |
|||
half perceptualRoughness = glossIn.roughness /* perceptualRoughness */; |
|||
|
|||
// TODO: CAUTION: remap from Morten may work only with offline convolution, see impact with runtime convolution! |
|||
// For now disabled |
|||
#if 0 |
|||
float m = PerceptualRoughnessToRoughness(perceptualRoughness); // m is the real roughness parameter |
|||
const float fEps = 1.192092896e-07F; // smallest such that 1.0+FLT_EPSILON != 1.0 (+1e-4h is NOT good here. is visibly very wrong) |
|||
float n = (2.0 / max(fEps, m*m)) - 2.0; // remap to spec power. See eq. 21 in --> https://dl.dropboxusercontent.com/u/55891920/papers/mm_brdf.pdf |
|||
|
|||
n /= 4; // remap from n_dot_h formulatino to n_dot_r. See section "Pre-convolved Cube Maps vs Path Tracers" --> https://s3.amazonaws.com/docs.knaldtech.com/knald/1.0.0/lys_power_drops.html |
|||
|
|||
perceptualRoughness = pow(2 / (n + 2), 0.25); // remap back to square root of real roughness (0.25 include both the sqrt root of the conversion and sqrt for going from roughness to perceptualRoughness) |
|||
#else |
|||
// MM: came up with a surprisingly close approximation to what the #if 0'ed out code above does. |
|||
perceptualRoughness = perceptualRoughness*(1.7 - 0.7*perceptualRoughness); |
|||
#endif |
|||
|
|||
|
|||
half mip = perceptualRoughnessToMipmapLevel(perceptualRoughness); |
|||
half3 R = glossIn.reflUVW;// -half3(anisotropy, 0, 0); |
|||
half4 rgbm = UNITY_SAMPLE_TEXCUBE_LOD(tex, R, mip); |
|||
|
|||
return DecodeHDR(rgbm, hdr); |
|||
} |
|||
|
|||
// Indirect Specular |
|||
inline half3 UnityGI_AnisotropicIndirectSpecular(UnityGIInput data, half occlusion, Unity_GlossyEnvironmentData glossIn, half anisotropy, half3x3 worldVectors) |
|||
{ |
|||
half3 specular; |
|||
float3 tangentX = worldVectors[0]; |
|||
float3 tangentY = worldVectors[1]; |
|||
float3 N = worldVectors[2]; |
|||
float3 V = data.worldViewDir; |
|||
float3 iblNormalWS = GetAnisotropicModifiedNormal(tangentY, N, V, anisotropy); |
|||
float3 iblR = reflect(-V, iblNormalWS); |
|||
|
|||
#ifdef UNITY_SPECCUBE_BOX_PROJECTION |
|||
// we will tweak reflUVW in glossIn directly (as we pass it to Unity_GlossyEnvironment twice for probe0 and probe1), so keep original to pass into BoxProjectedCubemapDirection |
|||
|
|||
half3 originalReflUVW = glossIn.reflUVW; |
|||
glossIn.reflUVW = BoxProjectedCubemapDirection(iblR, data.worldPos, data.probePosition[0], data.boxMin[0], data.boxMax[0]); |
|||
#endif |
|||
|
|||
#ifdef _GLOSSYREFLECTIONS_OFF |
|||
specular = unity_IndirectSpecColor.rgb; |
|||
#else |
|||
half3 env0 = Unity_AnisotropicGlossyEnvironment(UNITY_PASS_TEXCUBE(unity_SpecCube0), data.probeHDR[0], glossIn, anisotropy); |
|||
//half3 env0 = Unity_AnisotropicGlossyEnvironment(UNITY_PASS_TEXCUBE(unity_SpecCube0), data.probeHDR[0], glossIn, anisotropy, L); //Reference IBL from HD Pipe |
|||
#ifdef UNITY_SPECCUBE_BLENDING |
|||
const float kBlendFactor = 0.99999; |
|||
float blendLerp = data.boxMin[0].w; |
|||
UNITY_BRANCH |
|||
if (blendLerp < kBlendFactor) |
|||
{ |
|||
#ifdef UNITY_SPECCUBE_BOX_PROJECTION |
|||
glossIn.reflUVW = BoxProjectedCubemapDirection(iblR, data.worldPos, data.probePosition[1], data.boxMin[1], data.boxMax[1]); |
|||
#endif |
|||
half3 env1 = Unity_AnisotropicGlossyEnvironment(UNITY_PASS_TEXCUBE_SAMPLER(unity_SpecCube1, unity_SpecCube0), data.probeHDR[1], glossIn, anisotropy); |
|||
//half3 env1 = Unity_AnisotropicGlossyEnvironment(UNITY_PASS_TEXCUBE_SAMPLER(unity_SpecCube1, unity_SpecCube0), data.probeHDR[1], glossIn, anisotropy, L); //Reference IBL from HD Pipe |
|||
specular = lerp(env1, env0, blendLerp); |
|||
} |
|||
else |
|||
{ |
|||
specular = env0; |
|||
} |
|||
#else |
|||
specular = env0; |
|||
#endif |
|||
#endif |
|||
|
|||
return specular * occlusion;// *weightOverPdf; //Reference IBL from HD Pipe |
|||
//return specular * occlusion * weightOverPdf; //Reference IBL from HD Pipe |
|||
} |
|||
|
|||
// Global Illumination |
|||
inline UnityGI UnityAnisotropicGlobalIllumination(UnityGIInput data, half occlusion, half3 normalWorld, Unity_GlossyEnvironmentData glossIn, half anisotropy, half3x3 worldVectors) |
|||
{ |
|||
UnityGI o_gi = UnityGI_Base(data, occlusion, normalWorld); |
|||
o_gi.indirect.specular = UnityGI_AnisotropicIndirectSpecular(data, occlusion, glossIn, anisotropy, worldVectors); |
|||
return o_gi; |
|||
} |
|||
|
|||
//------------------------------------------------------------------------------------- |
|||
// Lighting Functions |
|||
|
|||
//Surface Description |
|||
struct SurfaceOutputAdvanced |
|||
{ |
|||
fixed3 Albedo; // base (diffuse or specular) color |
|||
fixed3 Normal; // tangent space normal, if written |
|||
half3 Emission; |
|||
half Metallic; // 0=non-metal, 1=metal |
|||
// Smoothness is the user facing name, it should be perceptual smoothness but user should not have to deal with it. |
|||
// Everywhere in the code you meet smoothness it is perceptual smoothness |
|||
half Smoothness; // 0=rough, 1=smooth |
|||
half Occlusion; // occlusion (default 1) |
|||
fixed Alpha; // alpha for transparencies |
|||
half3 Tangent; |
|||
half Anisotropy; |
|||
half4 CustomData; |
|||
float3x3 WorldVectors; |
|||
//half ShadingModel; |
|||
}; |
|||
|
|||
inline half4 LightingAdvanced(SurfaceOutputAdvanced s, half3 viewDir, UnityGI gi) |
|||
{ |
|||
s.Normal = normalize(s.Normal); |
|||
|
|||
half oneMinusReflectivity; |
|||
half3 specColor; |
|||
s.Albedo = DiffuseAndSpecularFromMetallic(s.Albedo, s.Metallic, /*out*/ specColor, /*out*/ oneMinusReflectivity); |
|||
|
|||
// shader relies on pre-multiply alpha-blend (_SrcBlend = One, _DstBlend = OneMinusSrcAlpha) |
|||
// this is necessary to handle transparency in physically correct way - only diffuse component gets affected by alpha |
|||
half outputAlpha; |
|||
s.Albedo = PreMultiplyAlpha(s.Albedo, s.Alpha, oneMinusReflectivity, /*out*/ outputAlpha); |
|||
|
|||
half4 c = SurfaceShading(s.Albedo, specColor, oneMinusReflectivity, s.Smoothness, s.Normal, s.WorldVectors, s.Anisotropy, s.CustomData, s.Metallic, viewDir, gi.light, gi.indirect); |
|||
c.rgb += SubsurfaceShading(s.Albedo, specColor, s.Normal, s.Smoothness, viewDir, s.CustomData, gi.light); |
|||
|
|||
//c.rgb += UNITY_BRDF_GI(s.Albedo, specColor, oneMinusReflectivity, s.Smoothness, s.Normal, viewDir, s.Occlusion, gi); |
|||
c.a = outputAlpha; |
|||
return c; |
|||
} |
|||
|
|||
//This is pointless as always forward? |
|||
inline half4 LightingAdvanced_Deferred(SurfaceOutputAdvanced s, half3 viewDir, UnityGI gi, out half4 outGBuffer0, out half4 outGBuffer1, out half4 outGBuffer2) |
|||
{ |
|||
half oneMinusReflectivity; |
|||
half3 specColor; |
|||
s.Albedo = DiffuseAndSpecularFromMetallic(s.Albedo, s.Metallic, /*out*/ specColor, /*out*/ oneMinusReflectivity); |
|||
|
|||
half4 c = SurfaceShading(s.Albedo, specColor, oneMinusReflectivity, s.Smoothness, s.Normal, s.WorldVectors, s.Anisotropy, s.CustomData, s.Metallic, viewDir, gi.light, gi.indirect); |
|||
c.rgb += SubsurfaceShading(s.Albedo, specColor, s.Normal, s.Smoothness, viewDir, s.CustomData, gi.light); |
|||
|
|||
UnityStandardData data; |
|||
data.diffuseColor = s.Albedo; |
|||
data.occlusion = s.Occlusion; |
|||
data.specularColor = specColor; |
|||
data.smoothness = s.Smoothness; |
|||
data.normalWorld = s.Normal; |
|||
|
|||
UnityStandardDataToGbuffer(data, outGBuffer0, outGBuffer1, outGBuffer2); |
|||
|
|||
half4 emission = half4(s.Emission + c.rgb, 1); |
|||
return emission; |
|||
} |
|||
|
|||
inline void LightingAdvanced_GI(SurfaceOutputAdvanced s, UnityGIInput data, inout UnityGI gi) |
|||
{ |
|||
#if defined(UNITY_PASS_DEFERRED) && UNITY_ENABLE_REFLECTION_BUFFERS |
|||
gi = UnityGlobalIllumination(data, s.Occlusion, s.Normal); |
|||
#else |
|||
Unity_GlossyEnvironmentData g = UnityGlossyEnvironmentSetup(s.Smoothness, data.worldViewDir, s.Normal, lerp(unity_ColorSpaceDielectricSpec.rgb, s.Albedo, s.Metallic)); |
|||
gi = UnityAnisotropicGlobalIllumination(data, s.Occlusion, s.Normal, g, s.Anisotropy, s.WorldVectors); |
|||
#endif |
|||
} |
|||
|
|||
|
|||
///END |
|||
|
|||
|
|||
//#pragma target 5.0 |
|||
#pragma surface surf Advanced vertex:vert |
|||
#pragma glsl |
|||
#pragma debug |
|||
|
|||
inline float4 unity_multiply_float(float4 arg1, float4 arg2) |
|||
{ |
|||
return arg1 * arg2; |
|||
} |
|||
inline float unity_multiply_float(float arg1, float arg2) |
|||
{ |
|||
return arg1 * arg2; |
|||
} |
|||
|
|||
sampler2D Texture_02787904_5090_4666_a7c8_97507f02d498_Uniform; |
|||
float4 Color_c9de3ed1_a353_4808_af95_5a93b2d8ea8d_Uniform; |
|||
sampler2D Texture_71f3d401_2df9_4089_9d97_b67c1150fd8f_Uniform; |
|||
sampler2D Texture_8d2e732f_5ca2_405f_9835_5f727d9e43e2_Uniform; |
|||
float Vector1_1a947b3b_f0d1_47e4_923c_a34e01736c82_Uniform; |
|||
float Vector1_1f0b0b76_65f8_4986_8eb5_9f7ef1373895_Uniform; |
|||
float Vector1_d193efae_d745_43f0_8f92_f814516da592_Uniform; |
|||
|
|||
|
|||
struct Input |
|||
{ |
|||
float4 color : COLOR; |
|||
half4 meshUV0; |
|||
float4 worldTangent; |
|||
float3 worldNormal; |
|||
INTERNAL_DATA |
|||
|
|||
}; |
|||
|
|||
void vert(inout appdata_full v, out Input o) |
|||
{ |
|||
UNITY_INITIALIZE_OUTPUT(Input,o); |
|||
o.meshUV0 = v.texcoord; |
|||
o.worldTangent = float4(UnityObjectToWorldDir(v.tangent.xyz), v.tangent.w); |
|||
|
|||
} |
|||
|
|||
void surf(Input IN, inout SurfaceOutputAdvanced o) |
|||
{ |
|||
half4 uv0 = IN.meshUV0; |
|||
float3 worldSpaceTangent = normalize(IN.worldTangent.xyz); |
|||
float3 worldSpaceNormal = normalize(IN.worldNormal); |
|||
float3 worldSpaceBitangent = cross(worldSpaceNormal, worldSpaceTangent) * IN.worldTangent.w; |
|||
float4 UV_9f41e2a6_ad5a_46ca_b34c_f60ac2c321f9_UV = uv0; |
|||
float4 Texture_02787904_5090_4666_a7c8_97507f02d498 = tex2D(Texture_02787904_5090_4666_a7c8_97507f02d498_Uniform, (UV_9f41e2a6_ad5a_46ca_b34c_f60ac2c321f9_UV.xy)); |
|||
float4 Multiply_5f63430a_31df_4533_b412_89748a592b6c_Output = unity_multiply_float(Texture_02787904_5090_4666_a7c8_97507f02d498, Color_c9de3ed1_a353_4808_af95_5a93b2d8ea8d_Uniform); |
|||
float4 Texture_71f3d401_2df9_4089_9d97_b67c1150fd8f = float4(UnpackNormal(tex2D(Texture_71f3d401_2df9_4089_9d97_b67c1150fd8f_Uniform, uv0.xy)), 0); |
|||
float4 Texture_8d2e732f_5ca2_405f_9835_5f727d9e43e2 = tex2D(Texture_8d2e732f_5ca2_405f_9835_5f727d9e43e2_Uniform, uv0.xy); |
|||
float Multiply_f05d7ce8_6386_4302_bde1_cc1806075819_Output = unity_multiply_float(Texture_8d2e732f_5ca2_405f_9835_5f727d9e43e2.r, Vector1_1a947b3b_f0d1_47e4_923c_a34e01736c82_Uniform); |
|||
float Multiply_f4f05e7f_9461_4ef6_b868_a0a2b57c3a83_Output = unity_multiply_float(Texture_8d2e732f_5ca2_405f_9835_5f727d9e43e2.a, Vector1_1f0b0b76_65f8_4986_8eb5_9f7ef1373895_Uniform); |
|||
o.Albedo = Multiply_5f63430a_31df_4533_b412_89748a592b6c_Output; |
|||
o.Normal = Texture_71f3d401_2df9_4089_9d97_b67c1150fd8f; |
|||
o.Normal += 1e-6; |
|||
o.Metallic = Multiply_f05d7ce8_6386_4302_bde1_cc1806075819_Output; |
|||
o.Smoothness = Multiply_f4f05e7f_9461_4ef6_b868_a0a2b57c3a83_Output; |
|||
o.WorldVectors = float3x3(worldSpaceTangent, worldSpaceBitangent, worldSpaceNormal); |
|||
o.Anisotropy = Vector1_d193efae_d745_43f0_8f92_f814516da592_Uniform; |
|||
|
|||
} |
|||
ENDCG |
|||
} |
|||
|
|||
|
|||
FallBack "Diffuse" |
|||
CustomEditor "LegacyIlluminShaderGUI" |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: f354e64a3ee15af459e4a31439c1953a |
|||
timeCreated: 1495748613 |
|||
licenseType: Pro |
|||
ShaderImporter: |
|||
defaultTextures: [] |
|||
nonModifiableTextures: [] |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
Shader "Character/AnisotropyTransparent" |
|||
{ |
|||
Properties |
|||
{ |
|||
Texture_02787904_5090_4666_a7c8_97507f02d498_Uniform("Albedo", 2D) = "white" {} |
|||
Color_c9de3ed1_a353_4808_af95_5a93b2d8ea8d_Uniform("Color", Color) = (1,1,1,0) |
|||
Texture_71f3d401_2df9_4089_9d97_b67c1150fd8f_Uniform("Normal", 2D) = "bump" {} |
|||
Texture_8d2e732f_5ca2_405f_9835_5f727d9e43e2_Uniform("Metallic Tex", 2D) = "white" {} |
|||
Vector1_1a947b3b_f0d1_47e4_923c_a34e01736c82_Uniform("Metallic", Range(0, 1)) = 1 |
|||
Vector1_1f0b0b76_65f8_4986_8eb5_9f7ef1373895_Uniform("Smoothness", Range(0, 1)) = 1 |
|||
Vector1_d193efae_d745_43f0_8f92_f814516da592_Uniform("Anisotropy", Range(0, 1)) = 0.5 |
|||
|
|||
} |
|||
|
|||
SubShader |
|||
{ |
|||
Tags |
|||
{ |
|||
"RenderType" = "Transparent" |
|||
"Queue" = "Transparent" |
|||
} |
|||
|
|||
Blend SrcAlpha OneMinusSrcAlpha |
|||
|
|||
Cull Off |
|||
|
|||
ZTest LEqual |
|||
|
|||
ZWrite On |
|||
|
|||
|
|||
|
|||
LOD 200 |
|||
|
|||
CGPROGRAM |
|||
#include "UnityCG.cginc" |
|||
//#include "AdvancedBRDF.cginc" |
|||
//#include "AdvancedShading.cginc" |
|||
//#include "AdvancedLighting.cginc" |
|||
|
|||
#define SHADINGMODELID_STANDARD |
|||
|
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Diffuse |
|||
|
|||
// From UE4 - Used for Cloth (Deprecated) |
|||
float3 Diffuse_Lambert(float3 DiffuseColor) |
|||
{ |
|||
return DiffuseColor * (1 / UNITY_PI); |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Fresnel |
|||
|
|||
// From UE4 - Used for Cloth |
|||
// [Schlick 1994, "An Inexpensive BRDF Model for Physically-Based Rendering"] |
|||
float3 F_Schlick(float3 SpecularColor, float VoH) |
|||
{ |
|||
float Fc = Pow5(1 - VoH); // 1 sub, 3 mul |
|||
//return Fc + (1 - Fc) * SpecularColor; // 1 add, 3 mad |
|||
// Anything less than 2% is physically impossible and is instead considered to be shadowing |
|||
return saturate(50.0 * SpecularColor.g) * Fc + (1 - Fc) * SpecularColor; |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Distribution |
|||
|
|||
// From UE4 - USed for Cloth |
|||
// GGX / Trowbridge-Reitz |
|||
// [Walter et al. 2007, "Microfacet models for refraction through rough surfaces"] |
|||
float D_GGX(float roughness, float NdotH) |
|||
{ |
|||
float a = roughness * roughness; |
|||
float a2 = a * a; |
|||
float d = (NdotH * a2 - NdotH) * NdotH + 1; // 2 mad |
|||
return a2 / (UNITY_PI*d*d); // 4 mul, 1 rcp |
|||
} |
|||
|
|||
// Anisotropic GGX |
|||
// Taken from HDRenderPipeline |
|||
float D_GGXAnisotropic(float TdotH, float BdotH, float NdotH, float roughnessT, float roughnessB) |
|||
{ |
|||
float f = TdotH * TdotH / (roughnessT * roughnessT) + BdotH * BdotH / (roughnessB * roughnessB) + NdotH * NdotH; |
|||
return 1.0 / (roughnessT * roughnessB * f * f); |
|||
} |
|||
|
|||
// From UE4 - Used for Cloth |
|||
float D_InvGGX(float roughness, float NdotH) |
|||
{ |
|||
float a = roughness * roughness; |
|||
float a2 = a * a; |
|||
float A = 4; |
|||
float d = (NdotH - a2 * NdotH) * NdotH + a2; |
|||
return 1 / (UNITY_PI * (1 + A*a2)) * (1 + 4 * a2*a2 / (d*d)); //RCP |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Visibility |
|||
|
|||
// From UE4 - Used for Cloth |
|||
// Appoximation of joint Smith term for GGX |
|||
// [Heitz 2014, "Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs"] |
|||
float Vis_SmithJointApprox(float Roughness, float NoV, float NoL) |
|||
{ |
|||
float a = (Roughness*Roughness); |
|||
float Vis_SmithV = NoL * (NoV * (1 - a) + a); |
|||
float Vis_SmithL = NoV * (NoL * (1 - a) + a); |
|||
// Note: will generate NaNs with Roughness = 0. MinRoughness is used to prevent this |
|||
return 0.5 * 1 / (Vis_SmithV + Vis_SmithL); //RCP |
|||
} |
|||
|
|||
// From UE4 - Used for Cloth |
|||
float Vis_Cloth(float NoV, float NoL) |
|||
{ |
|||
return 1 / (4 * (NoL + NoV - NoL * NoV)); //RCP |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// SORT THESE |
|||
|
|||
// Smith Joint GGX Anisotropic Visibility |
|||
// Taken from https://cedec.cesa.or.jp/2015/session/ENG/14698.html |
|||
float SmithJointGGXAnisotropic(float TdotV, float BdotV, float NdotV, float TdotL, float BdotL, float NdotL, float roughnessT, float roughnessB) |
|||
{ |
|||
float aT = roughnessT; |
|||
float aT2 = aT * aT; |
|||
float aB = roughnessB; |
|||
float aB2 = aB * aB; |
|||
|
|||
float lambdaV = NdotL * sqrt(aT2 * TdotV * TdotV + aB2 * BdotV * BdotV + NdotV * NdotV); |
|||
float lambdaL = NdotV * sqrt(aT2 * TdotL * TdotL + aB2 * BdotL * BdotL + NdotL * NdotL); |
|||
|
|||
return 0.5 / (lambdaV + lambdaL); |
|||
} |
|||
|
|||
// Convert Anistropy to roughness |
|||
void ConvertAnisotropyToRoughness(float roughness, float anisotropy, out float roughnessT, out float roughnessB) |
|||
{ |
|||
// (0 <= anisotropy <= 1), therefore (0 <= anisoAspect <= 1) |
|||
// The 0.9 factor limits the aspect ratio to 10:1. |
|||
float anisoAspect = sqrt(1.0 - 0.9 * anisotropy); |
|||
roughnessT = roughness / anisoAspect; // Distort along tangent (rougher) |
|||
roughnessB = roughness * anisoAspect; // Straighten along bitangent (smoother) |
|||
} |
|||
|
|||
// Schlick Fresnel |
|||
float FresnelSchlick(float f0, float f90, float u) |
|||
{ |
|||
float x = 1.0 - u; |
|||
float x5 = x * x; |
|||
x5 = x5 * x5 * x; |
|||
return (f90 - f0) * x5 + f0; // sub mul mul mul sub mad |
|||
} |
|||
|
|||
//Clamp roughness |
|||
float ClampRoughnessForAnalyticalLights(float roughness) |
|||
{ |
|||
return max(roughness, 0.000001); |
|||
} |
|||
|
|||
//Calculate tangent warp for IBL (Reference Version - not used) |
|||
float3 SpecularGGXIBLRef(float3 viewDir, float3 normalDir, float3 tangentDir, float3 bitangentDir, float roughnessT, float roughnessB) |
|||
{ |
|||
return float3(1, 1, 1); |
|||
//Hidden in UnityAnisotropicLighting.cginc |
|||
} |
|||
|
|||
// Sample Anisotropic Direction for IBL (Reference Version - not used) |
|||
void SampleAnisoGGXDir(float2 u, float3 viewDir, float3 normalDir, float3 tangent, float3 bitangent, float roughnessT, float roughnessB, out float3 halfDir, out float3 lightDir) |
|||
{ |
|||
// AnisoGGX NDF sampling |
|||
halfDir = sqrt(u.x / (1.0 - u.x)) * (roughnessT * cos((UNITY_PI * 2) * u.y) * tangent + roughnessB * sin((UNITY_PI * 2) * u.y) * bitangent) + normalDir; |
|||
halfDir = normalize(halfDir); |
|||
|
|||
// Convert sample from half angle to incident angle |
|||
lightDir = 2.0 * saturate(dot(viewDir, halfDir)) * halfDir - viewDir; |
|||
} |
|||
|
|||
// Ref: Donald Revie - Implementing Fur Using Deferred Shading (GPU Pro 2) |
|||
// The grain direction (e.g. hair or brush direction) is assumed to be orthogonal to the normal. |
|||
// The returned normal is NOT normalized. |
|||
float3 ComputeGrainNormal(float3 grainDir, float3 V) |
|||
{ |
|||
float3 B = cross(-V, grainDir); |
|||
return cross(B, grainDir); |
|||
} |
|||
|
|||
//Modify Normal for Anisotropic IBL (Realtime version) |
|||
// Fake anisotropic by distorting the normal. |
|||
// The grain direction (e.g. hair or brush direction) is assumed to be orthogonal to N. |
|||
// Anisotropic ratio (0->no isotropic; 1->full anisotropy in tangent direction) |
|||
float3 GetAnisotropicModifiedNormal(float3 grainDir, float3 N, float3 V, float anisotropy) |
|||
{ |
|||
float3 grainNormal = ComputeGrainNormal(grainDir, V); |
|||
// TODO: test whether normalizing 'grainNormal' is worth it. |
|||
return normalize(lerp(N, grainNormal, anisotropy)); |
|||
} |
|||
|
|||
/// REGION END - ANISOTROPY |
|||
|
|||
/// REGION START - SUBSURFACE SCATTERING |
|||
|
|||
half Fresnel(half3 H, half3 V, half F0) |
|||
{ |
|||
half base = 1.0 - dot(V, H); |
|||
half exponential = pow(base, 5.0); |
|||
return exponential + F0 * (1.0 - exponential); |
|||
} |
|||
/* |
|||
inline half3 KelemenSzirmayKalosSpecular(half3 normal, half3 lightDir, half3 viewDir, float roughness, float rho_s) |
|||
{ |
|||
half3 result = half3(0, 0, 0); |
|||
half NdotL = dot(normal, lightDir); |
|||
if (NdotL > 0.0) |
|||
{ |
|||
half3 h = lightDir + viewDir; |
|||
half3 H = normalize(h); |
|||
half NdotH = dot(normal, H); |
|||
half PH = pow(2.0 * tex2D(_BeckmannPrecomputedTex, half2(NdotH, roughness)).r, 10.0); |
|||
half F = Fresnel(H, viewDir, 0.028); |
|||
half frSpec = max(PH * F / dot(h, h), 0); |
|||
half term = NdotL * rho_s * frSpec; |
|||
result = half3(term, term, term); |
|||
} |
|||
return result; |
|||
}*/ |
|||
/* |
|||
half3 SkinDiffuse(float curv, float3 NdotL) |
|||
{ |
|||
float3 lookup = NdotL * 0.5 + 0.5; |
|||
float3 diffuse; |
|||
|
|||
diffuse.r = tex2D(_DiffusionProfileTexture, float2(lookup.r, curv)).r; |
|||
diffuse.g = tex2D(_DiffusionProfileTexture, float2(lookup.g, curv)).g; |
|||
diffuse.b = tex2D(_DiffusionProfileTexture, float2(lookup.b, curv)).b; |
|||
|
|||
return diffuse; |
|||
}*/ |
|||
|
|||
/// REGION END - SUBSURFACE SCATTERING |
|||
|
|||
// Upgrade NOTE: replaced 'defined SHADINGMODELID_CLEARCOAT' with 'defined (SHADINGMODELID_CLEARCOAT)' |
|||
// Upgrade NOTE: replaced 'defined SHADINGMODELID_CLOTH' with 'defined (SHADINGMODELID_CLOTH)' |
|||
// Upgrade NOTE: replaced 'defined SHADINGMODELID_EYE' with 'defined (SHADINGMODELID_EYE)' |
|||
// Upgrade NOTE: replaced 'defined SHADINGMODELID_FOLIAGE' with 'defined (SHADINGMODELID_FOLIAGE)' |
|||
// Upgrade NOTE: replaced 'defined SHADINGMODELID_HAIR' with 'defined (SHADINGMODELID_HAIR)' |
|||
// Upgrade NOTE: replaced 'defined SHADINGMODELID_SKIN' with 'defined (SHADINGMODELID_SKIN)' |
|||
// Upgrade NOTE: replaced 'defined SHADINGMODELID_SUBSURFACE' with 'defined (SHADINGMODELID_SUBSURFACE)' |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Shading models |
|||
|
|||
//#pragma multi_compile SHADINGMODELID_UNLIT SHADINGMODELID_STANDARD SHADINGMODELID_SUBSURFACE SHADINGMODELID_SKIN SHADINGMODELID_FOLIAGE SHADINGMODELID_CLEARCOAT SHADINGMODELID_CLOTH SHADINGMODELID_EYE |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Input |
|||
|
|||
half _ShadingModel; |
|||
|
|||
sampler2D _AnisotropyMap; |
|||
half _Anisotropy; |
|||
sampler2D _TangentMap; |
|||
|
|||
half4 _TranslucentColor; |
|||
sampler2D _TranslucencyMap; |
|||
|
|||
sampler2D _FuzzTex; |
|||
half3 _FuzzColor; |
|||
half _Cloth; |
|||
|
|||
sampler2D _IrisNormal; |
|||
sampler2D _IrisMask; |
|||
half _IrisDistance; |
|||
|
|||
half _TDistortion; |
|||
half _TScale; |
|||
half _TAmbient; |
|||
half _TPower; |
|||
half _TAttenuation; |
|||
half _TransmissionOverallStrength; |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Maths helpers |
|||
|
|||
// Octahedron Normal Vectors |
|||
// [Cigolle 2014, "A Survey of Efficient Representations for Independent Unit Vectors"] |
|||
// Mean Max |
|||
// oct 8:8 0.33709 0.94424 |
|||
// snorm 8:8:8 0.17015 0.38588 |
|||
// oct 10:10 0.08380 0.23467 |
|||
// snorm 10:10:10 0.04228 0.09598 |
|||
// oct 12:12 0.02091 0.05874 |
|||
|
|||
float2 UnitVectorToOctahedron(float3 N) |
|||
{ |
|||
N.xy /= dot(float3(1,1,1), abs(N)); |
|||
if (N.z <= 0) |
|||
{ |
|||
N.xy = (1 - abs(N.yx)) * (N.xy >= 0 ? float2(1, 1) : float2(-1, -1)); |
|||
} |
|||
return N.xy; |
|||
} |
|||
|
|||
float3 OctahedronToUnitVector(float2 Oct) |
|||
{ |
|||
float3 N = float3(Oct, 1 - dot(float2(1,1), abs(Oct))); |
|||
if (N.z < 0) |
|||
{ |
|||
N.xy = (1 - abs(N.yx)) * (N.xy >= 0 ? float2(1, 1) : float2(-1, -1)); |
|||
} |
|||
return float3(1, 1, 1); |
|||
return normalize(N); |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Surface helpers |
|||
|
|||
half Anisotropy(float2 uv) |
|||
{ |
|||
return tex2D(_AnisotropyMap, uv) * _Anisotropy; |
|||
} |
|||
|
|||
half3 Fuzz(float2 uv) |
|||
{ |
|||
return tex2D(_FuzzTex, uv) * _FuzzColor; |
|||
} |
|||
|
|||
half Cloth() |
|||
{ |
|||
return _Cloth; |
|||
} |
|||
|
|||
half4 Iris(float2 uv) |
|||
{ |
|||
float2 n = UnitVectorToOctahedron(normalize(UnpackNormal(tex2D(_IrisNormal, uv)).rgb)) * 0.5 + 0.5; |
|||
float m = saturate(tex2D(_IrisMask, uv).r); // Iris Mask |
|||
float d = saturate(_IrisDistance); // Iris Distance |
|||
return float4(n.x, n.y, m, d); |
|||
} |
|||
|
|||
half3 Translucency(float2 uv) |
|||
{ |
|||
return tex2D(_TranslucencyMap, uv).rgb * _TranslucentColor.rgb; |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Unlit Shading Function |
|||
|
|||
float4 UnlitShading(float3 diffColor) |
|||
{ |
|||
return half4(diffColor, 1); |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Standard Shading Function |
|||
|
|||
float4 StandardShading(float3 diffColor, float3 specColor, float oneMinusReflectivity, float smoothness, float3 normal, float3x3 worldVectors, |
|||
float anisotropy, float metallic, float3 viewDir, UnityLight light, UnityIndirect gi) |
|||
{ |
|||
//Unpack world vectors |
|||
float3 tangent = worldVectors[0]; |
|||
float3 bitangent = worldVectors[1]; |
|||
//Normal shift |
|||
float shiftAmount = dot(normal, viewDir); |
|||
normal = shiftAmount < 0.0f ? normal + viewDir * (-shiftAmount + 1e-5f) : normal; |
|||
//Regular vectors |
|||
float NdotL = saturate(dot(normal, light.dir)); //sat? |
|||
float NdotV = abs(dot(normal, viewDir)); //abs? |
|||
float LdotV = dot(light.dir, viewDir); |
|||
float3 H = Unity_SafeNormalize(light.dir + viewDir); |
|||
float invLenLV = rsqrt(abs(2 + 2 * normalize(LdotV))); |
|||
//float invLenLV = rsqrt(abs(2 + 2 * LdotV)); |
|||
//float NdotH = (NdotL + normalize(NdotV)) * invLenLV; |
|||
float NdotH = saturate(dot(normal, H)); |
|||
//float NdotH = saturate((NdotL + normalize(NdotV)) * invLenLV); |
|||
//float H = (light.dir + viewDir) * invLenLV; |
|||
float LdotH = saturate(dot(light.dir, H)); |
|||
//Tangent vectors |
|||
float TdotH = dot(tangent, H); |
|||
float TdotL = dot(tangent, light.dir); |
|||
float BdotH = dot(bitangent, H); |
|||
float BdotL = dot(bitangent, light.dir); |
|||
float TdotV = dot(viewDir, tangent); |
|||
float BdotV = dot(viewDir, bitangent); |
|||
//Fresnels |
|||
half grazingTerm = saturate(smoothness + (1 - oneMinusReflectivity)); |
|||
float3 F = FresnelLerp(specColor, grazingTerm, NdotV); //Original Schlick - Replace from SRP? |
|||
//float3 fresnel0 = lerp(specColor, diffColor, metallic); |
|||
//float3 F = FresnelSchlick(fresnel0, 1.0, LdotH); |
|||
//Calculate roughness |
|||
float roughnessT; |
|||
float roughnessB; |
|||
float perceptualRoughness = SmoothnessToPerceptualRoughness(smoothness); |
|||
float roughness = PerceptualRoughnessToRoughness(perceptualRoughness); |
|||
ConvertAnisotropyToRoughness(roughness, anisotropy, roughnessT, roughnessB); |
|||
//Clamp roughness |
|||
//roughness = ClampRoughnessForAnalyticalLights(roughness); |
|||
roughnessT = ClampRoughnessForAnalyticalLights(roughnessT); |
|||
roughnessB = ClampRoughnessForAnalyticalLights(roughnessB); |
|||
//Visibility & Distribution terms |
|||
float V = SmithJointGGXAnisotropic(TdotV, BdotV, NdotV, TdotL, BdotL, NdotL, roughnessT, roughnessB); |
|||
float D = D_GGXAnisotropic(TdotH, BdotH, NdotH, roughnessT, roughnessB); |
|||
//Specular term |
|||
float3 specularTerm = V * D; //*UNITY_PI; |
|||
# ifdef UNITY_COLORSPACE_GAMMA |
|||
specularTerm = sqrt(max(1e-4h, specularTerm)); |
|||
# endif |
|||
// specularTerm * nl can be NaN on Metal in some cases, use max() to make sure it's a sane value |
|||
specularTerm = max(0, specularTerm * NdotL); |
|||
#if defined(_SPECULARHIGHLIGHTS_OFF) |
|||
specularTerm = 0.0; |
|||
#endif |
|||
//Diffuse term |
|||
float diffuseTerm = DisneyDiffuse(NdotV, NdotL, LdotH, perceptualRoughness) * NdotL;// - Need this NdotL multiply? |
|||
//Reduction |
|||
half surfaceReduction; |
|||
# ifdef UNITY_COLORSPACE_GAMMA |
|||
surfaceReduction = 1.0 - 0.28*roughness*perceptualRoughness; // 1-0.28*x^3 as approximation for (1/(x^4+1))^(1/2.2) on the domain [0;1] |
|||
# else |
|||
surfaceReduction = 1.0 / (roughness*roughness + 1.0); // fade \in [0.5;1] |
|||
# endif |
|||
//Final |
|||
half3 color = (diffColor * (gi.diffuse + light.color * diffuseTerm)) |
|||
+ specularTerm * light.color * FresnelTerm(specColor, LdotH) |
|||
+ surfaceReduction * gi.specular * FresnelLerp(specColor, grazingTerm, NdotV); |
|||
return half4(color, 1); |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Cloth Shading Function |
|||
|
|||
//float3 ClothShading(FGBufferData GBuffer, float3 LobeRoughness, float3 LobeEnergy, float3 L, float3 V, half3 N) |
|||
float4 ClothShading(float3 diffColor, float3 specColor, float3 fuzzColor, float cloth, float oneMinusReflectivity, float smoothness, float3 normal, float3 viewDir, UnityLight light, UnityIndirect gi, float3x3 worldVectors, float anisotropy) |
|||
{ |
|||
const float3 FuzzColor = saturate(fuzzColor); |
|||
const float Cloth = saturate(cloth); |
|||
|
|||
//Regular vectors |
|||
float NdotL = saturate(dot(normal, light.dir)); //sat? |
|||
float NdotV = abs(dot(normal, viewDir)); //abs? |
|||
float LdotV = dot(light.dir, viewDir); |
|||
//float invLenLV = rsqrt(abs(2 + 2 * normalize(LdotV))); |
|||
////float invLenLV = rsqrt(abs(2 + 2 * LdotV)); |
|||
//float NdotH = (NdotL + normalize(NdotV)) * invLenLV; |
|||
//float NdotH = saturate((NdotL + normalize(NdotV)) * invLenLV); |
|||
float3 H = Unity_SafeNormalize(light.dir + viewDir); |
|||
//float H = (light.dir + viewDir) * invLenLV; |
|||
float LdotH = saturate(dot(light.dir, H)); |
|||
|
|||
//float3 H = normalize(viewDir + light.dir); |
|||
//float NdotL = saturate(dot(normal, light.dir)); |
|||
//float NdotV = saturate(abs(dot(normal, viewDir)) + 1e-5); |
|||
float NdotH = saturate(dot(normal, H)); |
|||
float VdotH = saturate(dot(viewDir, H)); |
|||
//float LdotH = saturate(dot(light.dir, H)); |
|||
|
|||
half grazingTerm = saturate(smoothness + (1 - oneMinusReflectivity)); |
|||
|
|||
// Diffuse |
|||
float perceptualRoughness = SmoothnessToPerceptualRoughness(smoothness); |
|||
float roughness = PerceptualRoughnessToRoughness(perceptualRoughness); |
|||
float diffuseTerm = DisneyDiffuse(NdotV, NdotL, LdotH, perceptualRoughness) * NdotL;// - Need this NdotL multiply? |
|||
|
|||
// Cloth - Asperity Scattering - Inverse Beckmann Layer |
|||
float3 F1 = FresnelTerm(fuzzColor, LdotH);// FresnelLerp(fuzzColor, grazingTerm, NdotV);// FresnelTerm(FuzzColor, LdotH);// F_Schlick(FuzzColor, VdotH); |
|||
float D1 = D_InvGGX(roughness, NdotH); |
|||
float V1 = Vis_Cloth(NdotV, NdotL); |
|||
//Specular term |
|||
float3 specularTerm1 = V1 * D1; //*UNITY_PI; |
|||
# ifdef UNITY_COLORSPACE_GAMMA |
|||
specularTerm1 = sqrt(max(1e-4h, specularTerm1)); |
|||
# endif |
|||
// specularTerm * nl can be NaN on Metal in some cases, use max() to make sure it's a sane value |
|||
// specularTerm1 = max(0, specularTerm1 * NdotL); |
|||
#if defined(_SPECULARHIGHLIGHTS_OFF) |
|||
specularTerm1 = 0.0; |
|||
#endif |
|||
float3 Spec1 = specularTerm1 * light.color * FresnelTerm(fuzzColor, LdotH); |
|||
|
|||
// Generalized microfacet specular |
|||
/*float3 F2 = F_Schlick(specColor, VdotH); |
|||
float D2 = D_GGX(roughness, NdotH); |
|||
float V2 = Vis_SmithJointApprox(roughness, NdotV, NdotL); |
|||
float3 Spec2 = D2 * V2 * F2 * light.color;*/ |
|||
|
|||
//Unpack world vectors |
|||
float3 tangent = worldVectors[0]; |
|||
float3 bitangent = worldVectors[1]; |
|||
//Tangent vectors |
|||
float TdotH = dot(tangent, H); |
|||
float TdotL = dot(tangent, light.dir); |
|||
float BdotH = dot(bitangent, H); |
|||
float BdotL = dot(bitangent, light.dir); |
|||
float TdotV = dot(viewDir, tangent); |
|||
float BdotV = dot(viewDir, bitangent); |
|||
//Fresnels |
|||
float3 F2 = FresnelLerp(specColor, grazingTerm, NdotV);// FresnelTerm(specColor, LdotH);// FresnelLerp(specColor, grazingTerm, NdotV); //Original Schlick - Replace from SRP? |
|||
float roughnessT; |
|||
float roughnessB; |
|||
//float perceptualRoughness = SmoothnessToPerceptualRoughness(smoothness); |
|||
//float roughness = PerceptualRoughnessToRoughness(perceptualRoughness); |
|||
ConvertAnisotropyToRoughness(roughness, anisotropy, roughnessT, roughnessB); |
|||
//Clamp roughness |
|||
//roughness = ClampRoughnessForAnalyticalLights(roughness); |
|||
roughnessT = ClampRoughnessForAnalyticalLights(roughnessT); |
|||
roughnessB = ClampRoughnessForAnalyticalLights(roughnessB); |
|||
//Visibility & Distribution terms |
|||
float V2 = SmithJointGGXAnisotropic(TdotV, BdotV, NdotV, TdotL, BdotL, NdotL, roughnessT, roughnessB); |
|||
float D2 = D_GGXAnisotropic(TdotH, BdotH, NdotH, roughnessT, roughnessB); |
|||
//Specular term |
|||
float3 specularTerm2 = V2 * D2; //*UNITY_PI; |
|||
# ifdef UNITY_COLORSPACE_GAMMA |
|||
specularTerm2 = sqrt(max(1e-4h, specularTerm2)); |
|||
# endif |
|||
// specularTerm * nl can be NaN on Metal in some cases, use max() to make sure it's a sane value |
|||
specularTerm2 = max(0, specularTerm2 * NdotL); |
|||
#if defined(_SPECULARHIGHLIGHTS_OFF) |
|||
specularTerm2 = 0.0; |
|||
#endif |
|||
float3 Spec2 = specularTerm2 * light.color * FresnelTerm(specColor, LdotH); |
|||
|
|||
float3 Spec = lerp(Spec2, Spec1, Cloth); |
|||
|
|||
//Reduction |
|||
half surfaceReduction; |
|||
# ifdef UNITY_COLORSPACE_GAMMA |
|||
surfaceReduction = 1.0 - 0.28*roughness*perceptualRoughness; // 1-0.28*x^3 as approximation for (1/(x^4+1))^(1/2.2) on the domain [0;1] |
|||
# else |
|||
surfaceReduction = 1.0 / (roughness*roughness + 1.0); // fade \in [0.5;1] |
|||
# endif |
|||
//Final |
|||
//half grazingTerm = saturate(smoothness + (1 - oneMinusReflectivity)); |
|||
half3 color = (diffColor * (gi.diffuse + light.color * diffuseTerm)) |
|||
+ Spec |
|||
+ surfaceReduction * gi.specular * FresnelLerp(specColor, grazingTerm, NdotV); |
|||
return half4(color, 1); |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Eye Shading Function |
|||
|
|||
//float3 EyeShading(FGBufferData GBuffer, float3 LobeRoughness, float3 LobeEnergy, float3 L, float3 V, half3 N) |
|||
float4 EyeShading(float3 diffColor, float3 specColor, float3 viewDir, half3 normal, float smoothness, float oneMinusReflectivity, UnityLight light, UnityIndirect gi) |
|||
{ |
|||
float3 H = normalize(viewDir + light.dir); |
|||
float NdotL = saturate(dot(normal, light.dir)); |
|||
float NdotV = saturate(abs(dot(normal, viewDir)) + 1e-5); |
|||
float NdotH = saturate(dot(normal, H)); |
|||
float VdotH = saturate(dot(viewDir, H)); |
|||
float LdotH = saturate(dot(light.dir, H)); |
|||
|
|||
// Generalized microfacet specular |
|||
float perceptualRoughness = SmoothnessToPerceptualRoughness(smoothness); |
|||
float roughness = PerceptualRoughnessToRoughness(perceptualRoughness); |
|||
|
|||
float D = D_GGX(roughness, NdotH);// *LobeEnergy[1]; |
|||
float V = Vis_SmithJointApprox(roughness, NdotV, NdotL); |
|||
float3 F = F_Schlick(specColor, VdotH); |
|||
|
|||
float3 specularTerm = V * D; //*UNITY_PI; |
|||
# ifdef UNITY_COLORSPACE_GAMMA |
|||
specularTerm = sqrt(max(1e-4h, specularTerm)); |
|||
# endif |
|||
// specularTerm * nl can be NaN on Metal in some cases, use max() to make sure it's a sane value |
|||
specularTerm = max(0, specularTerm * NdotL); |
|||
#if defined(_SPECULARHIGHLIGHTS_OFF) |
|||
specularTerm = 0.0; |
|||
#endif |
|||
half grazingTerm = saturate(smoothness + (1 - oneMinusReflectivity)); |
|||
half surfaceReduction; |
|||
# ifdef UNITY_COLORSPACE_GAMMA |
|||
surfaceReduction = 1.0 - 0.28*roughness*perceptualRoughness; // 1-0.28*x^3 as approximation for (1/(x^4+1))^(1/2.2) on the domain [0;1] |
|||
# else |
|||
surfaceReduction = 1.0 / (roughness*roughness + 1.0); // fade \in [0.5;1] |
|||
# endif |
|||
|
|||
float diffuseTerm = DisneyDiffuse(NdotV, NdotL, LdotH, perceptualRoughness) * NdotL; // TODO - Unreal does not apply diffuse in Shading function |
|||
//Final |
|||
half3 color = (diffColor * (gi.diffuse + light.color * diffuseTerm)) |
|||
+ specularTerm * light.color * FresnelTerm(specColor, LdotH) |
|||
+ surfaceReduction * gi.specular * FresnelLerp(specColor, grazingTerm, NdotV); |
|||
return half4(color, 1); |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Subsurface Shading Function |
|||
|
|||
float3 SubsurfaceShadingSimple(float3 diffColor, float3 normal, float3 viewDir, float3 thickness, UnityLight light) |
|||
{ |
|||
half3 vLTLight = light.dir + normal * 1; |
|||
half fLTDot = pow(saturate(dot(viewDir, -vLTLight)), 3.5) * 1.5; |
|||
half3 fLT = 1 * (fLTDot + 1.2) * (thickness); |
|||
return diffColor * ((light.color * fLT) * 0.4); |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Eye Subsurface Shading Function |
|||
|
|||
//float3 EyeSubsurfaceShading(FGBufferData GBuffer, float3 L, float3 V, half3 N) |
|||
float3 EyeSubsurfaceShading(float3 diffColor, float3 specColor, float3 viewDir, half3 normal, float smoothness, float4 iris, UnityLight light) |
|||
{ |
|||
float2 irisNormal = iris.rg; |
|||
float irisMask = iris.z; |
|||
float irisDistance = iris.w; |
|||
|
|||
float3 H = normalize(viewDir + light.dir); |
|||
float VdotH = saturate(dot(viewDir, H)); |
|||
float NdotV = saturate(abs(dot(normal, viewDir)) + 1e-5); |
|||
float LdotH = saturate(dot(light.dir, H)); |
|||
|
|||
// F_Schlick |
|||
//float F0 = GBuffer.Specular * 0.08; |
|||
//float Fc = Pow5(1 - VoH); |
|||
//float F = Fc + (1 - Fc) * F0; |
|||
float3 fresnel0 = lerp(specColor, diffColor, smoothness); |
|||
float3 F = FresnelSchlick(fresnel0, 1.0, LdotH); |
|||
|
|||
//float IrisDistance = GBuffer.CustomData.w; |
|||
//float IrisMask = GBuffer.CustomData.z; |
|||
|
|||
float3 IrisNormal; |
|||
IrisNormal = OctahedronToUnitVector(irisNormal * 2 - 1); |
|||
|
|||
// Blend in the negative intersection normal to create some concavity |
|||
// Not great as it ties the concavity to the convexity of the cornea surface |
|||
// No good justification for that. On the other hand, if we're just looking to |
|||
// introduce some concavity, this does the job. |
|||
float3 CausticNormal = normalize(lerp(IrisNormal, -normal, irisMask*irisDistance)); |
|||
|
|||
float NdotL = saturate(dot(IrisNormal, light.dir)); |
|||
float Power = lerp(12, 1, NdotL); |
|||
float Caustic = 0.6 + 0.2 * (Power + 1) * pow(saturate(dot(CausticNormal, light.dir)), Power); |
|||
float Iris = NdotL * Caustic; |
|||
|
|||
// http://blog.stevemcauley.com/2011/12/03/energy-conserving-wrapped-diffuse/ |
|||
float Wrap = 0.15; |
|||
float Sclera = saturate((dot(normal, light.dir) + Wrap) / (1 + Wrap) * (1 + Wrap)); |
|||
|
|||
return (1 - F) * lerp(Sclera, Iris, irisMask) * diffColor / UNITY_PI; |
|||
} |
|||
|
|||
// ------------------------------------------------------------------ |
|||
// Shading function selectors |
|||
|
|||
//float3 SurfaceShading(/*FGBufferData GBuffer,*/ float3 LobeRoughness, float3 LobeEnergy, float3 L, float3 V, half3 N, uint2 Random) |
|||
float4 SurfaceShading(float3 diffColor, float3 specColor, float oneMinusReflectivity, float smoothness, float3 normal, |
|||
float3x3 worldVectors, float anisotropy, float4 customData, float metallic, float3 viewDir, UnityLight light, UnityIndirect gi) |
|||
{ |
|||
#if defined(SHADINGMODELID_UNLIT) |
|||
{ |
|||
return UnlitShading(diffColor); |
|||
} |
|||
#elif defined(SHADINGMODELID_STANDARD) || defined(SHADINGMODELID_SUBSURFACE) || defined(SHADINGMODELID_SKIN) || defined(SHADINGMODELID_FOLIAGE) |
|||
{ |
|||
return StandardShading(diffColor, specColor, oneMinusReflectivity, smoothness, |
|||
normal, worldVectors, anisotropy, metallic, viewDir, light, gi); |
|||
} |
|||
#elif defined (SHADINGMODELID_CLEARCOAT) |
|||
{ |
|||
return float4(1, 1, 1, 1); //ClearCoatShading(GBuffer, LobeRoughness, LobeEnergy, L, V, N); |
|||
} |
|||
#elif defined (SHADINGMODELID_CLOTH) |
|||
{ |
|||
return ClothShading(diffColor, specColor, customData.rgb, customData.a, oneMinusReflectivity, smoothness, normal, viewDir, light, gi, worldVectors, anisotropy); |
|||
} |
|||
#elif defined (SHADINGMODELID_EYE) |
|||
{ |
|||
return EyeShading(diffColor, specColor, viewDir, normal, smoothness, oneMinusReflectivity, light, gi); //EyeShading(GBuffer, LobeRoughness, LobeEnergy, L, V, N); |
|||
} |
|||
#endif |
|||
return float4(0, 0, 0, 0); |
|||
} |
|||
|
|||
//float3 SubsurfaceShading(/*FGBufferData GBuffer,*/ float3 L, float3 V, half3 N, float Shadow, uint2 Random) |
|||
float3 SubsurfaceShading(float3 diffColor, float3 specColor, float3 normal, float smoothness, float3 viewDir, float4 customData, UnityLight light) |
|||
{ |
|||
#if defined (SHADINGMODELID_SUBSURFACE) |
|||
{ |
|||
return SubsurfaceShadingSimple(diffColor, normal, viewDir, customData.rgb, light); |
|||
} |
|||
#elif defined (SHADINGMODELID_SKIN) |
|||
{ |
|||
return float3(0, 0, 0); //SubsurfaceShadingPreintegratedSkin(GBuffer, L, V, N); |
|||
} |
|||
#elif defined (SHADINGMODELID_FOLIAGE) |
|||
{ |
|||
return float3(0, 0, 0); //SubsurfaceShadingTwoSided(SubsurfaceColor, L, V, N); |
|||
} |
|||
#elif defined (SHADINGMODELID_HAIR) |
|||
{ |
|||
return float3(0, 0, 0); //HairShading(GBuffer, L, V, N, Shadow, 1, 0, Random); |
|||
} |
|||
#elif defined (SHADINGMODELID_EYE) |
|||
{ |
|||
return EyeSubsurfaceShading(diffColor, specColor, viewDir, normal, smoothness, customData, light); //EyeSubsurfaceShading(GBuffer, L, V, N); |
|||
} |
|||
#endif |
|||
return float3(0, 0, 0); |
|||
} |
|||
|
|||
//#endif UNITY_ADVANCED_SHADINGMODELS_INCLUDED |
|||
|
|||
//------------------------------------------------------------------------------------- |
|||
// Lighting Helpers |
|||
|
|||
// Glossy Environment |
|||
half3 Unity_AnisotropicGlossyEnvironment(UNITY_ARGS_TEXCUBE(tex), half4 hdr, Unity_GlossyEnvironmentData glossIn, half anisotropy) //Reference IBL from HD Pipe (Add half3 L input and replace R) |
|||
{ |
|||
half perceptualRoughness = glossIn.roughness /* perceptualRoughness */; |
|||
|
|||
// TODO: CAUTION: remap from Morten may work only with offline convolution, see impact with runtime convolution! |
|||
// For now disabled |
|||
#if 0 |
|||
float m = PerceptualRoughnessToRoughness(perceptualRoughness); // m is the real roughness parameter |
|||
const float fEps = 1.192092896e-07F; // smallest such that 1.0+FLT_EPSILON != 1.0 (+1e-4h is NOT good here. is visibly very wrong) |
|||
float n = (2.0 / max(fEps, m*m)) - 2.0; // remap to spec power. See eq. 21 in --> https://dl.dropboxusercontent.com/u/55891920/papers/mm_brdf.pdf |
|||
|
|||
n /= 4; // remap from n_dot_h formulatino to n_dot_r. See section "Pre-convolved Cube Maps vs Path Tracers" --> https://s3.amazonaws.com/docs.knaldtech.com/knald/1.0.0/lys_power_drops.html |
|||
|
|||
perceptualRoughness = pow(2 / (n + 2), 0.25); // remap back to square root of real roughness (0.25 include both the sqrt root of the conversion and sqrt for going from roughness to perceptualRoughness) |
|||
#else |
|||
// MM: came up with a surprisingly close approximation to what the #if 0'ed out code above does. |
|||
perceptualRoughness = perceptualRoughness*(1.7 - 0.7*perceptualRoughness); |
|||
#endif |
|||
|
|||
|
|||
half mip = perceptualRoughnessToMipmapLevel(perceptualRoughness); |
|||
half3 R = glossIn.reflUVW;// -half3(anisotropy, 0, 0); |
|||
half4 rgbm = UNITY_SAMPLE_TEXCUBE_LOD(tex, R, mip); |
|||
|
|||
return DecodeHDR(rgbm, hdr); |
|||
} |
|||
|
|||
// Indirect Specular |
|||
inline half3 UnityGI_AnisotropicIndirectSpecular(UnityGIInput data, half occlusion, Unity_GlossyEnvironmentData glossIn, half anisotropy, half3x3 worldVectors) |
|||
{ |
|||
half3 specular; |
|||
float3 tangentX = worldVectors[0]; |
|||
float3 tangentY = worldVectors[1]; |
|||
float3 N = worldVectors[2]; |
|||
float3 V = data.worldViewDir; |
|||
float3 iblNormalWS = GetAnisotropicModifiedNormal(tangentY, N, V, anisotropy); |
|||
float3 iblR = reflect(-V, iblNormalWS); |
|||
|
|||
#ifdef UNITY_SPECCUBE_BOX_PROJECTION |
|||
// we will tweak reflUVW in glossIn directly (as we pass it to Unity_GlossyEnvironment twice for probe0 and probe1), so keep original to pass into BoxProjectedCubemapDirection |
|||
|
|||
half3 originalReflUVW = glossIn.reflUVW; |
|||
glossIn.reflUVW = BoxProjectedCubemapDirection(iblR, data.worldPos, data.probePosition[0], data.boxMin[0], data.boxMax[0]); |
|||
#endif |
|||
|
|||
#ifdef _GLOSSYREFLECTIONS_OFF |
|||
specular = unity_IndirectSpecColor.rgb; |
|||
#else |
|||
half3 env0 = Unity_AnisotropicGlossyEnvironment(UNITY_PASS_TEXCUBE(unity_SpecCube0), data.probeHDR[0], glossIn, anisotropy); |
|||
//half3 env0 = Unity_AnisotropicGlossyEnvironment(UNITY_PASS_TEXCUBE(unity_SpecCube0), data.probeHDR[0], glossIn, anisotropy, L); //Reference IBL from HD Pipe |
|||
#ifdef UNITY_SPECCUBE_BLENDING |
|||
const float kBlendFactor = 0.99999; |
|||
float blendLerp = data.boxMin[0].w; |
|||
UNITY_BRANCH |
|||
if (blendLerp < kBlendFactor) |
|||
{ |
|||
#ifdef UNITY_SPECCUBE_BOX_PROJECTION |
|||
glossIn.reflUVW = BoxProjectedCubemapDirection(iblR, data.worldPos, data.probePosition[1], data.boxMin[1], data.boxMax[1]); |
|||
#endif |
|||
half3 env1 = Unity_AnisotropicGlossyEnvironment(UNITY_PASS_TEXCUBE_SAMPLER(unity_SpecCube1, unity_SpecCube0), data.probeHDR[1], glossIn, anisotropy); |
|||
//half3 env1 = Unity_AnisotropicGlossyEnvironment(UNITY_PASS_TEXCUBE_SAMPLER(unity_SpecCube1, unity_SpecCube0), data.probeHDR[1], glossIn, anisotropy, L); //Reference IBL from HD Pipe |
|||
specular = lerp(env1, env0, blendLerp); |
|||
} |
|||
else |
|||
{ |
|||
specular = env0; |
|||
} |
|||
#else |
|||
specular = env0; |
|||
#endif |
|||
#endif |
|||
|
|||
return specular * occlusion;// *weightOverPdf; //Reference IBL from HD Pipe |
|||
//return specular * occlusion * weightOverPdf; //Reference IBL from HD Pipe |
|||
} |
|||
|
|||
// Global Illumination |
|||
inline UnityGI UnityAnisotropicGlobalIllumination(UnityGIInput data, half occlusion, half3 normalWorld, Unity_GlossyEnvironmentData glossIn, half anisotropy, half3x3 worldVectors) |
|||
{ |
|||
UnityGI o_gi = UnityGI_Base(data, occlusion, normalWorld); |
|||
o_gi.indirect.specular = UnityGI_AnisotropicIndirectSpecular(data, occlusion, glossIn, anisotropy, worldVectors); |
|||
return o_gi; |
|||
} |
|||
|
|||
//------------------------------------------------------------------------------------- |
|||
// Lighting Functions |
|||
|
|||
//Surface Description |
|||
struct SurfaceOutputAdvanced |
|||
{ |
|||
fixed3 Albedo; // base (diffuse or specular) color |
|||
fixed3 Normal; // tangent space normal, if written |
|||
half3 Emission; |
|||
half Metallic; // 0=non-metal, 1=metal |
|||
// Smoothness is the user facing name, it should be perceptual smoothness but user should not have to deal with it. |
|||
// Everywhere in the code you meet smoothness it is perceptual smoothness |
|||
half Smoothness; // 0=rough, 1=smooth |
|||
half Occlusion; // occlusion (default 1) |
|||
fixed Alpha; // alpha for transparencies |
|||
half3 Tangent; |
|||
half Anisotropy; |
|||
half4 CustomData; |
|||
float3x3 WorldVectors; |
|||
//half ShadingModel; |
|||
}; |
|||
|
|||
inline half4 LightingAdvanced(SurfaceOutputAdvanced s, half3 viewDir, UnityGI gi) |
|||
{ |
|||
s.Normal = normalize(s.Normal); |
|||
|
|||
half oneMinusReflectivity; |
|||
half3 specColor; |
|||
s.Albedo = DiffuseAndSpecularFromMetallic(s.Albedo, s.Metallic, /*out*/ specColor, /*out*/ oneMinusReflectivity); |
|||
|
|||
// shader relies on pre-multiply alpha-blend (_SrcBlend = One, _DstBlend = OneMinusSrcAlpha) |
|||
// this is necessary to handle transparency in physically correct way - only diffuse component gets affected by alpha |
|||
half outputAlpha; |
|||
s.Albedo = PreMultiplyAlpha(s.Albedo, s.Alpha, oneMinusReflectivity, /*out*/ outputAlpha); |
|||
|
|||
half4 c = SurfaceShading(s.Albedo, specColor, oneMinusReflectivity, s.Smoothness, s.Normal, s.WorldVectors, s.Anisotropy, s.CustomData, s.Metallic, viewDir, gi.light, gi.indirect); |
|||
c.rgb += SubsurfaceShading(s.Albedo, specColor, s.Normal, s.Smoothness, viewDir, s.CustomData, gi.light); |
|||
|
|||
//c.rgb += UNITY_BRDF_GI(s.Albedo, specColor, oneMinusReflectivity, s.Smoothness, s.Normal, viewDir, s.Occlusion, gi); |
|||
c.a = outputAlpha; |
|||
return c; |
|||
} |
|||
|
|||
//This is pointless as always forward? |
|||
inline half4 LightingAdvanced_Deferred(SurfaceOutputAdvanced s, half3 viewDir, UnityGI gi, out half4 outGBuffer0, out half4 outGBuffer1, out half4 outGBuffer2) |
|||
{ |
|||
half oneMinusReflectivity; |
|||
half3 specColor; |
|||
s.Albedo = DiffuseAndSpecularFromMetallic(s.Albedo, s.Metallic, /*out*/ specColor, /*out*/ oneMinusReflectivity); |
|||
|
|||
half4 c = SurfaceShading(s.Albedo, specColor, oneMinusReflectivity, s.Smoothness, s.Normal, s.WorldVectors, s.Anisotropy, s.CustomData, s.Metallic, viewDir, gi.light, gi.indirect); |
|||
c.rgb += SubsurfaceShading(s.Albedo, specColor, s.Normal, s.Smoothness, viewDir, s.CustomData, gi.light); |
|||
|
|||
UnityStandardData data; |
|||
data.diffuseColor = s.Albedo; |
|||
data.occlusion = s.Occlusion; |
|||
data.specularColor = specColor; |
|||
data.smoothness = s.Smoothness; |
|||
data.normalWorld = s.Normal; |
|||
|
|||
UnityStandardDataToGbuffer(data, outGBuffer0, outGBuffer1, outGBuffer2); |
|||
|
|||
half4 emission = half4(s.Emission + c.rgb, 1); |
|||
return emission; |
|||
} |
|||
|
|||
inline void LightingAdvanced_GI(SurfaceOutputAdvanced s, UnityGIInput data, inout UnityGI gi) |
|||
{ |
|||
#if defined(UNITY_PASS_DEFERRED) && UNITY_ENABLE_REFLECTION_BUFFERS |
|||
gi = UnityGlobalIllumination(data, s.Occlusion, s.Normal); |
|||
#else |
|||
Unity_GlossyEnvironmentData g = UnityGlossyEnvironmentSetup(s.Smoothness, data.worldViewDir, s.Normal, lerp(unity_ColorSpaceDielectricSpec.rgb, s.Albedo, s.Metallic)); |
|||
gi = UnityAnisotropicGlobalIllumination(data, s.Occlusion, s.Normal, g, s.Anisotropy, s.WorldVectors); |
|||
#endif |
|||
} |
|||
|
|||
|
|||
///END |
|||
|
|||
|
|||
//#pragma target 5.0 |
|||
#pragma surface surf Advanced vertex:vert alpha |
|||
#pragma glsl |
|||
#pragma debug |
|||
|
|||
inline float4 unity_multiply_float(float4 arg1, float4 arg2) |
|||
{ |
|||
return arg1 * arg2; |
|||
} |
|||
inline float unity_multiply_float(float arg1, float arg2) |
|||
{ |
|||
return arg1 * arg2; |
|||
} |
|||
|
|||
sampler2D Texture_02787904_5090_4666_a7c8_97507f02d498_Uniform; |
|||
float4 Color_c9de3ed1_a353_4808_af95_5a93b2d8ea8d_Uniform; |
|||
sampler2D Texture_71f3d401_2df9_4089_9d97_b67c1150fd8f_Uniform; |
|||
sampler2D Texture_8d2e732f_5ca2_405f_9835_5f727d9e43e2_Uniform; |
|||
float Vector1_1a947b3b_f0d1_47e4_923c_a34e01736c82_Uniform; |
|||
float Vector1_1f0b0b76_65f8_4986_8eb5_9f7ef1373895_Uniform; |
|||
float Vector1_d193efae_d745_43f0_8f92_f814516da592_Uniform; |
|||
|
|||
|
|||
struct Input |
|||
{ |
|||
float4 color : COLOR; |
|||
half4 meshUV0; |
|||
float4 worldTangent; |
|||
float3 worldNormal; |
|||
INTERNAL_DATA |
|||
|
|||
}; |
|||
|
|||
void vert(inout appdata_full v, out Input o) |
|||
{ |
|||
UNITY_INITIALIZE_OUTPUT(Input,o); |
|||
o.meshUV0 = v.texcoord; |
|||
o.worldTangent = float4(UnityObjectToWorldDir(v.tangent.xyz), v.tangent.w); |
|||
|
|||
} |
|||
|
|||
void surf(Input IN, inout SurfaceOutputAdvanced o) |
|||
{ |
|||
half4 uv0 = IN.meshUV0; |
|||
float3 worldSpaceTangent = normalize(IN.worldTangent.xyz); |
|||
float3 worldSpaceNormal = normalize(IN.worldNormal); |
|||
float3 worldSpaceBitangent = cross(worldSpaceNormal, worldSpaceTangent) * IN.worldTangent.w; |
|||
float4 UV_9f41e2a6_ad5a_46ca_b34c_f60ac2c321f9_UV = uv0; |
|||
float4 Texture_02787904_5090_4666_a7c8_97507f02d498 = tex2D(Texture_02787904_5090_4666_a7c8_97507f02d498_Uniform, (UV_9f41e2a6_ad5a_46ca_b34c_f60ac2c321f9_UV.xy)); |
|||
float4 Multiply_5f63430a_31df_4533_b412_89748a592b6c_Output = unity_multiply_float(Texture_02787904_5090_4666_a7c8_97507f02d498, Color_c9de3ed1_a353_4808_af95_5a93b2d8ea8d_Uniform); |
|||
float4 Texture_71f3d401_2df9_4089_9d97_b67c1150fd8f = float4(UnpackNormal(tex2D(Texture_71f3d401_2df9_4089_9d97_b67c1150fd8f_Uniform, uv0.xy)), 0); |
|||
float4 Texture_8d2e732f_5ca2_405f_9835_5f727d9e43e2 = tex2D(Texture_8d2e732f_5ca2_405f_9835_5f727d9e43e2_Uniform, uv0.xy); |
|||
float Multiply_f05d7ce8_6386_4302_bde1_cc1806075819_Output = unity_multiply_float(Texture_8d2e732f_5ca2_405f_9835_5f727d9e43e2.r, Vector1_1a947b3b_f0d1_47e4_923c_a34e01736c82_Uniform); |
|||
float Multiply_f4f05e7f_9461_4ef6_b868_a0a2b57c3a83_Output = unity_multiply_float(Texture_8d2e732f_5ca2_405f_9835_5f727d9e43e2.a, Vector1_1f0b0b76_65f8_4986_8eb5_9f7ef1373895_Uniform); |
|||
o.Albedo = Multiply_5f63430a_31df_4533_b412_89748a592b6c_Output; |
|||
o.Normal = Texture_71f3d401_2df9_4089_9d97_b67c1150fd8f; |
|||
o.Normal += 1e-6; |
|||
o.Metallic = Multiply_f05d7ce8_6386_4302_bde1_cc1806075819_Output; |
|||
o.Smoothness = Multiply_f4f05e7f_9461_4ef6_b868_a0a2b57c3a83_Output; |
|||
o.WorldVectors = float3x3(worldSpaceTangent, worldSpaceBitangent, worldSpaceNormal); |
|||
o.Anisotropy = Vector1_d193efae_d745_43f0_8f92_f814516da592_Uniform; |
|||
o.Alpha = Multiply_5f63430a_31df_4533_b412_89748a592b6c_Output.a; |
|||
} |
|||
ENDCG |
|||
} |
|||
|
|||
|
|||
FallBack "Diffuse" |
|||
CustomEditor "LegacyIlluminShaderGUI" |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: d6cf794d3b991c842ba5ee650aaf280a |
|||
timeCreated: 1495748613 |
|||
licenseType: Pro |
|||
ShaderImporter: |
|||
defaultTextures: [] |
|||
nonModifiableTextures: [] |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: bbb00072bc4c43e45b7c53c3db0f2dbc |
|||
folderAsset: yes |
|||
timeCreated: 1495745555 |
|||
licenseType: Pro |
|||
DefaultImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Chal_Rig.fbx
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 6a0af412b3bd5e4429eb52b218255660 |
|||
timeCreated: 1430294420 |
|||
licenseType: Store |
|||
ModelImporter: |
|||
serializedVersion: 18 |
|||
fileIDToRecycleName: |
|||
100000: //RootNode |
|||
100002: challenger_beard |
|||
100004: challenger_Belt |
|||
100006: challenger_BeltBuckle |
|||
100008: challenger_boots |
|||
100010: challenger_dress |
|||
100012: challenger_eyes_refl |
|||
100014: challenger_eyes_refl 1 |
|||
100016: challenger_eyes_refl2 |
|||
100018: challenger_fingers |
|||
100020: challenger_FrontGorget |
|||
100022: challenger_FrontGorget_PntCnstLoc |
|||
100024: challenger_FrontKnife |
|||
100026: challenger_geo_grp |
|||
100028: challenger_Gorget_Ik |
|||
100030: challenger_Gorget_PvLoc |
|||
100032: challenger_hair |
|||
100034: challenger_hands |
|||
100036: challenger_Head |
|||
100038: challenger_head |
|||
100040: challenger_helm |
|||
100042: challenger_Helmet |
|||
100044: challenger_Hips |
|||
100046: challenger_hood |
|||
100048: challenger_Jaw |
|||
100050: challenger_knife |
|||
100052: challenger_LeftArm |
|||
100054: challenger_LeftArmorStrap01 |
|||
100056: challenger_LeftArmorStrap02 |
|||
100058: challenger_LeftEye |
|||
100060: challenger_LeftFoot |
|||
100062: challenger_LeftForeArm |
|||
100064: challenger_LeftForeArmRoll |
|||
100066: challenger_LeftHand |
|||
100068: challenger_LeftHandIndex1 |
|||
100070: challenger_LeftHandIndex2 |
|||
100072: challenger_LeftHandIndex3 |
|||
100074: challenger_LeftHandIndex4 |
|||
100076: challenger_LeftHandMiddle1 |
|||
100078: challenger_LeftHandMiddle2 |
|||
100080: challenger_LeftHandMiddle3 |
|||
100082: challenger_LeftHandMiddle4 |
|||
100084: challenger_LeftHandPinky1 |
|||
100086: challenger_LeftHandPinky2 |
|||
100088: challenger_LeftHandPinky3 |
|||
100090: challenger_LeftHandPinky4 |
|||
100092: challenger_LeftHandProp |
|||
100094: challenger_LeftHandRing1 |
|||
100096: challenger_LeftHandRing2 |
|||
100098: challenger_LeftHandRing3 |
|||
100100: challenger_LeftHandRing4 |
|||
100102: challenger_LeftHandThumb1 |
|||
100104: challenger_LeftHandThumb2 |
|||
100106: challenger_LeftHandThumb3 |
|||
100108: challenger_LeftHandThumb4 |
|||
100110: challenger_LeftHemetFlap |
|||
100112: challenger_LeftLeg |
|||
100114: challenger_LeftLowerEyelid |
|||
100116: challenger_LeftShoulder |
|||
100118: challenger_LeftShoulderpad |
|||
100120: challenger_LeftToeBase |
|||
100122: challenger_LeftUpLeg |
|||
100124: challenger_LeftUpperEyelid |
|||
100126: challenger_Neck |
|||
100128: challenger_Neck1 |
|||
100130: challenger_pants |
|||
100132: challenger_RearGorget |
|||
100134: challenger_RearGorget_OriCnstLoc |
|||
100136: challenger_RearGorget_PntCnstLoc |
|||
100138: challenger_RearSword |
|||
100140: challenger_RearSword_Strap_01 |
|||
100142: challenger_RearSword_Strap_02 |
|||
100144: challenger_RearSword_Strap_03 |
|||
100146: challenger_RearSword_Strap_04 |
|||
100148: challenger_Reference |
|||
100150: challenger_RightArm |
|||
100152: challenger_RightArmorStrap01 |
|||
100154: challenger_RightArmorStrap02 |
|||
100156: challenger_RightEye |
|||
100158: challenger_RightFoot |
|||
100160: challenger_RightForeArm |
|||
100162: challenger_RightForeArmRoll |
|||
100164: challenger_RightHand |
|||
100166: challenger_RightHandIndex1 |
|||
100168: challenger_RightHandIndex2 |
|||
100170: challenger_RightHandIndex3 |
|||
100172: challenger_RightHandIndex4 |
|||
100174: challenger_RightHandMiddle1 |
|||
100176: challenger_RightHandMiddle2 |
|||
100178: challenger_RightHandMiddle3 |
|||
100180: challenger_RightHandMiddle4 |
|||
100182: challenger_RightHandPinky1 |
|||
100184: challenger_RightHandPinky2 |
|||
100186: challenger_RightHandPinky3 |
|||
100188: challenger_RightHandPinky4 |
|||
100190: challenger_RightHandProp |
|||
100192: challenger_RightHandRing1 |
|||
100194: challenger_RightHandRing2 |
|||
100196: challenger_RightHandRing3 |
|||
100198: challenger_RightHandRing4 |
|||
100200: challenger_RightHandThumb1 |
|||
100202: challenger_RightHandThumb2 |
|||
100204: challenger_RightHandThumb3 |
|||
100206: challenger_RightHandThumb4 |
|||
100208: challenger_RightHemetFlap |
|||
100210: challenger_RightLeg |
|||
100212: challenger_RightLowerEyelid |
|||
100214: challenger_RightShoulder |
|||
100216: challenger_RightShoulderpad |
|||
100218: challenger_RightToeBase |
|||
100220: challenger_RightUpLeg |
|||
100222: challenger_RightUpperEyelid |
|||
100224: challenger_sholders |
|||
100226: challenger_Spine |
|||
100228: challenger_Spine1 |
|||
100230: challenger_Spine2 |
|||
100232: challenger_Spine3 |
|||
100234: challenger_sword_holder |
|||
100236: challenger_sword_holder2 |
|||
100238: challenger_teeth |
|||
100240: challenger_tongue |
|||
100242: challenger_torso |
|||
100244: challenger_wound |
|||
100246: dress_frontLeft_jnt1 |
|||
100248: dress_frontLeft_jnt2 |
|||
100250: dress_frontLeft_jnt3 |
|||
100252: dress_frontLeft_jnt4 |
|||
100254: dress_frontLeft_jnt5 |
|||
100256: dress_frontLeft_jnt6 |
|||
100258: dress_frontRight_jnt1 |
|||
100260: dress_frontRight_jnt2 |
|||
100262: dress_frontRight_jnt3 |
|||
100264: dress_frontRight_jnt4 |
|||
100266: dress_frontRight_jnt5 |
|||
100268: dress_frontRight_jnt6 |
|||
100270: dress_rearLeft_jnt1 |
|||
100272: dress_rearLeft_jnt2 |
|||
100274: dress_rearLeft_jnt3 |
|||
100276: dress_rearLeft_jnt4 |
|||
100278: dress_rearLeft_jnt5 |
|||
100280: dress_rearLeft_jnt6 |
|||
100282: dress_rearRight_jnt1 |
|||
100284: dress_rearRight_jnt2 |
|||
100286: dress_rearRight_jnt3 |
|||
100288: dress_rearRight_jnt4 |
|||
100290: dress_rearRight_jnt5 |
|||
100292: dress_rearRight_jnt6 |
|||
100294: left_beard_jnt01 |
|||
100296: left_beard_jnt02 |
|||
100298: left_beard_jnt03 |
|||
100300: left_beard_jnt04 |
|||
100302: left_beard_jnt05 |
|||
100304: left_beard_jnt06 |
|||
100306: left_beard_jnt07 |
|||
100308: left_beard_jnt08 |
|||
100310: left_beard_jnt09 |
|||
100312: left_beard_jnt10 |
|||
100314: left_beard_jnt11 |
|||
100316: left_beard_jnt12 |
|||
100318: left_beard_jnt13 |
|||
100320: left_eyeBrow_jnt01 |
|||
100322: left_eyeBrow_jnt02 |
|||
100324: left_eyeBrow_jnt03 |
|||
100326: left_eyeBrow_jnt04 |
|||
100328: left_lowerEyelash_jnt01 |
|||
100330: left_lowerEyelash_jnt02 |
|||
100332: left_lowerEyelash_jnt03 |
|||
100334: left_upperEyelash_jnt01 |
|||
100336: left_upperEyelash_jnt02 |
|||
100338: left_upperEyelash_jnt03 |
|||
100340: LeftArmorStrap_AimLoc |
|||
100342: LeftArmorStrap_AimNull |
|||
100344: right_beard_jnt01 |
|||
100346: right_beard_jnt02 |
|||
100348: right_beard_jnt03 |
|||
100350: right_beard_jnt04 |
|||
100352: right_beard_jnt05 |
|||
100354: right_beard_jnt06 |
|||
100356: right_beard_jnt07 |
|||
100358: right_beard_jnt08 |
|||
100360: right_beard_jnt09 |
|||
100362: right_beard_jnt10 |
|||
100364: right_beard_jnt11 |
|||
100366: right_beard_jnt12 |
|||
100368: right_beard_jnt13 |
|||
100370: right_beard_jnt14 |
|||
100372: right_beard_jnt15 |
|||
100374: right_eyeBrow_jnt01 |
|||
100376: right_eyeBrow_jnt02 |
|||
100378: right_eyeBrow_jnt03 |
|||
100380: right_eyeBrow_jnt04 |
|||
100382: right_lowerEyelash_jnt01 |
|||
100384: right_lowerEyelash_jnt02 |
|||
100386: right_lowerEyelash_jnt03 |
|||
100388: right_upperEyelash_jnt01 |
|||
100390: right_upperEyelash_jnt02 |
|||
100392: right_upperEyelash_jnt03 |
|||
100394: RightArmorStrap_AimLoc |
|||
100396: RightArmorStrap_AimNull |
|||
100398: challenger_Ctrl_BeltEffector |
|||
100400: challenger_Ctrl_BeltEffector_OFFSET_GRP |
|||
100402: challenger_Ctrl_FrontGorgetEffector |
|||
100404: challenger_Ctrl_FrontGorgetEffector_OFFSET_GRP |
|||
100406: challenger_Ctrl_FrontKnifeEffector |
|||
100408: challenger_Ctrl_FrontKnifeEffector_OFFSET_GRP |
|||
100410: challenger_Ctrl_HelmetEffector |
|||
100412: challenger_Ctrl_HelmetEffector_OFFSET_GRP |
|||
100414: challenger_Ctrl_Jaw_OFFSET_GRP |
|||
100416: challenger_Ctrl_JawEffector |
|||
100418: challenger_Ctrl_LeftHemetFlapEffector |
|||
100420: challenger_Ctrl_LeftHemetFlapEffector_OFFSET_GRP |
|||
100422: challenger_Ctrl_LeftShoulderpadEffector |
|||
100424: challenger_Ctrl_LeftShoulderpadEffector_OFFSET_GRP |
|||
100426: challenger_Ctrl_RearGorgetEffector |
|||
100428: challenger_Ctrl_RearGorgetEffector_OFFSET_GRP |
|||
100430: challenger_Ctrl_RearSwordEffector |
|||
100432: challenger_Ctrl_RearSwordEffector_OFFSET_GRP |
|||
100434: challenger_Ctrl_RightHemetFlapEffector |
|||
100436: challenger_Ctrl_RightHemetFlapEffector_OFFSET_GRP |
|||
100438: challenger_Ctrl_RightShoulderpadEffector |
|||
100440: challenger_Ctrl_RightShoulderpadEffector_OFFSET_GRP |
|||
100442: challenger_CustomRig_grp |
|||
100444: challenger_eyes_ctrl |
|||
100446: challenger_eyes_null |
|||
100448: challenger_leftHandProp_ctrl |
|||
100450: challenger_leftHandProp_null |
|||
100452: challenger_leftHandSpace_oriLoc |
|||
100454: challenger_propSpaceSwitch_grp |
|||
100456: challenger_RearSword_Grp |
|||
100458: challenger_RearSword_Ik_01 |
|||
100460: challenger_RearSword_Ik_02 |
|||
100462: challenger_RearSword_Ik_AimGrp |
|||
100464: challenger_RearSword_Ik_OriGrp |
|||
100466: challenger_RearSword_PosLoc |
|||
100468: challenger_RearSword_UpLoc |
|||
100470: challenger_rightHandProp_ctrl |
|||
100472: challenger_rightHandProp_null |
|||
100474: challenger_rightHandSpace_oriLoc |
|||
100476: challenger_worldSpace_oriLoc |
|||
100478: correctiveBlendShape_grp |
|||
100480: facialHair_rivets |
|||
100482: l_eye_ctrl |
|||
100484: l_eye_null |
|||
100486: left_beard_rivet01 |
|||
100488: left_beard_rivet02 |
|||
100490: left_beard_rivet03 |
|||
100492: left_beard_rivet04 |
|||
100494: left_beard_rivet05 |
|||
100496: left_beard_rivet06 |
|||
100498: left_beard_rivet07 |
|||
100500: left_beard_rivet08 |
|||
100502: left_beard_rivet09 |
|||
100504: left_beard_rivet10 |
|||
100506: left_beard_rivet11 |
|||
100508: left_beard_rivet12 |
|||
100510: left_beard_rivet13 |
|||
100512: left_eyeBrow_rivet01 |
|||
100514: left_eyeBrow_rivet02 |
|||
100516: left_eyeBrow_rivet03 |
|||
100518: left_eyeBrow_rivet04 |
|||
100520: left_lowerEyelash_rivet01 |
|||
100522: left_lowerEyelash_rivet02 |
|||
100524: left_lowerEyelash_rivet03 |
|||
100526: left_upperEyelash_rivet01 |
|||
100528: left_upperEyelash_rivet02 |
|||
100530: left_upperEyelash_rivet03 |
|||
100532: r_eye_ctrl |
|||
100534: r_eye_null |
|||
100536: right_beard_rivet01 |
|||
100538: right_beard_rivet02 |
|||
100540: right_beard_rivet03 |
|||
100542: right_beard_rivet04 |
|||
100544: right_beard_rivet05 |
|||
100546: right_beard_rivet06 |
|||
100548: right_beard_rivet07 |
|||
100550: right_beard_rivet08 |
|||
100552: right_beard_rivet09 |
|||
100554: right_beard_rivet10 |
|||
100556: right_beard_rivet11 |
|||
100558: right_beard_rivet12 |
|||
100560: right_beard_rivet13 |
|||
100562: right_beard_rivet14 |
|||
100564: right_beard_rivet15 |
|||
100566: right_eyeBrow_rivet01 |
|||
100568: right_eyeBrow_rivet02 |
|||
100570: right_eyeBrow_rivet03 |
|||
100572: right_eyeBrow_rivet04 |
|||
100574: right_lowerEyelash_rivet01 |
|||
100576: right_lowerEyelash_rivet02 |
|||
100578: right_lowerEyelash_rivet03 |
|||
100580: right_upperEyelash_rivet01 |
|||
100582: right_upperEyelash_rivet02 |
|||
100584: right_upperEyelash_rivet03 |
|||
400000: //RootNode |
|||
400002: challenger_beard |
|||
400004: challenger_Belt |
|||
400006: challenger_BeltBuckle |
|||
400008: challenger_boots |
|||
400010: challenger_dress |
|||
400012: challenger_eyes_refl |
|||
400014: challenger_eyes_refl 1 |
|||
400016: challenger_eyes_refl2 |
|||
400018: challenger_fingers |
|||
400020: challenger_FrontGorget |
|||
400022: challenger_FrontGorget_PntCnstLoc |
|||
400024: challenger_FrontKnife |
|||
400026: challenger_geo_grp |
|||
400028: challenger_Gorget_Ik |
|||
400030: challenger_Gorget_PvLoc |
|||
400032: challenger_hair |
|||
400034: challenger_hands |
|||
400036: challenger_Head |
|||
400038: challenger_head |
|||
400040: challenger_helm |
|||
400042: challenger_Helmet |
|||
400044: challenger_Hips |
|||
400046: challenger_hood |
|||
400048: challenger_Jaw |
|||
400050: challenger_knife |
|||
400052: challenger_LeftArm |
|||
400054: challenger_LeftArmorStrap01 |
|||
400056: challenger_LeftArmorStrap02 |
|||
400058: challenger_LeftEye |
|||
400060: challenger_LeftFoot |
|||
400062: challenger_LeftForeArm |
|||
400064: challenger_LeftForeArmRoll |
|||
400066: challenger_LeftHand |
|||
400068: challenger_LeftHandIndex1 |
|||
400070: challenger_LeftHandIndex2 |
|||
400072: challenger_LeftHandIndex3 |
|||
400074: challenger_LeftHandIndex4 |
|||
400076: challenger_LeftHandMiddle1 |
|||
400078: challenger_LeftHandMiddle2 |
|||
400080: challenger_LeftHandMiddle3 |
|||
400082: challenger_LeftHandMiddle4 |
|||
400084: challenger_LeftHandPinky1 |
|||
400086: challenger_LeftHandPinky2 |
|||
400088: challenger_LeftHandPinky3 |
|||
400090: challenger_LeftHandPinky4 |
|||
400092: challenger_LeftHandProp |
|||
400094: challenger_LeftHandRing1 |
|||
400096: challenger_LeftHandRing2 |
|||
400098: challenger_LeftHandRing3 |
|||
400100: challenger_LeftHandRing4 |
|||
400102: challenger_LeftHandThumb1 |
|||
400104: challenger_LeftHandThumb2 |
|||
400106: challenger_LeftHandThumb3 |
|||
400108: challenger_LeftHandThumb4 |
|||
400110: challenger_LeftHemetFlap |
|||
400112: challenger_LeftLeg |
|||
400114: challenger_LeftLowerEyelid |
|||
400116: challenger_LeftShoulder |
|||
400118: challenger_LeftShoulderpad |
|||
400120: challenger_LeftToeBase |
|||
400122: challenger_LeftUpLeg |
|||
400124: challenger_LeftUpperEyelid |
|||
400126: challenger_Neck |
|||
400128: challenger_Neck1 |
|||
400130: challenger_pants |
|||
400132: challenger_RearGorget |
|||
400134: challenger_RearGorget_OriCnstLoc |
|||
400136: challenger_RearGorget_PntCnstLoc |
|||
400138: challenger_RearSword |
|||
400140: challenger_RearSword_Strap_01 |
|||
400142: challenger_RearSword_Strap_02 |
|||
400144: challenger_RearSword_Strap_03 |
|||
400146: challenger_RearSword_Strap_04 |
|||
400148: challenger_Reference |
|||
400150: challenger_RightArm |
|||
400152: challenger_RightArmorStrap01 |
|||
400154: challenger_RightArmorStrap02 |
|||
400156: challenger_RightEye |
|||
400158: challenger_RightFoot |
|||
400160: challenger_RightForeArm |
|||
400162: challenger_RightForeArmRoll |
|||
400164: challenger_RightHand |
|||
400166: challenger_RightHandIndex1 |
|||
400168: challenger_RightHandIndex2 |
|||
400170: challenger_RightHandIndex3 |
|||
400172: challenger_RightHandIndex4 |
|||
400174: challenger_RightHandMiddle1 |
|||
400176: challenger_RightHandMiddle2 |
|||
400178: challenger_RightHandMiddle3 |
|||
400180: challenger_RightHandMiddle4 |
|||
400182: challenger_RightHandPinky1 |
|||
400184: challenger_RightHandPinky2 |
|||
400186: challenger_RightHandPinky3 |
|||
400188: challenger_RightHandPinky4 |
|||
400190: challenger_RightHandProp |
|||
400192: challenger_RightHandRing1 |
|||
400194: challenger_RightHandRing2 |
|||
400196: challenger_RightHandRing3 |
|||
400198: challenger_RightHandRing4 |
|||
400200: challenger_RightHandThumb1 |
|||
400202: challenger_RightHandThumb2 |
|||
400204: challenger_RightHandThumb3 |
|||
400206: challenger_RightHandThumb4 |
|||
400208: challenger_RightHemetFlap |
|||
400210: challenger_RightLeg |
|||
400212: challenger_RightLowerEyelid |
|||
400214: challenger_RightShoulder |
|||
400216: challenger_RightShoulderpad |
|||
400218: challenger_RightToeBase |
|||
400220: challenger_RightUpLeg |
|||
400222: challenger_RightUpperEyelid |
|||
400224: challenger_sholders |
|||
400226: challenger_Spine |
|||
400228: challenger_Spine1 |
|||
400230: challenger_Spine2 |
|||
400232: challenger_Spine3 |
|||
400234: challenger_sword_holder |
|||
400236: challenger_sword_holder2 |
|||
400238: challenger_teeth |
|||
400240: challenger_tongue |
|||
400242: challenger_torso |
|||
400244: challenger_wound |
|||
400246: dress_frontLeft_jnt1 |
|||
400248: dress_frontLeft_jnt2 |
|||
400250: dress_frontLeft_jnt3 |
|||
400252: dress_frontLeft_jnt4 |
|||
400254: dress_frontLeft_jnt5 |
|||
400256: dress_frontLeft_jnt6 |
|||
400258: dress_frontRight_jnt1 |
|||
400260: dress_frontRight_jnt2 |
|||
400262: dress_frontRight_jnt3 |
|||
400264: dress_frontRight_jnt4 |
|||
400266: dress_frontRight_jnt5 |
|||
400268: dress_frontRight_jnt6 |
|||
400270: dress_rearLeft_jnt1 |
|||
400272: dress_rearLeft_jnt2 |
|||
400274: dress_rearLeft_jnt3 |
|||
400276: dress_rearLeft_jnt4 |
|||
400278: dress_rearLeft_jnt5 |
|||
400280: dress_rearLeft_jnt6 |
|||
400282: dress_rearRight_jnt1 |
|||
400284: dress_rearRight_jnt2 |
|||
400286: dress_rearRight_jnt3 |
|||
400288: dress_rearRight_jnt4 |
|||
400290: dress_rearRight_jnt5 |
|||
400292: dress_rearRight_jnt6 |
|||
400294: left_beard_jnt01 |
|||
400296: left_beard_jnt02 |
|||
400298: left_beard_jnt03 |
|||
400300: left_beard_jnt04 |
|||
400302: left_beard_jnt05 |
|||
400304: left_beard_jnt06 |
|||
400306: left_beard_jnt07 |
|||
400308: left_beard_jnt08 |
|||
400310: left_beard_jnt09 |
|||
400312: left_beard_jnt10 |
|||
400314: left_beard_jnt11 |
|||
400316: left_beard_jnt12 |
|||
400318: left_beard_jnt13 |
|||
400320: left_eyeBrow_jnt01 |
|||
400322: left_eyeBrow_jnt02 |
|||
400324: left_eyeBrow_jnt03 |
|||
400326: left_eyeBrow_jnt04 |
|||
400328: left_lowerEyelash_jnt01 |
|||
400330: left_lowerEyelash_jnt02 |
|||
400332: left_lowerEyelash_jnt03 |
|||
400334: left_upperEyelash_jnt01 |
|||
400336: left_upperEyelash_jnt02 |
|||
400338: left_upperEyelash_jnt03 |
|||
400340: LeftArmorStrap_AimLoc |
|||
400342: LeftArmorStrap_AimNull |
|||
400344: right_beard_jnt01 |
|||
400346: right_beard_jnt02 |
|||
400348: right_beard_jnt03 |
|||
400350: right_beard_jnt04 |
|||
400352: right_beard_jnt05 |
|||
400354: right_beard_jnt06 |
|||
400356: right_beard_jnt07 |
|||
400358: right_beard_jnt08 |
|||
400360: right_beard_jnt09 |
|||
400362: right_beard_jnt10 |
|||
400364: right_beard_jnt11 |
|||
400366: right_beard_jnt12 |
|||
400368: right_beard_jnt13 |
|||
400370: right_beard_jnt14 |
|||
400372: right_beard_jnt15 |
|||
400374: right_eyeBrow_jnt01 |
|||
400376: right_eyeBrow_jnt02 |
|||
400378: right_eyeBrow_jnt03 |
|||
400380: right_eyeBrow_jnt04 |
|||
400382: right_lowerEyelash_jnt01 |
|||
400384: right_lowerEyelash_jnt02 |
|||
400386: right_lowerEyelash_jnt03 |
|||
400388: right_upperEyelash_jnt01 |
|||
400390: right_upperEyelash_jnt02 |
|||
400392: right_upperEyelash_jnt03 |
|||
400394: RightArmorStrap_AimLoc |
|||
400396: RightArmorStrap_AimNull |
|||
400398: challenger_Ctrl_BeltEffector |
|||
400400: challenger_Ctrl_BeltEffector_OFFSET_GRP |
|||
400402: challenger_Ctrl_FrontGorgetEffector |
|||
400404: challenger_Ctrl_FrontGorgetEffector_OFFSET_GRP |
|||
400406: challenger_Ctrl_FrontKnifeEffector |
|||
400408: challenger_Ctrl_FrontKnifeEffector_OFFSET_GRP |
|||
400410: challenger_Ctrl_HelmetEffector |
|||
400412: challenger_Ctrl_HelmetEffector_OFFSET_GRP |
|||
400414: challenger_Ctrl_Jaw_OFFSET_GRP |
|||
400416: challenger_Ctrl_JawEffector |
|||
400418: challenger_Ctrl_LeftHemetFlapEffector |
|||
400420: challenger_Ctrl_LeftHemetFlapEffector_OFFSET_GRP |
|||
400422: challenger_Ctrl_LeftShoulderpadEffector |
|||
400424: challenger_Ctrl_LeftShoulderpadEffector_OFFSET_GRP |
|||
400426: challenger_Ctrl_RearGorgetEffector |
|||
400428: challenger_Ctrl_RearGorgetEffector_OFFSET_GRP |
|||
400430: challenger_Ctrl_RearSwordEffector |
|||
400432: challenger_Ctrl_RearSwordEffector_OFFSET_GRP |
|||
400434: challenger_Ctrl_RightHemetFlapEffector |
|||
400436: challenger_Ctrl_RightHemetFlapEffector_OFFSET_GRP |
|||
400438: challenger_Ctrl_RightShoulderpadEffector |
|||
400440: challenger_Ctrl_RightShoulderpadEffector_OFFSET_GRP |
|||
400442: challenger_CustomRig_grp |
|||
400444: challenger_eyes_ctrl |
|||
400446: challenger_eyes_null |
|||
400448: challenger_leftHandProp_ctrl |
|||
400450: challenger_leftHandProp_null |
|||
400452: challenger_leftHandSpace_oriLoc |
|||
400454: challenger_propSpaceSwitch_grp |
|||
400456: challenger_RearSword_Grp |
|||
400458: challenger_RearSword_Ik_01 |
|||
400460: challenger_RearSword_Ik_02 |
|||
400462: challenger_RearSword_Ik_AimGrp |
|||
400464: challenger_RearSword_Ik_OriGrp |
|||
400466: challenger_RearSword_PosLoc |
|||
400468: challenger_RearSword_UpLoc |
|||
400470: challenger_rightHandProp_ctrl |
|||
400472: challenger_rightHandProp_null |
|||
400474: challenger_rightHandSpace_oriLoc |
|||
400476: challenger_worldSpace_oriLoc |
|||
400478: correctiveBlendShape_grp |
|||
400480: facialHair_rivets |
|||
400482: l_eye_ctrl |
|||
400484: l_eye_null |
|||
400486: left_beard_rivet01 |
|||
400488: left_beard_rivet02 |
|||
400490: left_beard_rivet03 |
|||
400492: left_beard_rivet04 |
|||
400494: left_beard_rivet05 |
|||
400496: left_beard_rivet06 |
|||
400498: left_beard_rivet07 |
|||
400500: left_beard_rivet08 |
|||
400502: left_beard_rivet09 |
|||
400504: left_beard_rivet10 |
|||
400506: left_beard_rivet11 |
|||
400508: left_beard_rivet12 |
|||
400510: left_beard_rivet13 |
|||
400512: left_eyeBrow_rivet01 |
|||
400514: left_eyeBrow_rivet02 |
|||
400516: left_eyeBrow_rivet03 |
|||
400518: left_eyeBrow_rivet04 |
|||
400520: left_lowerEyelash_rivet01 |
|||
400522: left_lowerEyelash_rivet02 |
|||
400524: left_lowerEyelash_rivet03 |
|||
400526: left_upperEyelash_rivet01 |
|||
400528: left_upperEyelash_rivet02 |
|||
400530: left_upperEyelash_rivet03 |
|||
400532: r_eye_ctrl |
|||
400534: r_eye_null |
|||
400536: right_beard_rivet01 |
|||
400538: right_beard_rivet02 |
|||
400540: right_beard_rivet03 |
|||
400542: right_beard_rivet04 |
|||
400544: right_beard_rivet05 |
|||
400546: right_beard_rivet06 |
|||
400548: right_beard_rivet07 |
|||
400550: right_beard_rivet08 |
|||
400552: right_beard_rivet09 |
|||
400554: right_beard_rivet10 |
|||
400556: right_beard_rivet11 |
|||
400558: right_beard_rivet12 |
|||
400560: right_beard_rivet13 |
|||
400562: right_beard_rivet14 |
|||
400564: right_beard_rivet15 |
|||
400566: right_eyeBrow_rivet01 |
|||
400568: right_eyeBrow_rivet02 |
|||
400570: right_eyeBrow_rivet03 |
|||
400572: right_eyeBrow_rivet04 |
|||
400574: right_lowerEyelash_rivet01 |
|||
400576: right_lowerEyelash_rivet02 |
|||
400578: right_lowerEyelash_rivet03 |
|||
400580: right_upperEyelash_rivet01 |
|||
400582: right_upperEyelash_rivet02 |
|||
400584: right_upperEyelash_rivet03 |
|||
4300000: challenger_boots |
|||
4300002: challenger_torso |
|||
4300004: challenger_helm |
|||
4300006: challenger_hood |
|||
4300008: challenger_head |
|||
4300010: challenger_pants |
|||
4300012: challenger_dress |
|||
4300014: challenger_sholders |
|||
4300016: challenger_hands |
|||
4300018: challenger_sword_holder |
|||
4300020: challenger_knife |
|||
4300022: challenger_sword_holder2 |
|||
4300024: challenger_fingers |
|||
4300026: challenger_eyes_refl2 |
|||
4300028: challenger_eyes_refl |
|||
4300030: challenger_eyes_refl 1 |
|||
4300032: challenger_teeth |
|||
4300034: challenger_tongue |
|||
4300036: challenger_beard |
|||
4300038: challenger_hair |
|||
4300040: challenger_wound |
|||
4300042: challenger_eyes_refl |
|||
7400000: Take 001 |
|||
9500000: //RootNode |
|||
13700000: challenger_beard |
|||
13700002: challenger_boots |
|||
13700004: challenger_dress |
|||
13700006: challenger_eyes_refl |
|||
13700008: challenger_eyes_refl 1 |
|||
13700010: challenger_eyes_refl2 |
|||
13700012: challenger_fingers |
|||
13700014: challenger_hair |
|||
13700016: challenger_hands |
|||
13700018: challenger_head |
|||
13700020: challenger_helm |
|||
13700022: challenger_hood |
|||
13700024: challenger_knife |
|||
13700026: challenger_pants |
|||
13700028: challenger_sholders |
|||
13700030: challenger_sword_holder |
|||
13700032: challenger_sword_holder2 |
|||
13700034: challenger_teeth |
|||
13700036: challenger_tongue |
|||
13700038: challenger_torso |
|||
13700040: challenger_wound |
|||
materials: |
|||
importMaterials: 0 |
|||
materialName: 0 |
|||
materialSearch: 1 |
|||
animations: |
|||
legacyGenerateAnimations: 4 |
|||
bakeSimulation: 0 |
|||
optimizeGameObjects: 0 |
|||
motionNodeName: |
|||
animationCompression: 1 |
|||
animationRotationError: .5 |
|||
animationPositionError: .5 |
|||
animationScaleError: .5 |
|||
animationWrapMode: 0 |
|||
extraExposedTransformPaths: [] |
|||
clipAnimations: [] |
|||
isReadable: 1 |
|||
meshes: |
|||
lODScreenPercentages: [] |
|||
globalScale: 1 |
|||
meshCompression: 0 |
|||
addColliders: 0 |
|||
importBlendShapes: 1 |
|||
swapUVChannels: 0 |
|||
generateSecondaryUV: 0 |
|||
useFileUnits: 1 |
|||
optimizeMeshForGPU: 1 |
|||
keepQuads: 0 |
|||
weldVertices: 1 |
|||
secondaryUVAngleDistortion: 8 |
|||
secondaryUVAreaDistortion: 15.000001 |
|||
secondaryUVHardAngle: 88 |
|||
secondaryUVPackMargin: 4 |
|||
useFileScale: 1 |
|||
tangentSpace: |
|||
normalSmoothAngle: 60 |
|||
splitTangentsAcrossUV: 1 |
|||
normalImportMode: 0 |
|||
tangentImportMode: 1 |
|||
importAnimation: 1 |
|||
copyAvatar: 0 |
|||
humanDescription: |
|||
human: [] |
|||
skeleton: [] |
|||
armTwist: .5 |
|||
foreArmTwist: .5 |
|||
upperLegTwist: .5 |
|||
legTwist: .5 |
|||
armStretch: .0500000007 |
|||
legStretch: .0500000007 |
|||
feetSpacing: 0 |
|||
rootMotionBoneName: |
|||
lastHumanDescriptionAvatarSource: {instanceID: 0} |
|||
animationType: 2 |
|||
additionalBone: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Chal_thick_SSS.png
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 3ce2fee9b4ec4714f8b54cf287194cd7 |
|||
timeCreated: 1495746074 |
|||
licenseType: Pro |
|||
TextureImporter: |
|||
fileIDToRecycleName: {} |
|||
serializedVersion: 4 |
|||
mipmaps: |
|||
mipMapMode: 0 |
|||
enableMipMap: 1 |
|||
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 |
|||
grayScaleToAlpha: 0 |
|||
generateCubemap: 6 |
|||
cubemapConvolution: 0 |
|||
seamlessCubemap: 0 |
|||
textureFormat: 1 |
|||
maxTextureSize: 2048 |
|||
textureSettings: |
|||
serializedVersion: 2 |
|||
filterMode: -1 |
|||
aniso: -1 |
|||
mipBias: -1 |
|||
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} |
|||
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 |
|||
resizeAlgorithm: 0 |
|||
textureFormat: -1 |
|||
textureCompression: 1 |
|||
compressionQuality: 50 |
|||
crunchedCompression: 0 |
|||
allowsAlphaSplitting: 0 |
|||
overridden: 0 |
|||
spriteSheet: |
|||
serializedVersion: 2 |
|||
sprites: [] |
|||
outline: [] |
|||
physicsShape: [] |
|||
spritePackingTag: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: c77d353b3d3e718478af1d5a8a828159 |
|||
folderAsset: yes |
|||
timeCreated: 1495750702 |
|||
licenseType: Pro |
|||
DefaultImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Challenger.unity
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: c9bbf7d0dde227041810a4a02f84ddea |
|||
timeCreated: 1495746324 |
|||
licenseType: Pro |
|||
DefaultImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
8
MaterialGraphProject/Assets/Matt/CharacterRendering/Challenger/Challenger/LightingData.asset
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: ad8323c525acef4428c3fdbc19878373 |
|||
timeCreated: 1495750703 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 25800000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
v/1 channels chlist 7 B G R compression compression dataWindow box2i � displayWindow box2i � lineOrder lineOrder pixelAspectRatio float �?screenWindowCenter v2f screenWindowWidth float �? Y �* �r ޒ ]) 7 �������������������������������������������) B7 1G �I,�8�M4�8����?�s� ?��?������� ���?��<��������4������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������?����� ��8�4�8��<��4�M0�N4�M0��0��(��$�q�Q<��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������p�M\ �� �� ��n v}���+����p�p�� w� w���>������Pn�� ;TӀdN w� w�7 ;b������Cj� v�� uq@���(�W������ ;� ;����� v�������7 ;����% ;� ;�� �c�PN w� wq@᾿��� ;� ;��@�4�R� �� ��p�.� uZ����v� wa� w� w� tq7 ;>����� w� wY��;� w���' |