浏览代码
Merge branch 'hackweek2017' of https://github.com/stramit/MaterialGraph into hackweek2017
/main
Merge branch 'hackweek2017' of https://github.com/stramit/MaterialGraph into hackweek2017
/main
Florent Guinier
8 年前
当前提交
670f4bf3
共有 201 个文件被更改,包括 13035 次插入 和 193 次删除
-
1.gitignore
-
39MaterialGraphProject/Assets/Andre/Materials/Mat.mat
-
20MaterialGraphProject/Assets/Andre/Scenes/Andre_scene.unity
-
2MaterialGraphProject/Assets/Andre/Shaders/SlopeShader.ShaderGraph
-
2MaterialGraphProject/Assets/Andre/Shaders/TestingGraph.ShaderGraph
-
2MaterialGraphProject/Assets/Brandon/Cellular/Cellular.ShaderGraph
-
305MaterialGraphProject/Assets/Brandon/Cellular/Cellular.shader
-
4MaterialGraphProject/Assets/Brandon/Cellular/Cellular_Material.mat
-
2MaterialGraphProject/Assets/Florent/2Pass_Edited.ShaderGraph
-
128MaterialGraphProject/Assets/GeneratedShader.shader
-
2MaterialGraphProject/Assets/Matt/Examples/Anisotropy.ShaderGraph
-
9MaterialGraphProject/Assets/Matt/Examples/Anisotropy.mat
-
1MaterialGraphProject/Assets/NewNodes/WIP/AACheckerBoardNode.cs
-
138MaterialGraphProject/Assets/NewNodes/WIP/AnyNode.cs
-
2MaterialGraphProject/Assets/NewNodes/WIP/POMNode.cs
-
1MaterialGraphProject/Assets/NewNodes/WIP/RadialShearNode.cs
-
2MaterialGraphProject/Assets/NewNodes/WIP/ScaleOffsetNode.cs
-
2MaterialGraphProject/Assets/NewNodes/WIP/SphereWarpNode.cs
-
2MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Presenters/MaterialGraphPresenter.cs
-
2MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/AbstractMaterialNode.cs
-
2MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Input/SceneData/ScreenPosNode.cs
-
26MaterialGraphProject/Assets/Vlad/TextureAssetNode.cs
-
2MaterialGraphProject/Assets/_MingWai/GeneratedTextureDemo/0-UnityLogo-Mat.mat
-
189MaterialGraphProject/Assets/Andre/LavaFlowMap.shader
-
28MaterialGraphProject/Assets/Andre/LavaFlowMap.shader.meta
-
134MaterialGraphProject/Assets/Andre/LavaRock.shader
-
14MaterialGraphProject/Assets/Andre/LavaRock.shader.meta
-
9MaterialGraphProject/Assets/Andre/Meshes.meta
-
9MaterialGraphProject/Assets/Andre/Scenes/Lava.meta
-
399MaterialGraphProject/Assets/Andre/Scenes/Lava.unity
-
8MaterialGraphProject/Assets/Andre/Scenes/Lava.unity.meta
-
1MaterialGraphProject/Assets/Andre/Shaders/GreyToUV.ShaderGraph
-
9MaterialGraphProject/Assets/Andre/Shaders/GreyToUV.ShaderGraph.meta
-
1MaterialGraphProject/Assets/Andre/Shaders/LavaFlowMap.ShaderGraph
-
9MaterialGraphProject/Assets/Andre/Shaders/LavaFlowMap.ShaderGraph.meta
-
1MaterialGraphProject/Assets/Andre/Shaders/LavaRock.ShaderGraph
-
9MaterialGraphProject/Assets/Andre/Shaders/LavaRock.ShaderGraph.meta
-
407MaterialGraphProject/Assets/Andre/an_gradient.png
-
84MaterialGraphProject/Assets/Andre/an_gradient.png.meta
-
75MaterialGraphProject/Assets/Andre/ground_cracked_ground_basecolor.png.meta
-
75MaterialGraphProject/Assets/Andre/ground_cracked_ground_height.png.meta
-
1001MaterialGraphProject/Assets/Andre/ground_cracked_ground_roughness.png
-
75MaterialGraphProject/Assets/Andre/ground_cracked_ground_roughness.png.meta
-
29MaterialGraphProject/Assets/Florent/UnityEngine.MaterialGraph.ExportTextureMasterNode8e1be5fc-7506-4529-879d-f1ce8c5aab04.mat
-
9MaterialGraphProject/Assets/Matt/CharacterRendering.meta
-
960MaterialGraphProject/Assets/Matt/Examples/Anisotropy.shader
-
10MaterialGraphProject/Assets/Matt/Examples/Anisotropy.shader.meta
-
363MaterialGraphProject/Assets/Matt/Examples/Anisotropy.unity
-
8MaterialGraphProject/Assets/Matt/Examples/Anisotropy.unity.meta
-
69MaterialGraphProject/Assets/NewNodes/WIP/SphericalIndentationNode.cs
-
12MaterialGraphProject/Assets/NewNodes/WIP/SphericalIndentationNode.cs.meta
-
1MaterialGraphProject/Assets/SphereDent.ShaderGraph
-
9MaterialGraphProject/Assets/SphereDent.ShaderGraph.meta
-
1001MaterialGraphProject/Assets/TestAssets/Lava_flowmap.png
-
84MaterialGraphProject/Assets/TestAssets/Lava_flowmap.png.meta
-
65MaterialGraphProject/Assets/TestAssets/RockMaterial1.sbsar.meta
-
244MaterialGraphProject/Assets/TestAssets/portrait_mask.png
-
84MaterialGraphProject/Assets/TestAssets/portrait_mask.png.meta
-
52MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Presenters/SamplerAssetPresenter.cs
-
12MaterialGraphProject/Assets/UnityShaderEditor/Editor/Drawing/Presenters/SamplerAssetPresenter.cs.meta
-
136MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Input/Texture/SamplerAssetNode.cs
-
8MaterialGraphProject/Assets/UnityShaderEditor/Runtime/Nodes/Input/Texture/SamplerAssetNode.cs.meta
-
44MaterialGraphProject/Assets/_MingWai/Gradient.asset
-
9MaterialGraphProject/Assets/_MingWai/Gradient.asset.meta
-
101MaterialGraphProject/Assets/_MingWai/GradientShader.shader
-
10MaterialGraphProject/Assets/_MingWai/GradientShader.shader.meta
-
1MaterialGraphProject/Assets/_MingWai/GradientTexture.ShaderGraph
-
9MaterialGraphProject/Assets/_MingWai/GradientTexture.ShaderGraph.meta
-
21MaterialGraphProject/Assets/_MingWai/UnityEngine.MaterialGraph.ExportTextureMasterNodee933fd86-9b63-40a2-9321-e857830b2339.mat
-
9MaterialGraphProject/Assets/_MingWai/UnityEngine.MaterialGraph.ExportTextureMasterNodee933fd86-9b63-40a2-9321-e857830b2339.mat.meta
-
9MaterialGraphProject/Assets/snow.meta
-
1001MaterialGraphProject/Assets/Andre/Meshes/Lava.fbx
-
158MaterialGraphProject/Assets/Andre/Meshes/Lava.fbx.meta
-
9MaterialGraphProject/Assets/Andre/Meshes/Materials.meta
-
75MaterialGraphProject/Assets/Andre/Meshes/Materials/Border.mat
-
9MaterialGraphProject/Assets/Andre/Meshes/Materials/Border.mat.meta
-
116MaterialGraphProject/Assets/Andre/Meshes/Materials/Lava.mat
-
9MaterialGraphProject/Assets/Andre/Meshes/Materials/Lava.mat.meta
-
125MaterialGraphProject/Assets/Andre/Meshes/Materials/RockLava.mat
-
9MaterialGraphProject/Assets/Andre/Meshes/Materials/RockLava.mat.meta
-
633MaterialGraphProject/Assets/Andre/Scenes/Lava/LightingData.asset
-
9MaterialGraphProject/Assets/Andre/Scenes/Lava/LightingData.asset.meta
-
790MaterialGraphProject/Assets/Andre/Scenes/Lava/ReflectionProbe-0.exr
-
76MaterialGraphProject/Assets/Andre/Scenes/Lava/ReflectionProbe-0.exr.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
2
MaterialGraphProject/Assets/Andre/Shaders/SlopeShader.ShaderGraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
2
MaterialGraphProject/Assets/Andre/Shaders/TestingGraph.ShaderGraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
2
MaterialGraphProject/Assets/Brandon/Cellular/Cellular.ShaderGraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
Shader "Brandon/Cellular" |
|||
Shader "Brandon/Cellular" |
|||
Properties |
|||
{ |
|||
Properties |
|||
{ |
|||
Texture_b86ff54c_bbe9_4694_8531_326cc9640f0b_Uniform("Texture", 2D) = "white" {} |
|||
} |
|||
} |
|||
|
|||
SubShader |
|||
{ |
|||
Tags |
|||
{ |
|||
"RenderType"="Opaque" |
|||
"Queue"="Geometry" |
|||
} |
|||
SubShader |
|||
{ |
|||
Tags |
|||
{ |
|||
"RenderType" = "Opaque" |
|||
"Queue" = "Geometry" |
|||
} |
|||
Blend One Zero |
|||
Blend One Zero |
|||
Cull Back |
|||
Cull Back |
|||
ZTest LEqual |
|||
ZTest LEqual |
|||
ZWrite On |
|||
ZWrite On |
|||
LOD 200 |
|||
|
|||
CGPROGRAM |
|||
#pragma target 3.0 |
|||
#pragma surface surf Standard vertex:vert |
|||
#pragma glsl |
|||
#pragma debug |
|||
LOD 200 |
|||
sampler2D Texture_b86ff54c_bbe9_4694_8531_326cc9640f0b_Uniform; |
|||
CGPROGRAM |
|||
#pragma target 3.0 |
|||
#pragma surface surf Standard vertex:vert |
|||
#pragma glsl |
|||
#pragma debug |
|||
|
|||
|
|||
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_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_spherize_float (float2 uv, float2 position, float2 radiusAndStrength) |
|||
{ |
|||
float2 fromUVToPoint = position - uv; |
|||
float dist = length(fromUVToPoint); |
|||
float mag = ((1.0 - (dist / radiusAndStrength.x)) * radiusAndStrength.y) * step(dist, radiusAndStrength.x); |
|||
return uv + (mag * fromUVToPoint); |
|||
} |
|||
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; |
|||
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 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); |
|||
float Vector1_514d9c2d_f80f_4ffd_824e_58e3f2d8a162_Uniform = 1; |
|||
o.Emission = RGBtoLinear_b45ced7c_417b_406b_9524_9699354a5af9_Output; |
|||
o.Alpha = Vector1_514d9c2d_f80f_4ffd_824e_58e3f2d8a162_Uniform; |
|||
} |
|||
|
|||
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 Sin_b1ddf0e6_502c_4513_9a06_d60c0f84e7e7_Output = sin (_Time.y); |
|||
float Absolute_fca0185b_603c_4c3f_a7d7_20003e1bfbf1_Output = abs (Sin_b1ddf0e6_502c_4513_9a06_d60c0f84e7e7_Output); |
|||
float Lerp_6aff06be_b078_46b9_a5d9_131ef80392d8_Output = lerp (1, 20, Absolute_fca0185b_603c_4c3f_a7d7_20003e1bfbf1_Output); |
|||
float Vector1_09cb6502_ddcd_40fa_a9c4_80a8217e6532_Uniform = 0.5; |
|||
float4 Combine_27399d01_fcb9_4ec2_8c0e_864fa09b5aa3_Output = float4(Lerp_6aff06be_b078_46b9_a5d9_131ef80392d8_Output,Vector1_09cb6502_ddcd_40fa_a9c4_80a8217e6532_Uniform,0.0, 0.0); |
|||
float2 Spherize_fe87ab04_d3e2_4b06_93f6_ea59773ab7eb_Output = unity_spherize_float (Remap_e2de5e87_5108_4e55_91d0_202c89bfdc77_Output, float2 (0,0), Combine_27399d01_fcb9_4ec2_8c0e_864fa09b5aa3_Output); |
|||
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 (Spherize_fe87ab04_d3e2_4b06_93f6_ea59773ab7eb_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 |
|||
} |
|||
} |
|||
ENDCG |
|||
} |
|||
FallBack "Diffuse" |
|||
CustomEditor "LegacyIlluminShaderGUI" |
|||
FallBack "Diffuse" |
|||
CustomEditor "LegacyIlluminShaderGUI" |
|||
} |
2
MaterialGraphProject/Assets/Florent/2Pass_Edited.ShaderGraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
2
MaterialGraphProject/Assets/Matt/Examples/Anisotropy.ShaderGraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
Shader "Custom/LavaFlowMap" |
|||
{ |
|||
Properties |
|||
{ |
|||
Texture_f6eb7ab6_0df6_4d1f_a833_847f9eefa1ce_Uniform("Texture", 2D) = "white" {} |
|||
Vector1_48a064e9_29c4_4cdd_8bf7_34902bb50605_Uniform("Vector1", Float) = 1 |
|||
Texture_aa489395_d5b1_4bce_a08c_71ce4329894d_Uniform("albedo2", 2D) = "white" {} |
|||
Texture_8304e17f_0ca3_45b8_9081_4e083e4ffba7_Uniform("albedo", 2D) = "white" {} |
|||
Texture_73d7755c_9da7_46d2_90c6_35c2a880d380_Uniform("Normal2", 2D) = "bump" {} |
|||
Texture_d6d1ed65_5575_444c_8f92_38740ace2353_Uniform("Normal", 2D) = "bump" {} |
|||
[HDR]Color_0cf876a7_4590_4973_82b7_3f878b008b3c_Uniform("LavaColor1", Color) = (2,1.365517,0,0) |
|||
[HDR]Color_d1ecd429_6e84_47b1_903b_60f454b7d326_Uniform("LavaColor2", Color) = (0,0,0,0) |
|||
Texture_c384b973_02cf_4076_96d9_302f320a2dd5_Uniform("height1", 2D) = "white" {} |
|||
Texture_3cc862ff_e5c3_40c2_a0f2_895da84195ea_Uniform("height", 2D) = "white" {} |
|||
Vector1_2fa9bd83_0823_4530_9787_f0fab2f47430_Uniform("LavaAmount", Range(0, 8)) = 0.2 |
|||
Texture_ead3f7f8_56e5_41f9_8217_555fb21e0536_Uniform("roughness1", 2D) = "white" {} |
|||
Texture_9dcd98df_78a5_4ad3_83dd_e3c00c88f898_Uniform("roughness", 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_f6eb7ab6_0df6_4d1f_a833_847f9eefa1ce_Uniform; |
|||
float Vector1_48a064e9_29c4_4cdd_8bf7_34902bb50605_Uniform; |
|||
sampler2D Texture_aa489395_d5b1_4bce_a08c_71ce4329894d_Uniform; |
|||
sampler2D Texture_8304e17f_0ca3_45b8_9081_4e083e4ffba7_Uniform; |
|||
sampler2D Texture_73d7755c_9da7_46d2_90c6_35c2a880d380_Uniform; |
|||
sampler2D Texture_d6d1ed65_5575_444c_8f92_38740ace2353_Uniform; |
|||
float4 Color_0cf876a7_4590_4973_82b7_3f878b008b3c_Uniform; |
|||
float4 Color_d1ecd429_6e84_47b1_903b_60f454b7d326_Uniform; |
|||
sampler2D Texture_c384b973_02cf_4076_96d9_302f320a2dd5_Uniform; |
|||
sampler2D Texture_3cc862ff_e5c3_40c2_a0f2_895da84195ea_Uniform; |
|||
float Vector1_2fa9bd83_0823_4530_9787_f0fab2f47430_Uniform; |
|||
sampler2D Texture_ead3f7f8_56e5_41f9_8217_555fb21e0536_Uniform; |
|||
sampler2D Texture_9dcd98df_78a5_4ad3_83dd_e3c00c88f898_Uniform; |
|||
|
|||
inline float4 unity_multiply_float (float4 arg1, float4 arg2) |
|||
{ |
|||
return arg1 * arg2; |
|||
} |
|||
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 float unity_multiply_float (float arg1, float arg2) |
|||
{ |
|||
return arg1 * arg2; |
|||
} |
|||
inline float4 unity_add_float (float4 arg1, float4 arg2) |
|||
{ |
|||
return arg1 + arg2; |
|||
} |
|||
inline float unity_add_float (float arg1, float arg2) |
|||
{ |
|||
return arg1 + arg2; |
|||
} |
|||
inline float unity_subtract_float (float arg1, float arg2) |
|||
{ |
|||
return arg1 - arg2; |
|||
} |
|||
inline float unity_div_float (float arg1, float arg2) |
|||
{ |
|||
return arg1 / arg2; |
|||
} |
|||
inline float3 unity_multiply_float (float3 arg1, float3 arg2) |
|||
{ |
|||
return arg1 * arg2; |
|||
} |
|||
inline float unity_fresnel_float (float3 arg1, float3 arg2) |
|||
{ |
|||
return (1.0 - dot (normalize (arg1), normalize (arg2))); |
|||
} |
|||
inline float unity_remap_float (float arg1, float2 arg2, float2 arg3) |
|||
{ |
|||
return arg3.x + (arg1 - arg2.x) * (arg3.y - arg3.x) / (arg2.y - arg2.x); |
|||
} |
|||
inline float4 unity_oneminus_float (float4 arg1) |
|||
{ |
|||
return arg1 * -1 + 1; |
|||
} |
|||
|
|||
|
|||
|
|||
struct Input |
|||
{ |
|||
float4 color : COLOR; |
|||
half4 meshUV0; |
|||
float3 worldViewDir; |
|||
float3 worldNormal; |
|||
INTERNAL_DATA |
|||
|
|||
}; |
|||
|
|||
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 worldSpaceViewDirection = IN.worldViewDir; |
|||
float3 worldSpaceNormal = normalize(IN.worldNormal); |
|||
float4 vertexColor = IN.color; |
|||
float4 UV_f421b42f_c4ee_429e_b708_74f20b521d0c_UV = uv0; |
|||
float4 Multiply_93b72a87_aa02_4d7f_9532_2ce43a75a0cb_Output = unity_multiply_float (UV_f421b42f_c4ee_429e_b708_74f20b521d0c_UV, float4 (5,5,0,0)); |
|||
float4 Texture_f6eb7ab6_0df6_4d1f_a833_847f9eefa1ce = tex2D (Texture_f6eb7ab6_0df6_4d1f_a833_847f9eefa1ce_Uniform, uv0.xy); |
|||
float4 Remap_aa8e6b93_bde3_46fc_a9bf_2aa8880b8f30_Output = unity_remap_float (Texture_f6eb7ab6_0df6_4d1f_a833_847f9eefa1ce, float2 (0,1), float2 (-0.5,0.5)); |
|||
float Vector1_6c65527e_4c6d_48e7_bf72_8c3a97b082f5_Uniform = 0.5; |
|||
float Multiply_5fe876ca_d791_427b_a60a_c365e6ae4f53_Output = unity_multiply_float (Vector1_6c65527e_4c6d_48e7_bf72_8c3a97b082f5_Uniform, -1); |
|||
float4 Multiply_5ae7596c_dc8a_4b33_bf11_ddcabb17d929_Output = unity_multiply_float (Remap_aa8e6b93_bde3_46fc_a9bf_2aa8880b8f30_Output, Multiply_5fe876ca_d791_427b_a60a_c365e6ae4f53_Output); |
|||
float Multiply_5c580d9b_a1d8_4816_8b3d_a5b541a5334b_Output = unity_multiply_float (_Time.x, Vector1_48a064e9_29c4_4cdd_8bf7_34902bb50605_Uniform); |
|||
float Fraction_15f91423_9b19_4442_81b7_9ed97ebc72ea_Output = frac (Multiply_5c580d9b_a1d8_4816_8b3d_a5b541a5334b_Output); |
|||
float4 Multiply_63fe984c_5505_4dd9_b1fd_64e3fbdac2b0_Output = unity_multiply_float (Multiply_5ae7596c_dc8a_4b33_bf11_ddcabb17d929_Output, Fraction_15f91423_9b19_4442_81b7_9ed97ebc72ea_Output); |
|||
float4 Add_a918ad87_b512_4228_a79e_9fed664eb31f_Output = unity_add_float (Multiply_93b72a87_aa02_4d7f_9532_2ce43a75a0cb_Output, Multiply_63fe984c_5505_4dd9_b1fd_64e3fbdac2b0_Output); |
|||
float4 Texture_aa489395_d5b1_4bce_a08c_71ce4329894d = tex2D (Texture_aa489395_d5b1_4bce_a08c_71ce4329894d_Uniform, (Add_a918ad87_b512_4228_a79e_9fed664eb31f_Output.xy)); |
|||
float Vector1_f869c62d_74bf_4d98_8baf_297a55e8befb_Uniform = 0.5; |
|||
float Add_375a7a99_064f_4492_9b30_d700e08720e0_Output = unity_add_float (Multiply_5c580d9b_a1d8_4816_8b3d_a5b541a5334b_Output, Vector1_f869c62d_74bf_4d98_8baf_297a55e8befb_Uniform); |
|||
float Fraction_cd46bddb_f4c6_4d60_988c_74fac46174af_Output = frac (Add_375a7a99_064f_4492_9b30_d700e08720e0_Output); |
|||
float4 Multiply_ef182c2b_4e87_43f6_9362_549430c80ccf_Output = unity_multiply_float (Multiply_5ae7596c_dc8a_4b33_bf11_ddcabb17d929_Output, Fraction_cd46bddb_f4c6_4d60_988c_74fac46174af_Output); |
|||
float4 Add_f68bff29_c2ff_46d2_a4ab_43258df5a4dc_Output = unity_add_float (Multiply_93b72a87_aa02_4d7f_9532_2ce43a75a0cb_Output, Multiply_ef182c2b_4e87_43f6_9362_549430c80ccf_Output); |
|||
float4 Texture_8304e17f_0ca3_45b8_9081_4e083e4ffba7 = tex2D (Texture_8304e17f_0ca3_45b8_9081_4e083e4ffba7_Uniform, (Add_f68bff29_c2ff_46d2_a4ab_43258df5a4dc_Output.xy)); |
|||
float Subtract_4acb9ef9_e7c7_4c66_8511_4b34c15bc1a8_Output = unity_subtract_float (0.5, Fraction_15f91423_9b19_4442_81b7_9ed97ebc72ea_Output); |
|||
float Divide_5514c159_af5d_493a_8b87_5c2cc7d20b20_Output = unity_div_float (Subtract_4acb9ef9_e7c7_4c66_8511_4b34c15bc1a8_Output, 0.5); |
|||
float Absolute_4a921b1d_1662_4268_9fcb_85b03bac472c_Output = abs (Divide_5514c159_af5d_493a_8b87_5c2cc7d20b20_Output); |
|||
float4 Lerp_95004cc7_3bfc_4e0a_ac12_0d8b65401649_Output = lerp (Texture_aa489395_d5b1_4bce_a08c_71ce4329894d, Texture_8304e17f_0ca3_45b8_9081_4e083e4ffba7, Absolute_4a921b1d_1662_4268_9fcb_85b03bac472c_Output); |
|||
float4 Texture_73d7755c_9da7_46d2_90c6_35c2a880d380 = float4(UnpackNormal(tex2D (Texture_73d7755c_9da7_46d2_90c6_35c2a880d380_Uniform, (Add_a918ad87_b512_4228_a79e_9fed664eb31f_Output.xy))), 0); |
|||
float4 Texture_d6d1ed65_5575_444c_8f92_38740ace2353 = float4(UnpackNormal(tex2D (Texture_d6d1ed65_5575_444c_8f92_38740ace2353_Uniform, (Add_f68bff29_c2ff_46d2_a4ab_43258df5a4dc_Output.xy))), 0); |
|||
float4 Lerp_d1772cb2_840c_40e0_a6bd_22bfffc1278b_Output = lerp (Texture_73d7755c_9da7_46d2_90c6_35c2a880d380, Texture_d6d1ed65_5575_444c_8f92_38740ace2353, Absolute_4a921b1d_1662_4268_9fcb_85b03bac472c_Output); |
|||
float3 Vector3_894929cf_cdbf_4a9f_8bfb_78efb02ec5bf_Uniform = float3 (0.5, 0.5, 1); |
|||
float3 Multiply_a87468aa_7978_4ec7_ada1_872f58bfbf06_Output = unity_multiply_float (Lerp_d1772cb2_840c_40e0_a6bd_22bfffc1278b_Output, Vector3_894929cf_cdbf_4a9f_8bfb_78efb02ec5bf_Uniform); |
|||
float Fresnel_ff56ea0d_187e_4d44_9aba_20a2636d6e20_Output = unity_fresnel_float (worldSpaceViewDirection, worldSpaceNormal); |
|||
float4 Lerp_39312fa9_94de_4ace_9379_60e45e762b77_Output = lerp (Color_0cf876a7_4590_4973_82b7_3f878b008b3c_Uniform, Color_d1ecd429_6e84_47b1_903b_60f454b7d326_Uniform, Fresnel_ff56ea0d_187e_4d44_9aba_20a2636d6e20_Output); |
|||
float4 Remap_df9ad0c1_bc7d_4218_ba2f_4b54dc89e064_Output = unity_remap_float (vertexColor, float2 (0,1), float2 (0.8,0.25)); |
|||
float4 Split_7877a754_c5e4_44e2_8b95_1faeef76c45c = float4(Remap_df9ad0c1_bc7d_4218_ba2f_4b54dc89e064_Output); |
|||
float Add_1a3abf95_b10a_4c93_8c80_0829ccd86807_Output = unity_add_float (Split_7877a754_c5e4_44e2_8b95_1faeef76c45c.r, Split_7877a754_c5e4_44e2_8b95_1faeef76c45c.g); |
|||
float4 Texture_c384b973_02cf_4076_96d9_302f320a2dd5 = tex2D (Texture_c384b973_02cf_4076_96d9_302f320a2dd5_Uniform, (Add_a918ad87_b512_4228_a79e_9fed664eb31f_Output.xy)); |
|||
float4 Texture_3cc862ff_e5c3_40c2_a0f2_895da84195ea = tex2D (Texture_3cc862ff_e5c3_40c2_a0f2_895da84195ea_Uniform, (Add_f68bff29_c2ff_46d2_a4ab_43258df5a4dc_Output.xy)); |
|||
float Lerp_e4ffbd80_7aeb_4ffd_959e_b42c0fddb434_Output = lerp (Texture_c384b973_02cf_4076_96d9_302f320a2dd5.r, Texture_3cc862ff_e5c3_40c2_a0f2_895da84195ea.r, Absolute_4a921b1d_1662_4268_9fcb_85b03bac472c_Output); |
|||
float Add_4e09ff76_d920_4322_8317_8f6fa3108ddd_Output = unity_add_float (Add_1a3abf95_b10a_4c93_8c80_0829ccd86807_Output, Lerp_e4ffbd80_7aeb_4ffd_959e_b42c0fddb434_Output); |
|||
float Vector1_db502ab1_b257_430a_8eac_4c2fb63f5cf1_Uniform = 0; |
|||
float4 Combine_c3f75c44_cd2d_4870_9d30_77d318dabf43_Output = float4(Vector1_db502ab1_b257_430a_8eac_4c2fb63f5cf1_Uniform,Vector1_2fa9bd83_0823_4530_9787_f0fab2f47430_Uniform,0.0, 0.0); |
|||
float Remap_278d7df3_8782_4bb9_b51e_211bc43b2f8c_Output = unity_remap_float (Add_4e09ff76_d920_4322_8317_8f6fa3108ddd_Output, Combine_c3f75c44_cd2d_4870_9d30_77d318dabf43_Output, float2 (3,0)); |
|||
float Clamp_4d130bfe_d56f_4a72_896b_f91a292682e0_Output = clamp (Remap_278d7df3_8782_4bb9_b51e_211bc43b2f8c_Output, 0, 1); |
|||
float4 Combine_b7ee0905_6d7c_437c_bb78_9f4059c9073c_Output = float4(Clamp_4d130bfe_d56f_4a72_896b_f91a292682e0_Output,Clamp_4d130bfe_d56f_4a72_896b_f91a292682e0_Output,Clamp_4d130bfe_d56f_4a72_896b_f91a292682e0_Output,0.0); |
|||
float4 Multiply_f1276058_6b35_46b7_bd96_3b0e94ea899e_Output = unity_multiply_float (Lerp_39312fa9_94de_4ace_9379_60e45e762b77_Output, Combine_b7ee0905_6d7c_437c_bb78_9f4059c9073c_Output); |
|||
float4 Texture_ead3f7f8_56e5_41f9_8217_555fb21e0536 = tex2D (Texture_ead3f7f8_56e5_41f9_8217_555fb21e0536_Uniform, (Add_a918ad87_b512_4228_a79e_9fed664eb31f_Output.xy)); |
|||
float4 Texture_9dcd98df_78a5_4ad3_83dd_e3c00c88f898 = tex2D (Texture_9dcd98df_78a5_4ad3_83dd_e3c00c88f898_Uniform, (Add_f68bff29_c2ff_46d2_a4ab_43258df5a4dc_Output.xy)); |
|||
float4 Lerp_fe1290fe_9261_45ed_9be5_b48e9e797683_Output = lerp (Texture_ead3f7f8_56e5_41f9_8217_555fb21e0536, Texture_9dcd98df_78a5_4ad3_83dd_e3c00c88f898, Absolute_4a921b1d_1662_4268_9fcb_85b03bac472c_Output); |
|||
float4 OneMinus_66f9602e_9e86_48b0_9a92_559c310b6958_Output = unity_oneminus_float (Lerp_fe1290fe_9261_45ed_9be5_b48e9e797683_Output); |
|||
o.Albedo = Lerp_95004cc7_3bfc_4e0a_ac12_0d8b65401649_Output; |
|||
o.Normal = Multiply_a87468aa_7978_4ec7_ada1_872f58bfbf06_Output; |
|||
o.Normal += 1e-6; |
|||
o.Emission = Multiply_f1276058_6b35_46b7_bd96_3b0e94ea899e_Output; |
|||
o.Smoothness = OneMinus_66f9602e_9e86_48b0_9a92_559c310b6958_Output; |
|||
|
|||
} |
|||
ENDCG |
|||
} |
|||
|
|||
|
|||
FallBack "Diffuse" |
|||
CustomEditor "LegacyIlluminShaderGUI" |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: cb267e18a2bfb48199dd718e33eb9f9b |
|||
timeCreated: 1495756524 |
|||
licenseType: Pro |
|||
ShaderImporter: |
|||
defaultTextures: |
|||
- Texture_f6eb7ab6_0df6_4d1f_a833_847f9eefa1ce_Uniform: {fileID: 2800000, guid: 8a17a00c2a071472cb92f6911bb7be11, |
|||
type: 3} |
|||
- Texture_aa489395_d5b1_4bce_a08c_71ce4329894d_Uniform: {fileID: 2800000, guid: 330f42016073a97418a4aae5517e32c8, |
|||
type: 3} |
|||
- Texture_8304e17f_0ca3_45b8_9081_4e083e4ffba7_Uniform: {fileID: 2800000, guid: 330f42016073a97418a4aae5517e32c8, |
|||
type: 3} |
|||
- Texture_73d7755c_9da7_46d2_90c6_35c2a880d380_Uniform: {fileID: 2800000, guid: 5a5e07ee958edbd468227e1d9ac4726a, |
|||
type: 3} |
|||
- Texture_d6d1ed65_5575_444c_8f92_38740ace2353_Uniform: {fileID: 2800000, guid: 5a5e07ee958edbd468227e1d9ac4726a, |
|||
type: 3} |
|||
- Texture_c384b973_02cf_4076_96d9_302f320a2dd5_Uniform: {fileID: 2800000, guid: a653bbc25cc7e4794829cf7b1184abcb, |
|||
type: 3} |
|||
- Texture_3cc862ff_e5c3_40c2_a0f2_895da84195ea_Uniform: {fileID: 2800000, guid: a653bbc25cc7e4794829cf7b1184abcb, |
|||
type: 3} |
|||
- Texture_ead3f7f8_56e5_41f9_8217_555fb21e0536_Uniform: {fileID: 2800000, guid: 9d64a9e7ca6864704ae6b8ca7afc9d85, |
|||
type: 3} |
|||
- Texture_9dcd98df_78a5_4ad3_83dd_e3c00c88f898_Uniform: {fileID: 2800000, guid: 9d64a9e7ca6864704ae6b8ca7afc9d85, |
|||
type: 3} |
|||
nonModifiableTextures: [] |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
Shader "Custom/LavaRock" |
|||
{ |
|||
Properties |
|||
{ |
|||
Texture_a6eb1bfb_6ea7_4e0b_bfc1_c9e0ed434f76_Uniform("Albedo", 2D) = "white" {} |
|||
Texture_df5248d2_ffaf_4f62_9322_5575ac4818d0_Uniform("Normal", 2D) = "bump" {} |
|||
[HDR]Color_11e7c6f6_9284_4d76_bfbf_3a1eced790b6_Uniform("Color", Color) = (2,0.5379311,0,1) |
|||
|
|||
} |
|||
|
|||
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_a6eb1bfb_6ea7_4e0b_bfc1_c9e0ed434f76_Uniform; |
|||
sampler2D Texture_df5248d2_ffaf_4f62_9322_5575ac4818d0_Uniform; |
|||
float4 Color_11e7c6f6_9284_4d76_bfbf_3a1eced790b6_Uniform; |
|||
|
|||
inline float unity_remap_float (float arg1, float2 arg2, float2 arg3) |
|||
{ |
|||
return arg3.x + (arg1 - arg2.x) * (arg3.y - arg3.x) / (arg2.y - arg2.x); |
|||
} |
|||
inline float4 unity_multiply_float (float4 arg1, float4 arg2) |
|||
{ |
|||
return arg1 * arg2; |
|||
} |
|||
inline float unity_noise_randomValue (float2 uv) |
|||
{ |
|||
return frac(sin(dot(uv, float2(12.9898, 78.233)))*43758.5453); |
|||
} |
|||
inline float unity_noise_interpolate (float a, float b, float t) |
|||
{ |
|||
return (1.0-t)*a + (t*b); |
|||
} |
|||
inline float unity_valueNoise (float2 uv) |
|||
{ |
|||
float2 i = floor(uv); |
|||
float2 f = frac(uv); |
|||
f = f * f * (3.0 - 2.0 * f); |
|||
uv = abs(frac(uv) - 0.5); |
|||
float2 c0 = i + float2(0.0, 0.0); |
|||
float2 c1 = i + float2(1.0, 0.0); |
|||
float2 c2 = i + float2(0.0, 1.0); |
|||
float2 c3 = i + float2(1.0, 1.0); |
|||
float r0 = unity_noise_randomValue(c0); |
|||
float r1 = unity_noise_randomValue(c1); |
|||
float r2 = unity_noise_randomValue(c2); |
|||
float r3 = unity_noise_randomValue(c3); |
|||
float bottomOfGrid = unity_noise_interpolate(r0, r1, f.x); |
|||
float topOfGrid = unity_noise_interpolate(r2, r3, f.x); |
|||
float t = unity_noise_interpolate(bottomOfGrid, topOfGrid, f.y); |
|||
return t; |
|||
} |
|||
inline float unity_noise_float (float2 uv) |
|||
{ |
|||
float t = 0.0; |
|||
for(int i = 0; i < 3; i++) |
|||
{ |
|||
float freq = pow(2.0, float(i)); |
|||
float amp = pow(0.5, float(3-i)); |
|||
t += unity_valueNoise(float2(uv.x/freq, uv.y/freq))*amp; |
|||
} |
|||
return t; |
|||
} |
|||
inline float unity_add_float (float arg1, float arg2) |
|||
{ |
|||
return arg1 + arg2; |
|||
} |
|||
|
|||
|
|||
|
|||
struct Input |
|||
{ |
|||
float4 color : COLOR; |
|||
half4 meshUV0; |
|||
float3 worldPos; |
|||
|
|||
}; |
|||
|
|||
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 worldPosition = IN.worldPos; |
|||
float4 Texture_a6eb1bfb_6ea7_4e0b_bfc1_c9e0ed434f76 = tex2D (Texture_a6eb1bfb_6ea7_4e0b_bfc1_c9e0ed434f76_Uniform, uv0.xy); |
|||
float4 Texture_df5248d2_ffaf_4f62_9322_5575ac4818d0 = float4(UnpackNormal(tex2D (Texture_df5248d2_ffaf_4f62_9322_5575ac4818d0_Uniform, uv0.xy)), 0); |
|||
float4 Split_71e36b70_b3f9_4f61_afdb_1c781b2fcd97 = float4(worldPosition, 1.0); |
|||
float Remap_c59de931_587b_4bd5_8442_b14cce0a0208_Output = unity_remap_float (Split_71e36b70_b3f9_4f61_afdb_1c781b2fcd97.g, float2 (-0.28,0.07), float2 (0.97,-0.61)); |
|||
float4 Combine_6e51fc05_a66b_4b70_8024_a68288e35b69_Output = float4(Split_71e36b70_b3f9_4f61_afdb_1c781b2fcd97.r,Split_71e36b70_b3f9_4f61_afdb_1c781b2fcd97.b,0.0, 0.0); |
|||
float4 Multiply_83fd2441_1d6a_4f28_8ee0_65576c6ed07f_Output = unity_multiply_float (Combine_6e51fc05_a66b_4b70_8024_a68288e35b69_Output, float4 (100,100,0,0)); |
|||
float Noise_56e06f3e_5014_4678_b1bf_2c92a67f4952_Output = unity_noise_float (Multiply_83fd2441_1d6a_4f28_8ee0_65576c6ed07f_Output); |
|||
float Add_90f8adc1_246d_42c3_86fb_812d9895dd2b_Output = unity_add_float (Remap_c59de931_587b_4bd5_8442_b14cce0a0208_Output, Noise_56e06f3e_5014_4678_b1bf_2c92a67f4952_Output); |
|||
float Clamp_15b0b059_9349_429e_b7b8_47acccc69d45_Output = clamp (Add_90f8adc1_246d_42c3_86fb_812d9895dd2b_Output, 0, 1); |
|||
float4 Multiply_48befeb5_6a8f_4ad2_a0bc_86af5b21d5c4_Output = unity_multiply_float (Color_11e7c6f6_9284_4d76_bfbf_3a1eced790b6_Uniform, Clamp_15b0b059_9349_429e_b7b8_47acccc69d45_Output); |
|||
o.Albedo = Texture_a6eb1bfb_6ea7_4e0b_bfc1_c9e0ed434f76; |
|||
o.Normal = Texture_df5248d2_ffaf_4f62_9322_5575ac4818d0; |
|||
o.Normal += 1e-6; |
|||
o.Emission = Multiply_48befeb5_6a8f_4ad2_a0bc_86af5b21d5c4_Output; |
|||
|
|||
} |
|||
ENDCG |
|||
} |
|||
|
|||
|
|||
FallBack "Diffuse" |
|||
CustomEditor "LegacyIlluminShaderGUI" |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 9506a3443882e4345a7bf1a0e103ae3e |
|||
timeCreated: 1495757448 |
|||
licenseType: Pro |
|||
ShaderImporter: |
|||
defaultTextures: |
|||
- Texture_a6eb1bfb_6ea7_4e0b_bfc1_c9e0ed434f76_Uniform: {fileID: 2800000, guid: 84462bdfeee9d694bbebf34e5f3faa74, |
|||
type: 3} |
|||
- Texture_df5248d2_ffaf_4f62_9322_5575ac4818d0_Uniform: {fileID: 2800000, guid: aa460a2956f927d4ab684aa4970bf76a, |
|||
type: 3} |
|||
nonModifiableTextures: [] |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 41db8b52004fd4fa3adcd157caa3d17f |
|||
folderAsset: yes |
|||
timeCreated: 1495749720 |
|||
licenseType: Pro |
|||
DefaultImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 28953496d3e8842a4961989e0e4ad2c9 |
|||
folderAsset: yes |
|||
timeCreated: 1495755068 |
|||
licenseType: Pro |
|||
DefaultImporter: |
|||
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.12735108, g: 0.13419528, b: 0.12115393, 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: 0 |
|||
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: 112000034, guid: 3590b96a6c1c8427191dc231f84f7919, |
|||
type: 2} |
|||
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 &59579813 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 59579815} |
|||
- component: {fileID: 59579814} |
|||
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 &59579814 |
|||
Light: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 59579813} |
|||
m_Enabled: 0 |
|||
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 &59579815 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 59579813} |
|||
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} |
|||
--- !u!1001 &1547970701 |
|||
Prefab: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
m_Modification: |
|||
m_TransformParent: {fileID: 0} |
|||
m_Modifications: |
|||
- target: {fileID: 400000, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_LocalPosition.x |
|||
value: -0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 400000, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_LocalPosition.y |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 400000, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_LocalPosition.z |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 400000, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_LocalRotation.x |
|||
value: 0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 400000, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_LocalRotation.y |
|||
value: -0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 400000, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_LocalRotation.z |
|||
value: -0 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 400000, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_LocalRotation.w |
|||
value: 1 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 400000, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_RootOrder |
|||
value: 2 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 100002, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_StaticEditorFlags |
|||
value: 4294967295 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 100026, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_StaticEditorFlags |
|||
value: 4294967295 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 100006, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_StaticEditorFlags |
|||
value: 4294967295 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 100018, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_StaticEditorFlags |
|||
value: 4294967295 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 100016, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_StaticEditorFlags |
|||
value: 4294967295 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 100020, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_StaticEditorFlags |
|||
value: 4294967295 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 100032, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_StaticEditorFlags |
|||
value: 4294967295 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 100004, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_StaticEditorFlags |
|||
value: 4294967295 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 100008, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_StaticEditorFlags |
|||
value: 4294967295 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 100000, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_StaticEditorFlags |
|||
value: 4294967295 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 100022, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_StaticEditorFlags |
|||
value: 4294967295 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 100024, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_StaticEditorFlags |
|||
value: 4294967295 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 100030, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_StaticEditorFlags |
|||
value: 4294967295 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 100034, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_StaticEditorFlags |
|||
value: 4294967295 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 100028, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_StaticEditorFlags |
|||
value: 4294967295 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 100010, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_StaticEditorFlags |
|||
value: 4294967295 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 100014, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_StaticEditorFlags |
|||
value: 4294967295 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 100012, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_StaticEditorFlags |
|||
value: 4294967295 |
|||
objectReference: {fileID: 0} |
|||
- target: {fileID: 100036, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
propertyPath: m_StaticEditorFlags |
|||
value: 4294967295 |
|||
objectReference: {fileID: 0} |
|||
m_RemovedComponents: [] |
|||
m_ParentPrefab: {fileID: 100100000, guid: f3a76c41447b84daabaa84848510464d, type: 3} |
|||
m_IsPrefabParent: 0 |
|||
--- !u!1 &1717210254 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 1717210259} |
|||
- component: {fileID: 1717210258} |
|||
- component: {fileID: 1717210257} |
|||
- component: {fileID: 1717210256} |
|||
- component: {fileID: 1717210255} |
|||
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 &1717210255 |
|||
AudioListener: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1717210254} |
|||
m_Enabled: 1 |
|||
--- !u!124 &1717210256 |
|||
Behaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1717210254} |
|||
m_Enabled: 1 |
|||
--- !u!92 &1717210257 |
|||
Behaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1717210254} |
|||
m_Enabled: 1 |
|||
--- !u!20 &1717210258 |
|||
Camera: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1717210254} |
|||
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: 0 |
|||
m_ForceIntoRT: 0 |
|||
m_OcclusionCulling: 1 |
|||
m_StereoConvergence: 10 |
|||
m_StereoSeparation: 0.022 |
|||
m_StereoMirrorMode: 0 |
|||
--- !u!4 &1717210259 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1717210254} |
|||
m_LocalRotation: {x: 0.111745276, y: -0.85558593, z: 0.20849027, w: 0.46045357} |
|||
m_LocalPosition: {x: 1.991151, y: 1.196378, z: 1.3721017} |
|||
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} |
|
|||
fileFormatVersion: 2 |
|||
guid: 9057abe8801fb490c889b76f61b1090e |
|||
timeCreated: 1495750731 |
|||
licenseType: Pro |
|||
DefaultImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1
MaterialGraphProject/Assets/Andre/Shaders/GreyToUV.ShaderGraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 3b009d10515854377aba74e7a2979e46 |
|||
timeCreated: 1495723108 |
|||
licenseType: Pro |
|||
ScriptedImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} |
1
MaterialGraphProject/Assets/Andre/Shaders/LavaFlowMap.ShaderGraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 22341debce5704be3aa6acdb6be2a199 |
|||
timeCreated: 1495548280 |
|||
licenseType: Pro |
|||
ScriptedImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} |
1
MaterialGraphProject/Assets/Andre/Shaders/LavaRock.ShaderGraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 10e2bfd6f0b9f4605b6d4bcbf673d684 |
|||
timeCreated: 1495749836 |
|||
licenseType: Pro |
|||
ScriptedImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} |
|
|||
fileFormatVersion: 2 |
|||
guid: 79b61ba99411748ae8fa11666dceaee5 |
|||
timeCreated: 1495723363 |
|||
licenseType: Pro |
|||
TextureImporter: |
|||
fileIDToRecycleName: {} |
|||
serializedVersion: 4 |
|||
mipmaps: |
|||
mipMapMode: 0 |
|||
enableMipMap: 1 |
|||
sRGBTexture: 0 |
|||
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 |
|||
- buildTarget: Standalone |
|||
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: 7296f51323ae9485a9c834c4e3d722ed |
|||
timeCreated: 1495753485 |
|||
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: a653bbc25cc7e4794829cf7b1184abcb |
|||
timeCreated: 1495753487 |
|||
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: |
1001
MaterialGraphProject/Assets/Andre/ground_cracked_ground_roughness.png
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 9d64a9e7ca6864704ae6b8ca7afc9d85 |
|||
timeCreated: 1495753486 |
|||
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: |
|
|||
%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: f25473f70e5844a4dabcea9bce39e35f |
|||
folderAsset: yes |
|||
timeCreated: 1495740471 |
|||
licenseType: Pro |
|||
DefaultImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
Shader "Examples/Anisotropy" |
|||
{ |
|||
Properties |
|||
{ |
|||
Vector1_5c761f75_773e_42ed_b242_72e6b25acebd_Uniform("Metallic", Range(0, 1)) = 0.278 |
|||
Vector1_91e780ac_52c0_4e9a_bd0e_974f5805854d_Uniform("Smoothness", Range(0, 1)) = 0.59 |
|||
[NonModifiableTextureData] Texture_3db1140f_b814_4ba5_a49c_d40499367921_Uniform("Texture", 2D) = "white" {} |
|||
Vector1_8272d735_22ca_40c5_a082_1c40f63ad50b_Uniform("Anisotropy", Range(0, 1)) = 1 |
|||
|
|||
} |
|||
|
|||
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 float4 unity_uvrotator_float(float4 arg1, float arg2) |
|||
{ |
|||
arg1.xy -= 0.5; |
|||
float s = sin(arg2); |
|||
float c = cos(arg2); |
|||
float2x2 rMatrix = float2x2(c, -s, s, c); |
|||
rMatrix *= 0.5; |
|||
rMatrix += 0.5; |
|||
rMatrix = rMatrix * 2 - 1; |
|||
arg1.xy = mul(arg1.xy, rMatrix); |
|||
arg1.xy += 0.5; |
|||
return arg1; |
|||
} |
|||
inline float4 unity_add_float(float4 arg1, float4 arg2) |
|||
{ |
|||
return arg1 + arg2; |
|||
} |
|||
inline float3 unity_saturation_float(float3 arg1, float arg2) |
|||
{ |
|||
float luma = dot(arg1, float3(0.2126729, 0.7151522, 0.0721750)); |
|||
return luma.xxx + arg2.xxx * (arg1 - luma.xxx); |
|||
} |
|||
|
|||
float Vector1_5c761f75_773e_42ed_b242_72e6b25acebd_Uniform; |
|||
float Vector1_91e780ac_52c0_4e9a_bd0e_974f5805854d_Uniform; |
|||
sampler2D Texture_3db1140f_b814_4ba5_a49c_d40499367921_Uniform; |
|||
float Vector1_8272d735_22ca_40c5_a082_1c40f63ad50b_Uniform; |
|||
|
|||
|
|||
struct Input |
|||
{ |
|||
float4 color : COLOR; |
|||
half4 meshUV0; |
|||
float4 worldTangent; |
|||
float3 worldNormal; |
|||
|
|||
}; |
|||
|
|||
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 Color_60e5aa92_5827_4655_88ef_824edebc611c_Uniform = float4 (1, 1, 1, 0); |
|||
float4 UV_5469bdac_9fb3_4be1_99d3_b33dd79bde38_UV = uv0; |
|||
float Vector1_eba0cdd0_45b4_4538_9e0b_cea4c7422396_Uniform = 10; |
|||
float4 Multiply_4812768f_5378_4eb3_9ce3_7b7b373bf5af_Output = unity_multiply_float(UV_5469bdac_9fb3_4be1_99d3_b33dd79bde38_UV, Vector1_eba0cdd0_45b4_4538_9e0b_cea4c7422396_Uniform); |
|||
float4 Fraction_5d78144e_c212_4560_a9ac_8a1cfa2d8998_Output = frac(Multiply_4812768f_5378_4eb3_9ce3_7b7b373bf5af_Output); |
|||
float4 Texture_3db1140f_b814_4ba5_a49c_d40499367921 = tex2D(Texture_3db1140f_b814_4ba5_a49c_d40499367921_Uniform, (Fraction_5d78144e_c212_4560_a9ac_8a1cfa2d8998_Output.xy)); |
|||
float4 Swizzle_8fa020a1_1e6e_4a73_8319_f9403f55481f_Output = float4(Texture_3db1140f_b814_4ba5_a49c_d40499367921.rbga).rgba; |
|||
float4 UVRotator_33524407_d6a4_4e64_995b_84ca0117ce56_Output = unity_uvrotator_float(Swizzle_8fa020a1_1e6e_4a73_8319_f9403f55481f_Output, _Time.y); |
|||
float4 Swizzle_518dd051_97b1_4f9d_b388_4db28346054e_Output = float4(UVRotator_33524407_d6a4_4e64_995b_84ca0117ce56_Output.rbga).rgba; |
|||
float4 Add_204f3b90_9101_429f_acf1_8fdace08eb17_Output = unity_add_float(Swizzle_518dd051_97b1_4f9d_b388_4db28346054e_Output, float4 (0,0,0,0)); |
|||
float3 Saturation_96e26331_ca74_4d63_aacd_f34516700ae6_Output = unity_saturation_float(Add_204f3b90_9101_429f_acf1_8fdace08eb17_Output, 0); |
|||
o.Albedo = Color_60e5aa92_5827_4655_88ef_824edebc611c_Uniform; |
|||
o.Metallic = Vector1_5c761f75_773e_42ed_b242_72e6b25acebd_Uniform; |
|||
o.Smoothness = Vector1_91e780ac_52c0_4e9a_bd0e_974f5805854d_Uniform; |
|||
o.Occlusion = Saturation_96e26331_ca74_4d63_aacd_f34516700ae6_Output; |
|||
o.Tangent = Add_204f3b90_9101_429f_acf1_8fdace08eb17_Output; |
|||
float3x3 worldToTangent; |
|||
worldToTangent[0] = float3(1, 0, 0); |
|||
worldToTangent[1] = float3(0, 1, 0); |
|||
worldToTangent[2] = float3(0, 0, 1); |
|||
float3 tangentTWS = mul(o.Tangent, worldToTangent); |
|||
o.WorldVectors = float3x3(tangentTWS, worldSpaceBitangent, worldSpaceNormal); |
|||
o.Anisotropy = Vector1_8272d735_22ca_40c5_a082_1c40f63ad50b_Uniform; |
|||
|
|||
} |
|||
ENDCG |
|||
} |
|||
|
|||
|
|||
FallBack "Diffuse" |
|||
CustomEditor "LegacyIlluminShaderGUI" |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 01a19a2c08481994c87ec502a371225e |
|||
timeCreated: 1495754850 |
|||
licenseType: Pro |
|||
ShaderImporter: |
|||
defaultTextures: [] |
|||
nonModifiableTextures: [] |
|||
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.15402943, g: 0.17526728, b: 0.18618384, 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 &1175244166 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 1175244170} |
|||
- component: {fileID: 1175244169} |
|||
- component: {fileID: 1175244168} |
|||
- component: {fileID: 1175244167} |
|||
m_Layer: 0 |
|||
m_Name: Cube |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!23 &1175244167 |
|||
MeshRenderer: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1175244166} |
|||
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: b691b84f941db2740ba393773c55e10e, 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 &1175244168 |
|||
BoxCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1175244166} |
|||
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 &1175244169 |
|||
MeshFilter: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1175244166} |
|||
m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} |
|||
--- !u!4 &1175244170 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1175244166} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: -0.6726772, y: 1.891152, z: 1.7966161} |
|||
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 &1268097406 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 1268097408} |
|||
- component: {fileID: 1268097407} |
|||
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 &1268097407 |
|||
Light: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1268097406} |
|||
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 &1268097408 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1268097406} |
|||
m_LocalRotation: {x: 0.2754269, y: -0.6067653, z: -0.25753763, w: 0.6997502} |
|||
m_LocalPosition: {x: -2.93, y: 3, z: -0.69} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 1 |
|||
m_LocalEulerAnglesHint: {x: 4.182, y: -83.555, z: -44.148003} |
|||
--- !u!1 &1652373340 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 5 |
|||
m_Component: |
|||
- component: {fileID: 1652373345} |
|||
- component: {fileID: 1652373344} |
|||
- component: {fileID: 1652373343} |
|||
- component: {fileID: 1652373342} |
|||
- component: {fileID: 1652373341} |
|||
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 &1652373341 |
|||
AudioListener: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1652373340} |
|||
m_Enabled: 1 |
|||
--- !u!124 &1652373342 |
|||
Behaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1652373340} |
|||
m_Enabled: 1 |
|||
--- !u!92 &1652373343 |
|||
Behaviour: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1652373340} |
|||
m_Enabled: 1 |
|||
--- !u!20 &1652373344 |
|||
Camera: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1652373340} |
|||
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 &1652373345 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_PrefabParentObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1652373340} |
|||
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} |
|
|||
fileFormatVersion: 2 |
|||
guid: e62816a8b56c9964d9d512ec8496d304 |
|||
timeCreated: 1495753720 |
|||
licenseType: Pro |
|||
DefaultImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using UnityEngine.Graphing; |
|||
|
|||
|
|||
namespace UnityEngine.MaterialGraph |
|||
{ |
|||
[Title("UV/SphericalIndentation")] |
|||
public class SphericalIndentationNode : AnyNode<SphericalIndentationNode.Definition> |
|||
{ |
|||
public class Definition : IAnyNodeDefinition |
|||
{ |
|||
public string name { get { return "SphericalIndentation"; } } |
|||
|
|||
public AnyNodeProperty[] properties |
|||
{ |
|||
get |
|||
{ |
|||
return new AnyNodeProperty[] |
|||
{ |
|||
// slotId is the 'immutable' value we used to connect things
|
|||
new AnyNodeProperty { slotId= 0, name = "inUVs", description = "Input UV coords", propertyType = PropertyType.Vector2, value = Vector4.zero, state = AnyNodePropertyState.Slot }, |
|||
new AnyNodeProperty { slotId= 1, name = "center", description = "UV center point", propertyType = PropertyType.Vector2, value= new Vector4(0.5f, 0.5f, 0.5f, 0.5f), state = AnyNodePropertyState.Constant }, |
|||
new AnyNodeProperty { slotId= 2, name = "height", description = "Height off surface", propertyType = PropertyType.Float, value= Vector4.zero, state = AnyNodePropertyState.Constant }, |
|||
new AnyNodeProperty { slotId= 3, name = "radius", description = "Radius", propertyType = PropertyType.Float, value= Vector4.one, state = AnyNodePropertyState.Constant }, |
|||
}; |
|||
} |
|||
} |
|||
|
|||
public AnyNodeSlot[] outputs |
|||
{ |
|||
get |
|||
{ |
|||
return new AnyNodeSlot[] |
|||
{ |
|||
new AnyNodeSlot { slotId= 4, name = "outUVs", description = "Output UV texture coordinates", slotValueType = SlotValueType.Vector2, value = Vector4.zero }, |
|||
new AnyNodeSlot { slotId= 5, name = "outNormal", description = "Output Normal in tangent space", slotValueType = SlotValueType.Vector3, value = Vector4.zero } |
|||
}; |
|||
} |
|||
} |
|||
|
|||
public ShaderGlobal[] globals { get { return new ShaderGlobal[] { ShaderGlobal.TangentSpaceViewDirection }; } } |
|||
|
|||
public string hlsl |
|||
{ |
|||
get |
|||
{ |
|||
return |
|||
"float radius2= radius*radius;\n" + |
|||
"float3 cur= float3(inUVs.xy, 0.0f);\n" + |
|||
"float3 sphereCenter = float3(center, height);\n" + |
|||
"float3 edgeA = sphereCenter - cur;\n" + |
|||
"float a2 = dot(edgeA, edgeA);\n" + |
|||
"outUVs= inUVs;\n" + |
|||
"outNormal= float3(0.0f, 0.0f, 1.0f);\n" + |
|||
"if (a2 < radius2)\n" + |
|||
"{\n" + |
|||
" float a = sqrt(a2);\n" + |
|||
" edgeA = edgeA / a;\n" + |
|||
" float cosineR = dot(edgeA, tangentSpaceViewDirection.xyz);\n" + |
|||
" float x = cosineR * a - sqrt(-a2 + radius2 + a2 * cosineR * cosineR);\n" + |
|||
" float3 intersectedEdge = cur + tangentSpaceViewDirection * x;\n" + |
|||
" outNormal= normalize(sphereCenter - intersectedEdge);\n" + |
|||
" outUVs = intersectedEdge.xy;\n" + |
|||
"}\n"; |
|||
|
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: c0688eef7b3723840beb4e69e24f7b9b |
|||
timeCreated: 1495748007 |
|||
licenseType: Pro |
|||
MonoImporter: |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1
MaterialGraphProject/Assets/SphereDent.ShaderGraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: b63da350811f7ba48914e852a299204c |
|||
timeCreated: 1495747830 |
|||
licenseType: Pro |
|||
ScriptedImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|||
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} |
1001
MaterialGraphProject/Assets/TestAssets/Lava_flowmap.png
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: bd7bebe6d50204bf5837af485488c872 |
|||
timeCreated: 1495752952 |
|||
licenseType: Pro |
|||
TextureImporter: |
|||
fileIDToRecycleName: {} |
|||
serializedVersion: 4 |
|||
mipmaps: |
|||
mipMapMode: 0 |
|||
enableMipMap: 1 |
|||
sRGBTexture: 0 |
|||
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 |
|||
- buildTarget: Standalone |
|||
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: b69a7e88e13e24260acb38513f619ff2 |
|||
timeCreated: 1495753980 |
|||
licenseType: Pro |
|||
SubstanceImporter: |
|||
serializedVersion: 5 |
|||
materialInstances: |
|||
- serializedVersion: 16 |
|||
name: RockMaterial1 |
|||
prototypeName: RockMaterial1 |
|||
shaderName: |
|||
shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} |
|||
shaderKeywords: |
|||
renderQueue: -1 |
|||
lightmapFlags: 4 |
|||
inputs: [] |
|||
materialInformation: |
|||
serializedVersion: 5 |
|||
offset: {x: 0, y: 0} |
|||
scale: {x: 1, y: 1} |
|||
generateMipmaps: 1 |
|||
generateAllOutputs: 0 |
|||
animationUpdateRate: 0 |
|||
materialProperties: |
|||
serializedVersion: 3 |
|||
texEnvs: [] |
|||
floats: [] |
|||
colors: [] |
|||
textureParameters: |
|||
- name: RockMaterial1_basecolor |
|||
alphaSource: 6 |
|||
filterMode: 1 |
|||
aniso: 1 |
|||
wrapMode: 0 |
|||
- name: RockMaterial1_normal |
|||
alphaSource: 0 |
|||
filterMode: 1 |
|||
aniso: 1 |
|||
wrapMode: 0 |
|||
- name: RockMaterial1_metallic |
|||
alphaSource: 7 |
|||
filterMode: 1 |
|||
aniso: 1 |
|||
wrapMode: 0 |
|||
textureAssignments: |
|||
- shaderProp: _MainTex |
|||
material: {instanceID: 0} |
|||
baseUID: 779270956 |
|||
- shaderProp: _BumpMap |
|||
material: {instanceID: 0} |
|||
baseUID: 779270958 |
|||
- shaderProp: _MetallicGlossMap |
|||
material: {instanceID: 0} |
|||
baseUID: 779270954 |
|||
buildTargetSettings: |
|||
- serializedVersion: 2 |
|||
buildTarget: |
|||
textureWidth: 512 |
|||
textureHeight: 512 |
|||
textureFormat: 0 |
|||
loadingBehavior: 1 |
|||
deletedPrototypes: [] |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 28f8651cc7780724692679226b6de1ba |
|||
timeCreated: 1495753817 |
|||
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: 1 |
|||
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 |
|||
- buildTarget: Standalone |
|||
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: |
|
|||
using System; |
|||
using System.Collections.Generic; |
|||
using RMGUI.GraphView; |
|||
using UnityEditor.Graphing.Drawing; |
|||
using UnityEngine; |
|||
using UnityEngine.MaterialGraph; |
|||
|
|||
namespace UnityEditor.MaterialGraph.Drawing |
|||
{ |
|||
class SamplerAssetControlPresenter : GraphControlPresenter |
|||
{ |
|||
private string[] m_TextureTypeNames; |
|||
private string[] textureTypeNames |
|||
{ |
|||
get |
|||
{ |
|||
if (m_TextureTypeNames == null) |
|||
m_TextureTypeNames = Enum.GetNames(typeof(TextureType)); |
|||
return m_TextureTypeNames; |
|||
} |
|||
} |
|||
|
|||
public override void OnGUIHandler() |
|||
{ |
|||
base.OnGUIHandler(); |
|||
|
|||
var tNode = node as UnityEngine.MaterialGraph.SamplerAssetNode; |
|||
if (tNode == null) |
|||
return; |
|||
|
|||
tNode.exposedState = (PropertyNode.ExposedState)EditorGUILayout.EnumPopup(new GUIContent("Exposed"), tNode.exposedState); |
|||
tNode.defaultTexture = EditorGUILayout.MiniThumbnailObjectField(new GUIContent("Texture"), tNode.defaultTexture, typeof(Texture), null) as Texture; |
|||
tNode.textureType = (TextureType)EditorGUILayout.Popup((int)tNode.textureType, textureTypeNames, EditorStyles.popup); |
|||
} |
|||
|
|||
public override float GetHeight() |
|||
{ |
|||
return 3 * (EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing) + EditorGUIUtility.standardVerticalSpacing; |
|||
} |
|||
} |
|||
|
|||
[Serializable] |
|||
public class SamplerAssetNodePresenter : MaterialNodePresenter |
|||
{ |
|||
protected override IEnumerable<GraphElementPresenter> GetControlData() |
|||
{ |
|||
var instance = CreateInstance<SamplerAssetControlPresenter>(); |
|||
instance.Initialize(node); |
|||
return new List<GraphElementPresenter> { instance }; |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: ec47786947b3100438fbe355a2a23000 |
|||
timeCreated: 1495754404 |
|||
licenseType: Pro |
|||
MonoImporter: |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
#if UNITY_EDITOR
|
|||
using UnityEditor; |
|||
#endif
|
|||
using UnityEngine.Graphing; |
|||
|
|||
namespace UnityEngine.MaterialGraph |
|||
{ |
|||
[Title("Input/Texture/Sampler Asset")] |
|||
public class SamplerAssetNode : PropertyNode |
|||
{ |
|||
|
|||
protected const string kOutputSlotRGBAName = "Sampler2D"; |
|||
|
|||
public const int OutputID = 0; |
|||
|
|||
|
|||
[SerializeField] |
|||
private string m_SerializedTexture; |
|||
|
|||
[SerializeField] |
|||
private TextureType m_TextureType; |
|||
|
|||
[Serializable] |
|||
private class TextureHelper |
|||
{ |
|||
public Texture texture; |
|||
} |
|||
|
|||
public override bool hasPreview { get { return false; } } |
|||
|
|||
#if UNITY_EDITOR
|
|||
public Texture defaultTexture |
|||
{ |
|||
get |
|||
{ |
|||
if (string.IsNullOrEmpty(m_SerializedTexture)) |
|||
return null; |
|||
|
|||
var tex = new TextureHelper(); |
|||
EditorJsonUtility.FromJsonOverwrite(m_SerializedTexture, tex); |
|||
return tex.texture; |
|||
} |
|||
set |
|||
{ |
|||
if (defaultTexture == value) |
|||
return; |
|||
|
|||
var tex = new TextureHelper(); |
|||
tex.texture = value; |
|||
m_SerializedTexture = EditorJsonUtility.ToJson(tex, true); |
|||
|
|||
if (onModified != null) |
|||
{ |
|||
onModified(this, ModificationScope.Node); |
|||
} |
|||
} |
|||
} |
|||
#else
|
|||
public Texture defaultTexture {get; set; } |
|||
#endif
|
|||
|
|||
public TextureType textureType |
|||
{ |
|||
get { return m_TextureType; } |
|||
set |
|||
{ |
|||
if (m_TextureType == value) |
|||
return; |
|||
|
|||
|
|||
m_TextureType = value; |
|||
if (onModified != null) |
|||
{ |
|||
onModified(this, ModificationScope.Graph); |
|||
} |
|||
} |
|||
} |
|||
|
|||
public SamplerAssetNode() |
|||
{ |
|||
name = "SamplerAsset"; |
|||
UpdateNodeAfterDeserialization(); |
|||
} |
|||
|
|||
public sealed override void UpdateNodeAfterDeserialization() |
|||
{ |
|||
AddSlot(new MaterialSlot(OutputID, kOutputSlotRGBAName, kOutputSlotRGBAName, SlotType.Output, SlotValueType.Sampler2D, Vector4.zero)); |
|||
RemoveSlotsNameNotMatching(validSlots); |
|||
} |
|||
|
|||
protected int[] validSlots |
|||
{ |
|||
get { return new[] { OutputID }; } |
|||
} |
|||
|
|||
public override void CollectPreviewMaterialProperties(List<PreviewProperty> properties) |
|||
{ |
|||
properties.Add(GetPreviewProperty()); |
|||
} |
|||
|
|||
// Properties
|
|||
public override void GeneratePropertyBlock(PropertyGenerator visitor, GenerationMode generationMode) |
|||
{ |
|||
visitor.AddShaderProperty( |
|||
new TexturePropertyChunk( |
|||
propertyName, |
|||
description, |
|||
defaultTexture, m_TextureType, |
|||
PropertyChunk.HideState.Visible, |
|||
exposedState == ExposedState.Exposed ? |
|||
TexturePropertyChunk.ModifiableState.Modifiable |
|||
: TexturePropertyChunk.ModifiableState.NonModifiable)); |
|||
} |
|||
|
|||
public override void GeneratePropertyUsages(ShaderGenerator visitor, GenerationMode generationMode) |
|||
{ |
|||
visitor.AddShaderChunk("sampler2D " + propertyName + ";", true); |
|||
} |
|||
|
|||
public override PreviewProperty GetPreviewProperty() |
|||
{ |
|||
return new PreviewProperty |
|||
{ |
|||
m_Name = propertyName, |
|||
m_PropType = PropertyType.Texture, |
|||
m_Texture = defaultTexture |
|||
}; |
|||
} |
|||
|
|||
public override PropertyType propertyType { get { return PropertyType.Texture; } } |
|||
|
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: bc508c398f312644bb3c00c6ad160133 |
|||
MonoImporter: |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|
|||
%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: Gradient |
|||
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: 0a9ee03ce6ea51f4e92acb81546fefc1, 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: 28805740b89754d4f87ecf03fa9a100d |
|||
timeCreated: 1495750594 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 8600000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
Shader "UnityEngine.MaterialGraph.ExportTextureMasterNode31754f39-6eb9-4773-ae21-b2fca7f2fcde" |
|||
{ |
|||
Properties |
|||
{ |
|||
|
|||
} |
|||
|
|||
SubShader |
|||
{ |
|||
Tags{ "Queue" = "Geometry" "IgnoreProjector" = "True" "RenderType" = "Opaque" } |
|||
|
|||
ZWrite Off |
|||
Blend One Zero |
|||
|
|||
Pass |
|||
{ |
|||
CGPROGRAM |
|||
#include "UnityCustomRenderTexture.cginc" |
|||
#pragma vertex CustomRenderTextureVertexShader |
|||
#pragma fragment frag |
|||
#pragma target 4.0 |
|||
|
|||
v2f_customrendertexture CustomRenderTextureVertexShader_Preview(appdata_base IN) |
|||
{ |
|||
v2f_customrendertexture OUT; |
|||
OUT.vertex = UnityObjectToClipPos(IN.vertex); |
|||
OUT.primitiveID = 0;//TODO |
|||
OUT.localTexcoord = IN.texcoord; |
|||
OUT.globalTexcoord = IN.texcoord; |
|||
OUT.direction = CustomRenderTextureComputeCubeDirection(OUT.globalTexcoord.xy); |
|||
return OUT; |
|||
} |
|||
|
|||
|
|||
|
|||
inline void unity_Gradient_float(float v, out float4 finalColor, out float finalR, out float finalG, out float finalB, out float finalA) |
|||
{ |
|||
float3 color0 = float3(0.1176471,0.08960744,0.07439446); |
|||
float colorp0 = 0; |
|||
float3 color1 = float3(0,0,0); |
|||
float colorp1 = 0.1147021; |
|||
float3 color2 = float3(0.2132353,0.07766853,0); |
|||
float colorp2 = 0.2500038; |
|||
float3 color3 = float3(0.6364486,0.2844907,0); |
|||
float colorp3 = 0.3764706; |
|||
float3 color4 = float3(1,0.9310344,0); |
|||
float colorp4 = 0.5058824; |
|||
float3 color5 = float3(1,1,1); |
|||
float colorp5 = 0.6529488; |
|||
float3 color6 = float3(1,0.6413793,0); |
|||
float colorp6 = 0.7823606; |
|||
float3 color7 = float3(0.4779412,0.353851,0.02811421); |
|||
float colorp7 = 1; |
|||
float3 gradcolor = color0; |
|||
float colorLerpPosition0 = smoothstep(colorp0,colorp1,v); |
|||
gradcolor = lerp(gradcolor,color1,colorLerpPosition0); |
|||
float colorLerpPosition1 = smoothstep(colorp1,colorp2,v); |
|||
gradcolor = lerp(gradcolor,color2,colorLerpPosition1); |
|||
float colorLerpPosition2 = smoothstep(colorp2,colorp3,v); |
|||
gradcolor = lerp(gradcolor,color3,colorLerpPosition2); |
|||
float colorLerpPosition3 = smoothstep(colorp3,colorp4,v); |
|||
gradcolor = lerp(gradcolor,color4,colorLerpPosition3); |
|||
float colorLerpPosition4 = smoothstep(colorp4,colorp5,v); |
|||
gradcolor = lerp(gradcolor,color5,colorLerpPosition4); |
|||
float colorLerpPosition5 = smoothstep(colorp5,colorp6,v); |
|||
gradcolor = lerp(gradcolor,color6,colorLerpPosition5); |
|||
float colorLerpPosition6 = smoothstep(colorp6,colorp7,v); |
|||
gradcolor = lerp(gradcolor,color7,colorLerpPosition6); |
|||
float alpha0 = 1; |
|||
float alphap0 = 0; |
|||
float alpha1 = 1; |
|||
float alphap1 = 1; |
|||
float gradalpha = alpha0; |
|||
float alphaLerpPosition0 = smoothstep(alphap0,alphap1,v); |
|||
gradalpha = lerp(gradalpha,alpha1,alphaLerpPosition0); |
|||
finalColor = float4(gradcolor,gradalpha); |
|||
finalR = finalColor.r; |
|||
finalG = finalColor.g; |
|||
finalB = finalColor.b; |
|||
finalA = finalColor.a; |
|||
} |
|||
|
|||
|
|||
float4 frag(v2f_customrendertexture IN) : COLOR |
|||
{ |
|||
half4 uv0 = float4(IN.localTexcoord.xyz,1.0); |
|||
float4 UV_49a5272a_c49d_4f7e_94ba_3a2e27fcbed4_UV = uv0; |
|||
float4 Gradient_9866089f_0763_409d_904a_c1f7836ea742_finalColor; |
|||
float Gradient_9866089f_0763_409d_904a_c1f7836ea742_finalR; |
|||
float Gradient_9866089f_0763_409d_904a_c1f7836ea742_finalG; |
|||
float Gradient_9866089f_0763_409d_904a_c1f7836ea742_finalB; |
|||
float Gradient_9866089f_0763_409d_904a_c1f7836ea742_finalA; |
|||
unity_Gradient_float(UV_49a5272a_c49d_4f7e_94ba_3a2e27fcbed4_UV, Gradient_9866089f_0763_409d_904a_c1f7836ea742_finalColor, Gradient_9866089f_0763_409d_904a_c1f7836ea742_finalR, Gradient_9866089f_0763_409d_904a_c1f7836ea742_finalG, Gradient_9866089f_0763_409d_904a_c1f7836ea742_finalB, Gradient_9866089f_0763_409d_904a_c1f7836ea742_finalA); |
|||
return Gradient_9866089f_0763_409d_904a_c1f7836ea742_finalColor; |
|||
|
|||
} |
|||
ENDCG |
|||
} |
|||
} |
|||
Fallback Off |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 5aa1351ad9e754747b68549dbdc6971e |
|||
timeCreated: 1495753069 |
|||
licenseType: Pro |
|||
ShaderImporter: |
|||
defaultTextures: [] |
|||
nonModifiableTextures: [] |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1
MaterialGraphProject/Assets/_MingWai/GradientTexture.ShaderGraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 7da779631b3abb64da5b34a8ac4b5011 |
|||
timeCreated: 1495753206 |
|||
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.ExportTextureMasterNodee933fd86-9b63-40a2-9321-e857830b2339 |
|||
m_Shader: {fileID: 4800000, guid: 7da779631b3abb64da5b34a8ac4b5011, type: 3} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: [] |
|||
m_Floats: [] |
|||
m_Colors: [] |
|
|||
fileFormatVersion: 2 |
|||
guid: 0a9ee03ce6ea51f4e92acb81546fefc1 |
|||
timeCreated: 1495753275 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 2100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 53a2ad442875a484db8e0ffd69c38c77 |
|||
folderAsset: yes |
|||
timeCreated: 1495725863 |
|||
licenseType: Pro |
|||
DefaultImporter: |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
MaterialGraphProject/Assets/Andre/Meshes/Lava.fbx
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: f3a76c41447b84daabaa84848510464d |
|||
timeCreated: 1495749721 |
|||
licenseType: Pro |
|||
ModelImporter: |
|||
serializedVersion: 21 |
|||
fileIDToRecycleName: |
|||
100000: //RootNode |
|||
100002: Lava_surface |
|||
100004: Mesh_2 |
|||
100006: Mesh_2_10 |
|||
100008: Mesh_2_11 |
|||
100010: Mesh_2_12 |
|||
100012: Mesh_2_13 |
|||
100014: Mesh_2_14 |
|||
100016: Mesh_2_2 |
|||
100018: Mesh_2_3 |
|||
100020: Mesh_2_4 |
|||
100022: Mesh_2_5 |
|||
100024: Mesh_2_6 |
|||
100026: Mesh_2_7 |
|||
100028: Mesh_2_8 |
|||
100030: Mesh_2_9 |
|||
100032: RockMesh |
|||
100034: Rocks |
|||
100036: LavaPoolwall |
|||
400000: //RootNode |
|||
400002: Lava_surface |
|||
400004: Mesh_2 |
|||
400006: Mesh_2_10 |
|||
400008: Mesh_2_11 |
|||
400010: Mesh_2_12 |
|||
400012: Mesh_2_13 |
|||
400014: Mesh_2_14 |
|||
400016: Mesh_2_2 |
|||
400018: Mesh_2_3 |
|||
400020: Mesh_2_4 |
|||
400022: Mesh_2_5 |
|||
400024: Mesh_2_6 |
|||
400026: Mesh_2_7 |
|||
400028: Mesh_2_8 |
|||
400030: Mesh_2_9 |
|||
400032: RockMesh |
|||
400034: Rocks |
|||
400036: LavaPoolwall |
|||
2300000: Lava_surface |
|||
2300002: Mesh_2 |
|||
2300004: Mesh_2_10 |
|||
2300006: Mesh_2_11 |
|||
2300008: Mesh_2_12 |
|||
2300010: Mesh_2_13 |
|||
2300012: Mesh_2_14 |
|||
2300014: Mesh_2_2 |
|||
2300016: Mesh_2_3 |
|||
2300018: Mesh_2_4 |
|||
2300020: Mesh_2_5 |
|||
2300022: Mesh_2_6 |
|||
2300024: Mesh_2_7 |
|||
2300026: Mesh_2_8 |
|||
2300028: Mesh_2_9 |
|||
2300030: RockMesh |
|||
2300032: LavaPoolwall |
|||
3300000: Lava_surface |
|||
3300002: Mesh_2 |
|||
3300004: Mesh_2_10 |
|||
3300006: Mesh_2_11 |
|||
3300008: Mesh_2_12 |
|||
3300010: Mesh_2_13 |
|||
3300012: Mesh_2_14 |
|||
3300014: Mesh_2_2 |
|||
3300016: Mesh_2_3 |
|||
3300018: Mesh_2_4 |
|||
3300020: Mesh_2_5 |
|||
3300022: Mesh_2_6 |
|||
3300024: Mesh_2_7 |
|||
3300026: Mesh_2_8 |
|||
3300028: Mesh_2_9 |
|||
3300030: RockMesh |
|||
3300032: LavaPoolwall |
|||
4300000: Lava_surface |
|||
4300002: RockMesh |
|||
4300004: LavaPoolwall |
|||
materials: |
|||
importMaterials: 1 |
|||
materialName: 0 |
|||
materialSearch: 1 |
|||
animations: |
|||
legacyGenerateAnimations: 4 |
|||
bakeSimulation: 0 |
|||
resampleCurves: 1 |
|||
optimizeGameObjects: 0 |
|||
motionNodeName: |
|||
rigImportErrors: |
|||
rigImportWarnings: |
|||
animationImportErrors: |
|||
animationImportWarnings: |
|||
animationRetargetingWarnings: |
|||
animationDoRetargetingWarnings: 0 |
|||
importAnimatedCustomProperties: 0 |
|||
animationCompression: 1 |
|||
animationRotationError: 0.5 |
|||
animationPositionError: 0.5 |
|||
animationScaleError: 0.5 |
|||
animationWrapMode: 0 |
|||
extraExposedTransformPaths: [] |
|||
extraUserProperties: [] |
|||
clipAnimations: [] |
|||
isReadable: 1 |
|||
meshes: |
|||
lODScreenPercentages: [] |
|||
globalScale: 1 |
|||
meshCompression: 0 |
|||
addColliders: 0 |
|||
importVisibility: 1 |
|||
importBlendShapes: 1 |
|||
importCameras: 1 |
|||
importLights: 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 |
|||
normalImportMode: 0 |
|||
tangentImportMode: 3 |
|||
normalCalculationMode: 4 |
|||
importAnimation: 1 |
|||
copyAvatar: 0 |
|||
humanDescription: |
|||
serializedVersion: 2 |
|||
human: [] |
|||
skeleton: [] |
|||
armTwist: 0.5 |
|||
foreArmTwist: 0.5 |
|||
upperLegTwist: 0.5 |
|||
legTwist: 0.5 |
|||
armStretch: 0.05 |
|||
legStretch: 0.05 |
|||
feetSpacing: 0 |
|||
rootMotionBoneName: |
|||
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
hasTranslationDoF: 0 |
|||
hasExtraRoot: 0 |
|||
skeletonHasParents: 1 |
|||
lastHumanDescriptionAvatarSource: {instanceID: 0} |
|||
animationType: 0 |
|||
humanoidOversampling: 1 |
|||
additionalBone: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 719492de9857e490e94dd841853f712d |
|||
folderAsset: yes |
|||
timeCreated: 1495749720 |
|||
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: Border |
|||
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: 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.275 |
|||
- _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: 0.28676468, g: 0.2134739, b: 0.13494807, a: 1} |
|||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: ed9027901b3444444b753a7aa143cb7c |
|||
timeCreated: 1495757443 |
|||
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: Lava |
|||
m_Shader: {fileID: 4800000, guid: cb267e18a2bfb48199dd718e33eb9f9b, type: 3} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 1 |
|||
m_EnableInstancingVariants: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- Texture_3cc862ff_e5c3_40c2_a0f2_895da84195ea_Uniform: |
|||
m_Texture: {fileID: 2800000, guid: a653bbc25cc7e4794829cf7b1184abcb, type: 3} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture_73d7755c_9da7_46d2_90c6_35c2a880d380_Uniform: |
|||
m_Texture: {fileID: -931156776, guid: b69a7e88e13e24260acb38513f619ff2, type: 3} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture_8304e17f_0ca3_45b8_9081_4e083e4ffba7_Uniform: |
|||
m_Texture: {fileID: 2800000, guid: 7296f51323ae9485a9c834c4e3d722ed, type: 3} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture_9dcd98df_78a5_4ad3_83dd_e3c00c88f898_Uniform: |
|||
m_Texture: {fileID: 2800000, guid: 9d64a9e7ca6864704ae6b8ca7afc9d85, type: 3} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture_aa489395_d5b1_4bce_a08c_71ce4329894d_Uniform: |
|||
m_Texture: {fileID: 2800000, guid: 7296f51323ae9485a9c834c4e3d722ed, type: 3} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture_c384b973_02cf_4076_96d9_302f320a2dd5_Uniform: |
|||
m_Texture: {fileID: 2800000, guid: a653bbc25cc7e4794829cf7b1184abcb, type: 3} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture_d6d1ed65_5575_444c_8f92_38740ace2353_Uniform: |
|||
m_Texture: {fileID: -931156776, guid: b69a7e88e13e24260acb38513f619ff2, type: 3} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture_ead3f7f8_56e5_41f9_8217_555fb21e0536_Uniform: |
|||
m_Texture: {fileID: 2800000, guid: 9d64a9e7ca6864704ae6b8ca7afc9d85, type: 3} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture_f6eb7ab6_0df6_4d1f_a833_847f9eefa1ce_Uniform: |
|||
m_Texture: {fileID: 2800000, guid: bd7bebe6d50204bf5837af485488c872, 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: |
|||
- Vector1_2fa9bd83_0823_4530_9787_f0fab2f47430_Uniform: 1.95 |
|||
- Vector1_48a064e9_29c4_4cdd_8bf7_34902bb50605_Uniform: -3 |
|||
- _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_0cf876a7_4590_4973_82b7_3f878b008b3c_Uniform: {r: 4.007354, g: 1.2436613, |
|||
b: 0, a: 1} |
|||
- Color_d1ecd429_6e84_47b1_903b_60f454b7d326_Uniform: {r: 0, g: 0, b: 0, a: 1} |
|||
- _Color: {r: 1, g: 1, b: 1, a: 1} |
|||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: cb86b209e3893428e80cc4e27728fe64 |
|||
timeCreated: 1495749721 |
|||
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: RockLava |
|||
m_Shader: {fileID: 4800000, guid: 9ab5e16c2083a4fe689209a8c1ae425e, type: 3} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 0 |
|||
m_EnableInstancingVariants: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- Texture_3cc862ff_e5c3_40c2_a0f2_895da84195ea_Uniform: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture_73d7755c_9da7_46d2_90c6_35c2a880d380_Uniform: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture_8304e17f_0ca3_45b8_9081_4e083e4ffba7_Uniform: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture_9dcd98df_78a5_4ad3_83dd_e3c00c88f898_Uniform: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture_a6eb1bfb_6ea7_4e0b_bfc1_c9e0ed434f76_Uniform: |
|||
m_Texture: {fileID: 2800000, guid: 84462bdfeee9d694bbebf34e5f3faa74, type: 3} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture_aa489395_d5b1_4bce_a08c_71ce4329894d_Uniform: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture_c384b973_02cf_4076_96d9_302f320a2dd5_Uniform: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture_d6d1ed65_5575_444c_8f92_38740ace2353_Uniform: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture_df5248d2_ffaf_4f62_9322_5575ac4818d0_Uniform: |
|||
m_Texture: {fileID: 2800000, guid: aa460a2956f927d4ab684aa4970bf76a, type: 3} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture_ead3f7f8_56e5_41f9_8217_555fb21e0536_Uniform: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- Texture_f6eb7ab6_0df6_4d1f_a833_847f9eefa1ce_Uniform: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _BumpMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailAlbedoMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailMask: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _DetailNormalMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _EmissionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MainTex: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MetallicGlossMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _OcclusionMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _ParallaxMap: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: |
|||
- Vector1_2fa9bd83_0823_4530_9787_f0fab2f47430_Uniform: 0.2 |
|||
- Vector1_48a064e9_29c4_4cdd_8bf7_34902bb50605_Uniform: 1 |
|||
- _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_0cf876a7_4590_4973_82b7_3f878b008b3c_Uniform: {r: 0, g: 0, b: 0, a: 0} |
|||
- Color_11e7c6f6_9284_4d76_bfbf_3a1eced790b6_Uniform: {r: 2, g: 0.5379311, b: 0, |
|||
a: 1} |
|||
- Color_d1ecd429_6e84_47b1_903b_60f454b7d326_Uniform: {r: 0, g: 0, b: 0, a: 0} |
|||
- _Color: {r: 1, g: 1, b: 1, a: 1} |
|||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: 01e2d522311ef48b99438b41d63a496c |
|||
timeCreated: 1495749721 |
|||
licenseType: Pro |
|||
NativeFormatImporter: |
|||
mainObjectFileID: 2100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
633
MaterialGraphProject/Assets/Andre/Scenes/Lava/LightingData.asset
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: 3590b96a6c1c8427191dc231f84f7919 |
|||
timeCreated: 1495755068 |
|||
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 +� �� "7 ʽ @���� � ���������m��w����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������_�����ݿ�����߯�U��b� o �� AFq� �q�r� $�I$�J(��,��,��0�0�
0�
4�0�
4�L8�M8�M8� @Î4�8�4��8�;��=�=?�;= @��8��A�<�8�;@�@�C���C��?�s�?��=?�??�D?<�OC�<?�??��-A� �ď�����?�����O������������������Ώ?��!?���$?�C��?�#�?���?������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������O�8����O� ?��?���<�?ӿ |
|||
?�s� ?�c�@������ ���� <�;�A ���<� ?��9 8���@<�<��<��<�� �����8� =�@��5� �8�N8��8�N4�O8��4ӏ0Ӎ4�M8�L0Ӎ4�L0�L4�L4�M0�0��0��0�0��0��,��,��(��(��(��$�I$�H$� �q�q�q�a�q�q�q�Q �X8X����\>\��� |
|||
� ��� |
|||
�L |
|||
(�r���I00�.P ���� |
|||
�"���FJ BX��m����[j����[���V,y`ů-�qhUl!t ��7��䯁]���8@0Ȍ�"� !4�)��� ��/,l" |
|||
E�� B6,���q���\���b��`l`���p+�.H�¥�->�:�K\�p������ \�p�����p�$�.��p��S�J(:�jD�R) �ȹ1�E���d`�RL\�:�39�N9�C�S]8�9�=��X(�� |
|||
�]��a� �qƾ5�'�tPD�4/���1"�b@���T�q��V/B��W +!n��_��W[=u����������C�������w�����|�����]���s.�V�*�vJ�Q����hf�f���q��wr'!i����I�2� �9������d��lpϩUT��J�'T��T����D�5�(�tMĺ%���"��2,�p��3l��d��6i��2��`��N)����(�v |
|||
0]��2Q�X� O���5�-�tj"]��ERfULHZLH������8nV�*�z���d/B�(888888* |
|||
~��5q���iu��k��A��zO��ڍF�Q�b �����~ |
|||
O���ɭ��u���ku��Q7)��������ssssr��ۧ7777-T+5��f��R�n�X�}?�����~ '�F�Q���}>��i�
lk���u-���[o����������h��Y�7��yy��o�t5�Ƴx�5��ټj�ٻ��k4ɨ���j�Ѻ�y�7�cY�k7�f�j���,���ݛ�Ѭ��9���]_��u�_������W_�}��_�u��U���]���U_��Uw��PS������? |
|||
�F�OI��}>�O��I� |
|||
OpppS�=���4�������}>��j5�ݷ������ߨ8776��ooooooG&�?�o�o�on��۴��廻�����Q;�����N��������������Tsoooooor�������-�:_.t�\����0�:/G�e`)E_+�D,L�k*��U Z*���>Q�O-�bz���Zv� |
|||
�W:��<��<�X��k� �#PQ��$���·��o�����̊��Ef�CƳc��l�mygax[x[xZŞ����������`��"���z%Ե |
|||
�\�v��,E+_]��u�}v���+>�����S���Q�<�Ԉ�����2y0���ɳA���s ��Mu0_>`�w0�[ ��`��� (�������h��|uM0��/�A4��j��GXG8� ����<_]w����w�u�_�}]��w�����W]W]W]}�_�W]_�}�����)��l��J�2H�+��Ҋ�]� ���h/������#��ID�N=3���������U� |
|||
䂪�S3��$㈖+��.#�q���f�f�'�<�2(&�]!e|�'̎u29�"�L�T������ت�YWWWW�J�G+�$�!�HC%��.(G��G������?o�o���S���Qkmn�]ku��l��&�O��j)=�����O����84�Yku�����Yk5�� ?Nnm��vݹ�M�{v�7�mۛt�7m�n[�k-f�YK)m����f�P\�O�����Q���O����
l��u��[���)>�?�o���S��AfsVg5��f����lf�XՍcX�5�cv5�Q�Ʊ�n��n���34f��7cv5�cX�5�����kƱ�k��3e��o7f��k5��Q���ꮯ�����������������������������꿾�ꪻ������������i��������}>���i�~����zN��N |
|||
�~��7� |
|||
Opi���O�����rkov���߷�-�
���ooj�����h41��oooooon�S��幹nn�L��mD���NnS����ooooooo��h�skn������oo#!�������|�B0"1�aH��ʁa���K���J� |
|||
�00\�^T�Z*`�VT�AfE�kY����V�Zu�0�\�c��:�KX-L�҄)�m��ɸ>�7t���G���_��
̈�Q��X4��A!�[ ��8�
��˾2:,F,l^�ƅ�ƅɕ&�.0P`��CdXаW |
|||
�V�R�/\�v�:�"�ꓬ�q*�R���+�X]SJ���I9��:�����"��J�I���c��L`�P\�Uez��'%L��;�sD��Q6 ��V-���3,P�݂5U+�q"%��K�DK�t� �&*��S�ƾ0>��wvU����B����W�꾿����������뮿�����������������������Wwwx@`��bL`z��R�f |
|||
bau�r�s |
|||
�9�� �"lr' ��P��ª�[s�!G���WW�AuJ�R�yQ��K������ƾ9ĺ0�����
�*�2,�+2,̉�d��>�(�,Q$��;�Q���9���`�(��FQ�Q{���J�N8�j5�q���
�&d�fS�2C0��+�����Z���x�Eq.� |
|||
~ߧ���)������{O��n�[kmn�YI�>������=OS���ppppj�]��k5��Y����^߷Xr�ܦ������ooon����ڦ��ssv7��0����[��k5��QH8888)�~�����}>�OK-n�[���ud���=?������O�����f�Y�՛��y�Qz-��Q
cT5Cx�7cx�5cV5cx�7�3���q�F��o����o��jƬjƳL���{-e��7F���f�Y�����몿�����������������������������↑���������{{n���ڤ���I�8)=���P[����������ޛ�����?pppp\~x�m�koon��ާ�����������kMH�E��H�ik������;�NSv�ݹM�D�i4�M�[�6�ͺrܷwm���{{hX�~�M�Gkkj����ۢQ��)l�)l�){0Jc2Jf̠��/x��|�U��T�I�>V��+�:Q�Hٲd�ii*ɬ<�X�+�zX��V��X��b���Z���ح���w���ǟ�Ǡ�1�3fG�Y�Q��cc�s8F_.����л��������M�eI�� E�.H-b�p�Gb�z����!�s�uϭ�<��%VQRZ��J�RrT�rU�U:�U:���� �0����1 ������Iu��ϘO>`�퐝�������X��G�M��OO0���� 렞\�)��;L?wa��#�k�U�I
/��k�����������������뾮�������������������%c`��`���XǺ�]bv6G�Z�����3��;t�,�ˑ3b���D\VK2X�����U���]�-�.1Wx��Cq�I$w,|c�l |
|||
���"vX�+�Õ�e2��E�ό�>2 �b��1L1L |
|||
(�ėؒ�R�������"r!� �"�µ��§�_���Ep������z�ߧ�����* |
|||
���n�[����[�f
?�~Ooooooo� |
|||
O�n�[K5���k5v�[��{t�ݷ�m[{vݷ�mS{t�7�MS{t�ݷ��OS���k5��f���u�v �����������i�51-�R�e-��t����-������z�����f�Vk7F��^E������Z�F7��,圳�r����
��6��3��Vg3F�9ctr���9g(���7��-e��_/���^f�to5��Y����뮪���������������������������������↑�������{{n�۶���m.����ߧ�
����~�e�snۧ7-؟������~߸886��M���ۦ�����jۦ��5&��I!��3����'w-�r��ۧ)����3(��G���h����ܶ���r��)�'����C��SkM�����j��X82E�Ŭ�x���� �B0#2����3�#��ȩ���0TF,0�%2,L���@�1fK�.L�X�j��K���*�XT,X��Ս,��N�t ��T�N8c���b��p� ����"����� &�x�c`�l��%���\@`�����v�ƅ�qr���L`��1r�0�q`ౡ`J�d)�[ |
|||
%����d@�%kO-�i5Ϯ,iP&T'T�Q���'@� |
|||
�Ч�"QJQ��H��c$�I�&,L`�Z� o�3�/`��X(��3B���8�͆@]`�%YbC�}����_MN8�D� �����ʩe���Ʀ5����\����/V�l*W��T,u�]}W��������1������}_w�.���ﻗ}���w{}�������NB�(�vb]`5���F�U�)�R��9��wԀ�&dī7s���*��T��qN��9������ �]��E�݀���8cQ���`40Q���`q�l�; �s��;(0L�A��!JQ��i�_Qɀ,a�%A�q��3R��QF�0c���9%R~j׀p^�{K�/[R�uX
]D�&�]��F�����Oo[������%��e����]�b
�;�O[�����J����u��f������������������ڦ���on��������۷�wm��D*�z�f�[���uE�wi�w{v�ߜ��k�m����Y�f
='�������{z��ާ�Y�5f�v5F(����|�_/e��|j#�s9�X�����sd�k5��f�Y�j#��n�X�Q��r��/�����_/��Yz1cVn����k������������������� 1���������������������z���ۦ����6��R].�݉�~��������u���������cz������~�e%%���5���ۦ������~�����5�I�RC��:
w=Gs��*�76��ookkn���G����Z=�&�����n��74��s�����h4: |
|||
C��m�MMmmd�42H[.H^����̝/1��8�1W��W����0��f��$$�HV�����Q��5��[��cJɧ#N�r��<�oly���)�K�|P��)��Rc0(3FE&�lx�4<5Cc�x���!1e��L�E�p_t^d�'d�&�((L����E�C�ގ�~-k�ik�YV}T�U�<�J �$�NH�NH��(Ԓ��A!<�JS&�����AUA���l�����Su0e:`�l� |
|||
)av}���}`�_0cD��5tS3F�a������v����I9� W��E����������뾻������뾿����������뫯������������#��b��b��z��l�͒9G2Y�$�H�W" |
|||
fǯ�UՊ�ǿ ���u2I��Drba�R�Ko�Q���U�
�|�#�1L |
|||
�
�c'V�X_}�)Q0�N�"�0�1��b������ފ�g>�K���t�A�.�L|b������CbK�^W�����렾�� |
|||
�
��G�(��{z������������������Yk-e���u�T�wwv�Q����f�[����]>û�����j�����oj�i���j����Mi���j�����rn���[��Wk5v���u��f��0�;�N��MTk&�[��R�YK)<�����ߓ������=Ooooof��o7cYy����_1���|�c1���c�9���s&j�f��j�Q�ݚ�P�#��r�1��Y�f2�|�b�e��z/���k7F�y���������������������뮺�������������������{{{{wn���i��m5$����i4�~ާ�����[ڶ��n����j�܉����zߧ��I��RJII�6�M���۷w�����֛M��I �h3���h��r\������ޚ���2�EH�Z+EH�Z+E����57����&Kd�.KGl�g��
�Ah��M��SXT2�`�`��|�`@`*0"3FDfB���c#�p���ѐ�b���ʖd}��ə2'!y2��zȔB�VC8U���b�Ѩ��b��q:��#h���@�+:B�<D�*@v����Ȍ�+ M��/q�`5��`�p$/q�|`DaY�����u�扐�fL�2$dY���b�5��1������C����.R�H���B�ʤ�T��� |
|||
��O�D�*R�L�%T����@ SR�@R��@L�l`*¶ |
|||
�mJ���Yf�w`������}`I�L��خ���"]�K����Q�`q�s� \�}�0F^�{ԯ�]__]u�u�������/�������}_r���wu��w�����w�|����0̪LHw���N��v�a�Y(�(0U��`z��r�^�`�wr��+Us���J�\��ԥ)�(D�!h�DȗEq������Z���qGq�)0Q�0� d��1qL��6'��l�&Ld�$�&��b��LGs`
lJ��vY�u9�jUu*]J�\�8�&X��%z��ש^����T�1(��%1J�X)Es�|Ooon������������O��%��[��If����e�aTk5v����Wkmn��Ғnӻ������mS[{[[[[t�kM�MZm6�n����۶����v��ݷw50��v�[J�e�����j�S�Y����Y5��m��3��po�S������������ټ�5�f(�_/��f3��_/f2�b�X�C��c��3y�7����y��o5F��Ghs��d���c/E���c1�������cY���Uu�W�W����_�}}_X���u��}W��U�_U��U]���;N�{[Zkj�i�Ԗ�i4���RJINB��=n�0�5�����֚��S[[���N�nIi-%����I��֛M�i�����vݷ��6�KhXCh4~������rK$�2J#�M"涴�m#(i���i�Cht6�Ci"M�ڶ�bęY&I�Q.{?G��~�R
!�-&�mY�2F3eȋ�����f�fI�0tb�N���)l�2�F+l�ĤܪNK�r�7��5��N�p��� N/~�q��7n |
|||
\���)z�=P ���̊١I�6)ƅ#xФo9 rr��Vt^ɺ�q�&�6�l�-��r>6�q��~*\�P��U:���Q�V��S�A�E��>��F��E)"S� Jeb�H?]��t!��S6,l���,�3�0Q\%������%�%�%� |
|||
5�q]���E�!��A�;�
���?}���M8����_������]��]�]�]��_��u���wW]]uu�_�������E.D1b��_b{�Ou�y01L�l�l �YD3��y;]X���X��W�+�|6C9�O1x�X��h��h�1,s����Ex����2(�����N� Յө����s���LɃҔP*)��(`O�
��ϰ�u0�}��cWA�tR��6��/ |
|||
�����^���1H+��Y+�]WA�] j����OS�����On�o[�����������f�J�e����Yj�z�Wj�z�^��ҽ�\�ܷ7i��ͪM�������ڤ�[Ki��]�kj����S[TչnnӶ�����J�v����z�],�z�e,�v�YJ�d�k8������z������zޱ�k�ȵ�����c1F3����f34g1f�X�&o�vo��T5f���n���r�Q�Q�͘�f2�c1��Y������^cX�5�]_������_W�}}��u�_�u�U��_�U�_�������}UW�nӻt�5MRm6��R].�G��z=��ZH���a5�I�֛M��ԛM���V�����#���z=%���t�kMi��Vյmۻ��%��]�R� ������d�IDyG��J�5&�D��)��R |
|||
A��ZCHt�E |
|||
kMd�Ȳ;#��<��,�=��������
��].��a��`�` b���~\>a!� �B0#2 |Ȍ��o�A��`�K�a�RF&�~D�Y�l k�d)�Y�q%�T@�b��`���Nt ���̀�ح�Zp����.������G�����`D`��C@,� M��/F4�L |
|||
�p� ���� �`Dd ����E��d8��0:d]��Eɀo��N��|i��c+�R%R�H()H�7R�P*�*��PN�@�:� |
|||
p�B% `P�@j�*��JJT;LQ:b�����i��U�,d�̇�da�d��c�+�_`k�^����ZpĮ%�"�lOĶ �-�TqM%�5�������sT�J�z��_�����'�_������?���������wݳ��ww}��Ͼ}�w`dĮ�㻸nv���v��� ��F0Q��a�+��w}����Z�WU�UN�����5�/�|jc_ؗ��/ʙ�C�[=S_8�]�%�5��k'��qF�qF�p�$� �S&0L�1�c%I�b��lN�W�q�:�t�N�GWK���ԯT�\/B�xxU/�ِ�������L�^LȤ��N8ݷw��wwz������ޛ�����O����f�W����z�^�W����z�W�a�����r��ܶ��M���T֚�mi�5%��]-&�Rm5����6��i��r�ۧ-�ssssO�U+���z�W����z�^�W��������O����wwwwwwwwwz��wq�j�H�b��2�c1��f�Q�3Fh�b����g7!�j���kƱ�kƱ�kƬk739�ՙ�Q�͙��3f3c1��|ŗ�Lk����������������� Ă�����������������ݺkM�I�6�K���KGH�t�E��hm�II��m6���t�m.�Mi��]6���t4�E��h���R[K�����զ�۷wt�]�g����z�Q���$GDYdY
��TC��
~�h-���) ��
��Ed9
dY�dvI3��=�����?���.�!��ː�ː�����̑�$�40H3����!l�)lY1���a�rm�M���<)W�y��. R���)�\ �{�y='5&��������'wxP��n�'
�Y�A��4'Ƅ�x�pPr���(�����$�<R2�I̛l����q��X�$11*�I"�I"�RH�RJ��?P��B�NB�Ӑ�Ԑ�Ԑ����~��Ђ��B*�EWB-�6ȍ���������A7<}��a�0�&�XEr��E�.!U�.!��S�C}�/��|��� c��w�}wU�W}w�}w�}w���_�������W]]uu��W]]uu��W_~AR�+�bk�
��-�$��3c`3c`2cd1b�i�/��$���V�a�xoWBNX_6,-���q�Qq�q��q��*t%���5] ��: �1#�aL.��Σ'�ό ��aS4L�D�t�L�`�"�-�t���-�L-����Vł�ec�t`�}��� ��*��2����Ad�er�l� *(����������ݷww-��~�ߧ���zOoo[��j�]��R�Uj�](a�wv���ۦ�)��soMI��kM��i��m�j��].�ڴ�m6�M��i��m5���M�[{vݷ�nۻ��j�]��T����](���=��7����{~��ܧw-�wwwr����ݧq���Q{/f(�c1��b��,����Vk5�`�_/��v7��Ս�x�
��n�Q|�_3��g5���l��Q��c1��Yz/F,�^ƿ����������������� 1������������������-�&�i�.�K���M&����Z-�C����%�\�;43K���M&���t2;"\�%�ѡ��t:-�E���M&���t�]5��mM�K��A��g�z����w;DTE��E��
��Q6&�ބ���{=G����z�d,��
�Mblyq
��
dYdVv��s��=h,��A�����l���E����p�|���90!1��"3+�C�!P��͌�A�`�j,�3%X�f |
|||
0B�yU����W��J�X���@u�o�4� ��'hT�(�+r�t�"wx��6�F�7��i���&�C@�l%7��@�4���P6
N!Ņ�E��� ����,�����<(X�E |
|||
(��ba�k�'K�f%��iUZ��B�)UR�ʁuRUE ; 9��t ��t*5�ڄJR�H$N���]1@�&%t́L�d� �ȳ1�,�!'!j�
J��(�*���;'s� �sfq�!\�lk�X�D�+bH���)���N)�⺸���3���������������������������������������������;�ظ�
s�r��y�2�f@b`���9u�P���&�QT��T����k��M�6nvW8��1�5���pƺLP銝J�B���T |
|||
uUx�8q��8���`d�S�����c&�&��%I���98��1%�b@Q�U^�38��8�R8�}JM� X�tKb_�C5tĀ�L�Rb@b�2�̀�)Tr�wsvܧwwi���v��������ާ�i������{{z�� 9Nӛ���9�M���{V�շ�i�5%��t�m.�M���V���T��i��]-&��]-���tյM�S{t�7�nnۛ����pM<��������wwm��{{{{{sssv������ܷi��ČQ�1��f3c3��9��g3fsVk5�̰_/��ي/���7f����|ŗ��|�f3Y��j��h�g3��Q��b�f3�Ř���������������������뮿������꾿��꾫꾫��j���m6�K��R[I��t�CHt: |
|||
C���Ih��2L��2L�$����$�2L�$�L�%�[=
��Z����%$��KK�����m�j��?G����{A4SK6�ٿn�R X!��Ac�D��a� ��X�FA"�ؚ�{a���6'ǗP�A,hcj�ߧd�%�) ������~�� |
|||
CbcK���b�r�q�`����$%�2D3���$C42D3c$L�3�D��7"�\@�����?�*~�A�*O�)O'Cv���ہ���gw��o�I�������
��q�͉���n5���x�nr� |
|||
M̸��`Tg2*3FG�f��e�e |
|||
YR�(G:��."(����"SJH�ڒ%:�%:�RP+~� �� O� Q� Q�Q$�h |
|||
>:�Lع%t!��G*��R�J��� �Dr'A��AWB |
|||
�A]j�v �b�A:�~��1���!\AWE>b9���!�LA:�~u�L�]���]��]��]��]��_�w�����]�w�]uu��W]]uu���W]]a�EBn�&��$�bI��i�
'Sz�_+`/c�WE,�X=���� |
|||
����ª� |
|||
��Uw`���t����㩆1݆�tK�$�BI] ��MU��f½u�
��v=;��d3��N�A�!D��m&d�^�����J�r�@�R�W��+��n��;�;�t�e���1Dq̂qd�R!�QT��T'�PkD��em��hܧ)�������ͻvoon�S��;�n[���������ݹ��nmۛ[[v����շi���ZJK��Z].�K�����������I�.�K��R].��RJMV�7mm�m�[v��9�Nnmӛ�����۴��9NS���o[�۲n��������ܷ-3m��z���b�fs9�3���s4g5��Q�2�|�c1E��_1��|�c1f2����|�f3tj�f�9�3���sg3��Q��3!{��������������������������������꾫�������~�M5���m&�I��z;EHi
��h4u�L�$��<�#��:#�2�#�<�#��<�$�3� �
���+GH���I���].��H���Rjv8888-���z��ާd�����m2�K���M&�K��ht:M&��i4�M%���D�9�Nn���{zߧ��*
�Zk �l%23"3)���!qpK�L��ʣ"3 B4 �dtdGFY����E0U��gd�#,�
��/D�B��ԮF�J��$| >K�; W� ;�"L
Z48ح�Spy��:&q1��eHӀ�\<0f�c�c��l�`�h��1 �4p�,p%0 X`D`̈��d"4#A!��((X�����(*8cU踖�Kc�JU"eITĩ*�:�ʀmT������`? AN}8���p�u���c%X2�V`�$R@,�2/&d���܊2 ��vM2Q�t�S�1B��.�T�{�9�en+YqL-�k.+�5п |
|||
�@Y�tݎ��1��3dk�k�7蟉lU�_���_���_�����������_����u��w.�����w��w|����2�]U/����f�S�p̤���܀c�2�����k��g��R�+��s �LS�w;���c�(�1$Ws���h��2_&i�1 eU_e.wwvE�]J��|�0'�9�8��)��� �bU*�[���; �R�*T�|S��6ԩ����q�� �*'LQ�w8���R��&$Ę�
�������ւh44��F�ݷnn[{{v������9�����������M�{����7�Mmm[[Zm�Mmi4�KI���M&��I����[�յNY ��+�aKI4�[KI4�M-5���6�����巹m��[{tݷ����������n������Ӗ��9�NniA��4�G�[�k�|���s6k3FsY�5��Q�7fdc/��e��c1��ٜ�g3����c/F3|�ff���Y����l�f�ќ���j�j������������������ 1��������꾫������?��gs��4�M�G��h�9�Ag���I2:$�<�"�,�"�h���~�(�Ȳ,�"�<�$�;$��?����E��h��I�аv������M���w#~������ާi������i�6�M��i������V��i��m6�Mi��#w{{wv8887�����t�m�M��^c2��!�Ƈ�Y��9��9��Q���#�42+�G�q�m�i�%!�r_�]�_�]�?�'~�?P �ӆ��h6klH�6��A)d����>�T�T*��lݎ�!���CBA�l69Gq�L �f3"�9�A���L��L��\��L����#�D1\DTC�u"�V�}U� S�T����A�*O'ď|0~P�i�פ��m��6F؛!�bdD�r�r�r �BFvB6X��S�K)��9��uXw��X��cb0c���a�0�q�E�Cq�q����Sb0�L�7����U����_�]��W}w����_���_�����W]]uu��WW�w�w���XB�/��K�����s����[*�A�LϘ<�LU`��r�q>`��U;w�<��y+�{.A��[;�a8dːi+�i*��'�/����Ǻ�G⚼�������ggS$�#�H'b��)�LO] ��6ņ�VUК��=�'��5rˡ����s$�r;+��R;/"�v)��E��y���A���3�8����ۦ�wwi�9���NS������ݷ���m��[tյ�ڴ�V�I�6�I���KIh씘�Ǩ�kV��۶��7�D"��=��XQ�=%#���M��mZm�j�mmS{T���7���MӶ������m�nn[����ݷ����`����
�=�űl^��|_���5��vk7f�vn���n�aɇ�C��Eb,E��?A�A�0����"�p�$s7F�o7F��j�f���H_��|_�l[��������������������������������������������w;d�.I��-�E����<�-�d�%��Y�QCC�������CdY��G�Q&I������Gh�Z-~D�.K�����{sv�ڦ�����������{wu�����ԛM��ii�G������M��i�����������߷�>�y���齫ov���h#7�������Dh��՛
�����!�Z����,��僅��"��%X�')0M�W\�u.P��(]�P��$|��Q|�����衢� [�a"1�bT�VJF�������T�P+J�����q��t |
|||
��9���M8'�1�Q0"3fDfAH�Dg4�r��er��YB�A�p�8��D�+�l@��*�RU@���STҠVNH�G�����x��0>J��; �%y��_ Yf�d(`�0�.��&��� ��i(d�0ŋ��Q��NK�Q�&��Ā
]`����X�Q�5�����ƾ0�_=z����LF#Q�W�+" |
|||
!Y8��IJ*�d_]�_�u�_��_�_������_�����w�w�Ww�u�w}]���x����z�����#�:�<���`<�9�����/��s�\�J���b�wv�J�1 /I�+�͆.L0 |
|||
���=]��^������� |
|||
�����wvg|qX,˱���R�;�sU.�4N9�q�
�N�@����`�&%U*��+�`�b\� q]���W����\<��zG�Ah3��=����M��t��ۦ�齽������j�������kn����6�Mi�����t�G���e��V*��SB���nS���m�iY�P��8�#^�Gh��K��鴶���m�kj�����kkkjڷ-��ͽ����on�ۓvݷ�d�{=g��?���zg�|_��{�1|c�2�o7g& �%�����+Њ�X��*bABbCBb,E��"�T!�T!�8D�%�$n���c�1{�1z��|_������������������E.����������������?G��v��r\��2L�=-
����E��YGd�KdtG�����gl�H��dCdy���GDYG�d�����g�$�2L��s�����Q�sr����55��i���Po���m0�K���].��im$�Z+Eh�Z*EH�$��M%���m6�K����o�����m6֚ڶ�-�sH�Xj3a�2��AY��Vn͆�K���4<1�c"��� |
|||
��bRː�\�+���J�\)]K��[�w��4 o'�H���ɣT�� �ڡR�V+U%#�i@�{,>Z�"�#fATr���;x���0����ř̉���ƳB��PRR� |
|||
Je%2����1�����<�T*Sj��j��j���h�WB�i������|,~� a����6Ͳ4Odi�dm����c��T�Qe��� �-�Ab�6-�Cb�1�X>��~� �s8�0C���0A��cV�W�ZU�V:��NC�7�5�U �j/��������������������������������→������.X]~���X[�\X�s��f�k�ij���ߕ�o����~�-xoS�����-J�j� *,M)Pe���aox[�~s�ǯ�M�������;�\9�1U����by�_1G�o�1%݆�s
��IUA���آ] 됞��UE*�VOu�{�߉�������=����=��gs��;�����7mS{{t����ܚ�ڶ��j����kMmRm5%��i.�K��dE������8�ѯkjۧi��7��7-�nڦ�EET)��'���"^���t�[Kit�kM�i����jڶ��j��ۛ�{T�ݷ���M�h�;��Y��{=�������R%�ؾ/���Ōc1�cb��Q�#*!�V"�X�Њ�x��Cb |
|||
�C�q!�!��x�P��x�b*��_���s�,c�(c�|_�z������������������뮿������������������z���������{wv�߸7�����N��S���{V��5mSv��7����n��������ߧwm���{{{~�ާ��kkkj��t�]&�I�����z�a�or�ܷw����7����nS{{{{�{z��ܦ�)��n7�����M&�K���v���� ���R2:2����B�@� �tC�+��� ����!���:�#� ,�"�� �,P>P�@8(\��A�`�(Z�lC�-<��4.�hn� |
|||
�-(D�4P�@U)�(���jx�� �� |
|||
(2���R� �X82e���W..�@� ��"�`xh @��d������p�p ����rT�PB��eL���J��� t�R���/�P���ר\*R�HT�T�J�"�ʂ�H� � �'"
Q�#$F�
��*+iX�E�d]�8d]��b����2�,n�ٹ���5�ٜ��Q��D�4�9`�� 9��]�ލ|oF�1\k��J��Q:� <�TUӗ;] |
|||
�A�*�np��Y�,�A��_�����=��`"��������������������!��dY��E�2ȳ&ɕd�3Fo��; �s��w+��fF$M�y3"�'&e* �8������\pƞp�Ԫ:�3ʀ$r��u���WB�Kb��%�lPD� L�2d��!�E�6ȹ3Dʼn��r5:����$�v�㜮9��� �e�l`��* �q�k�[��M|oƾ>�Q�N�@�T����|�B��W�,�K!~%�'���~J2�?G� �V��Z�F�Q��ҚQ��:�N��j�Z�C |
|||
cS��4��ҝN�QI�E'�i�=��ڍ>��ܗ%���������O�S�����u�\���,O���}='�}>��Z�N�SjmM��:�F�U��jmN����F��ڍF�Q��i��d�����L�O��嬶Z��{-E�c1�Hf2�|�^��,�^�Y�ŗ�Y��b�f3fKDc1��Q|�b��(�b�ٌ��ٌ�_`bf3�/���^�Yl�_���� b#__���W��uX�u� b'����ߧ�����A |
|||
�N�Sj�T�S���mF��jmM��j8 � |
|||
�F�SJiF��jiN�S��Z�M)��� |
|||
=o����������������<�E(�ڍF�Q���O���}>�O�����I��~O����>��j)F�Q��ҍE�U�{{{~�ߧ����0�g:2��`hX:���dX6t�є#8�!�D3c(�Qd�l�R�Q)L�R�Dd�e��$[�H�Z�m-H���QJ(�R� |
|||
u�E��:OZAZt��TZ�U:�U:�R�X��X��\V\�����.�$ZYl��]{.���H-eRYT�qd�ز2��GKҮ�%]�J���]KQ��(�ҔJ�JZ�ʊ�8.�-E��|��ԠU�@�T'l����ɇ��0�6(n�A�����7S�b leL�L[" |
|||
'b |
|||
�b(�1u�;�A1
t!��U+��1cs�����5z�=z������������� �:��������������������������63�y��VeC�D�1
���_i/���)T�K�&*H���N�T6�|�Gq���)��WI+���Z�N!�n�g8�E�z.#�q ��%gd��d���BtL��4)�(}�������������G�r@�0���J'd�
���w��3���UR�
U#���RJ��� $7 $<D��D�qAPT�.{?��贑'�j4��=���E���u4�S��(���S���mM��R�(�����O���}(2[%��_ާ����~��ާ����>,K��4Q'��}>�O���5���iM)��u�QJ#Sju:�SjuT��j4���j-F�O�e?��[�`�*��e콗��|�_1�о/c1��f3���f3z1��f336���n321��f2�c1��f,�c1��f1�b�͗��|�Z��z/E������:��C� 1� �F� 1�����?���88887iͽ��ڝN�S��j5�F�Qj4��Q�a��<j5{Q���F�Q���u:�N��a��ۃ�������}����{z���ۤ�],j5�=(�ZzOJ-?'�*
?�.���������QI�=��{Q��iXK�۷������h`td�����3�|���4��2�#�62
C��0PHP�L�r��A�ed3^�|+��
���]��s��P�8^��B% �I�4���,:�BH�t*#P�@?P�N�"�~2-������.. f0������t��6������#�*2W*d�fT�Rd�Jp��|*W�(]�P�4^�c*Q��SJS)�G_�>��HtBt@����R�&Wj�T���F ��#옹0��E*T)'����q�\v;�uEXK$�22P��$/w`'UR�J�0�ª0!ƺwLP*Ut�E3S]0�q���`|�Z��\ { |
|||
�jp�����V b_��� b-w���������u�������b�*�Cd�d� �R�j���7���k����K�r�$Ȝ�L�,��Z��ε�a�Ꭳ�0�q���
�UԨ!TS7 |
|||
�Ar9�ێa%�N%�����]>d�2,�;dY�2U�U��nL�c%�9���q�.�s��c�(�>��f�`��T�0�5����.��JA|�����/R�c����;�lS�l@�%�N%�APi�
�����$4��X�QI�=����Qj)N��ڝN�I� |
|||
O�J&��R�Q��j$�O����?����y�ZD��~������ާ����{{{~��E�sџ����Opi��}>�j5�E��4�PZ~OJ&�SJiM)��5�>��ҋO�.���=g���PppppppYl�^��,�b�������ay�1��f3�3F3�A��X��C�sa�@�GB,<��&3�3F3��c3f |
|||
���b�͗�c1E��_-�����W� bW� b1uX�����W�W�W�A�po�ӛ�{[[��ڝN��j56�O������_���~��=��R�Oi��Q��Z�N��(���������Pppppoo���ۻ���&�ZY$�o-Qi���O���*
��i�vގ�����{O����h�,�Rm�z�����߷���0xc<3c'�Yp̹��X �@��b��͠� -�BZ�#�� |
|||
e�!&�'��>�^�|k�.����P��� �j��f̦i��JE� �j5ju$jiI͌����e�������B�A`�8&����t���Ж�TEqdB�UV �)�? |
|||
c^�v�"�r5�T�E)@���S�:a�����!
>���RyM)<�VyV�<��|�L@O&(�U�r��$�d�X�NS���`��(��"���,o�9��q����s+���p�S���%:1�!��!˩�N�=8!������������������� Ċ�����������������lc`��� |
|||
�ǫ�C;$L�a�Guh���A.HX�����$���6�:�����WH��tE�"�xG��]ݒ]�v>#�q�����6vH��e��&�A�;&<QK('����L�Ԏˑ�r#���Տ�Dz�;����t��H+��z"��hix��b{���"(����#����ߨ7� |
|||
���@����AhtP�i��}>�Qj)E(����'�4�{O5�F��Z~ |
|||
O�����d����I�����{{z��ާ��z��������L����������Z}E(��F�I�
?��������Z�Q���zO���D��49�;h"����ߨ8882�^������Z�e�͛����c؏�;�<GB;�;�<@P9a�Xr����#�t#�t#�#�t#�x��X��o7���[-f3|�_/���������������� Ē����������������߸* |
|||
~��ۧ-��55i���R�F�Q���O����{{{{{{�4�}>�O���Q��j-�mRkoor��7��.~������ݩ&��ZK��z=,I�=���A(-��ߨ-�\�۶���蠧� |
|||
~��'�������YG��Z]-���Swww{{z߰,�#�%FGF@��x������:����� x8@Ȁd��t��( e�(2P�"��&,��^�z��'Z�k�@����jt |
|||
�T��t�҉��¤ĉI` |
|||
�= �@�1P�E�H�J�*�)�@��t�� �̂!��t$#�G��)�1�%�� |
|||
��������&(X�%ĶaY���&^�x�R(F�)@�������q��B)L(D�*Q�)J�r�ʅ*�T�1�a)3�2.]�$ ����3'ɋ�p��0d����i'�eJ ,(\�b�����u���^�B���])ɉe��Y8UB�+!58��qL��u��/�®������������C����������������������FX(�v ��x����b��2.Ld�ȴ�oN;�Ԁ�"rbUCW;�����K�ۜq�`[��T���Ml "!WЬ�+���wqF�5/�Lk����`�&�&̫�g��&L`��c% �PbF�sj��s� :0M����w;ҥ�Rܜ��5��R9Ԥ�K��V�uꗶ�Z�o���ľ'�]��D�?O�����AhE��4
�qbz���R}F�Q���������ߨ8-E�������886�Q�;��֖����{{vݷ�i�vݷ�i�z�߷���!��z�������QI�=��*
���������M(�j4�����A��h4� |
|||
�7�
�~߷��_/�����#xݍ�vs�Y��s��E�XE�XEa�Vb��=A�Pz���� \aTPE�XE�X��%Ng3��o9���7Cyȃ��&c/��������_��WX��u�]u�X��u_������U�U���?NI�n����M��i����ZzQi��}=��O��v�ާ���v�����}>��ڊ|�]6�M�ۦ��n۷&������nۻ��RM���]%"�V����V�����o������7�M��[{��o����T�ȴz;EH�%���m6����ݧi�:1���Q�,t�X�|�l\p�Z��^r�'"8H4����Yk(���>M�N��u�������y���@���[$�S�r$���I�i�0X�H_�88�ӑ'�(ԑ)ԑ刋e��� Y�3�,�F��1�aX\�{.|�ŐYS�X&JR�'�; �xO��+�rԠ��PH����L��m���(l�J��Q�%S�:��U��Ʉ��F@�f� |
|||
*���e9d��K&��L؆`B�`B���)L�d1`{u���y��������B]:r9����c
/ |
|||
!�1�a<�aD�`y� ������������w����}`"U�u����_��]�w������J��c�cߊ����D��"�q�<�6��Au#��$ز���!��{�J������WG��bxY�O
�'��*�ǯǻ�;�2X��c�"c`������a��_�YH�fO&�������ϑ$��'c����=]WD<6IFK#�ȎD�
W��3_��9�
�~?q�E|O�[�����?���.zh(��?��P��������i�������7�����i��~~����s����s��۶���n��ۻ�����N�oon��۶�C�.w;��B��pT}>��O�����AO��{Q�����i�D���A��Y�"P��������o�S�_1�/b8�ݜ�g3���Q��s��9G�xG��ax��{P{a�=�����"\��XIA�ds����9c�s9��ctr13��e����������� �:���C�����������������n��ڦ��4��ZKIt�Q'�����;����������}>�O��]5%����M��j��۶���v��ܷtԛMIt�M&�H�Z*E�����?�O�۬�M��m��m��۱=�O[�������h�sI���t֛MnS���������@,�K����%���,l"8!�dq���p � K).8T+*2P�1fB"��1raz���+µ�W¹:�z�r��n���H�m(n�R��}R��矜�p OIЧJ�ԥR�GKc!��츀�\B`����M4
���Àrl8A�z4�P`<T+*\�2����e���YW�W/T� �iAeO��KF�4 m��Z�+��: |
|||
�"R�Q�H� *L�TҰ�5�r�2� �r' H`X�Ɍ�aA�p,P���"���`n��W���^�� =��K� ��tV����W�^�x$/T�K�� �9N�M�Q��1 ���CJ�+������������ Ě���������������b�e�Z������~�,2,�)2.MS#�18�r��\����x9�W�j����L�V |
|||
p��b����G8+>�Z���1�k�,�bL`��nv˻���2ɓd��@4(���0yLN܁q���v |
|||
�?��+ԫ�@�R��8��u"r�`h^�yeꗂb�K�_Ϊ}`�ַ�s����ާ����~����ŏY��?g�����
>��O�����������������;���.K�^���O[���O[��;Nۻ������n�����oS���|�.K��h�i[������������������i���.?���{?��)z����������?��8��07�����r�1�圱�s��w. 0���X~������z��~��������LDTw�(s�Q��3�s9��P�r1
qc�������������� 1 �������������������ooookkkM���m-��RM���
��\�7i�ssssr��7)�������i-&���].�kkkoooon������ݧi4��]%����IH��C���i�����{u�������������c{v���*�A���t:+GI-&���JK���vݷwrA�$��R��)l�)l�!z.)0\d,�g3�X�8��6x��&�$��$��$���/ג�ג/ג��qղN�Fi](j����2��P\)��J5*)I |
|||
�I͌���r"�r�#4d��h��C!��Ѱ�;��rá�u�æ&,JU�d�2��2��2����Cp��Q�%��I@n���[[A[[ac{��J�'��5�)I*�I"�TH�� ͌���F�r2��6�92Ʌ%2�̝��(2�"������w`}}���}�߂� F]:����^����~�)��)��G)�������T����� |
|||
���� Ī����� 1�������X����OV(�l2$f�3�$g&+eSg)Q;������������"�fvs��1�D��"Hx��\"h���{�_�~G�,w���17V%��%�]Xgl� �0��L/'�
ɨd�9H'b��S}�/�Ex��}�6G��]x`��!�����ۺWB^�M�+�� ��z������z������~H=��Y��Я����?ooS���o����������>T��2[$�6�?������������nS��;Nӻ�����������bĔI��&Kg�?��'��������~����{~��z���=��g���O��~���ߧ����z�ޱ!�6q������s�(v�1�s��wX�� ���eC���������?B��X� l&�̎�r�q�r�1�s���3��r�Q��b�����E+��� 1+���� 1����ާ�)���kkj�i�6�Ki4�KIh�t�(7�Xssssr�ܧ-��ssssv7�4������i4�ZI��Rm�kkn��ܷ������KIt��Ii4�=%#�:Ah4
~�D�;N0�M�����6�j���Rm6�n�������h4 |
|||
Chtv���4�JK���[v���0����� �pdKK����~\>` �� ��� �p&�3 c�J ��,�}��@��ra�b��./R��z��
zu�k�^(�b0����� ��*��9+�W|�d��:ኄ* ����RU �C� |X>\�����`B`���C2#2 ��D\GF@.� p@@�< |