本项目演示如何创建自己的顶点动画着色器。场景不使用任何纹理或动画资源,所有内容都使用Shader Graph进行着色和动画处理。
您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 

1715 行
78 KiB

Shader "PBR Master"
{
Properties
{
Vector1_B9797993("Smoothness", Range(0, 1)) = 0.5
Vector1_F1BE6F9F("Metalness", Range(0, 1)) = 0.5
Color_120283E2("Dark Colour", Color) = (0.2196079,0.3529412,0.509804,1)
Color_3974F997("Light Colour", Color) = (0.145098,0.9490197,1,1)
Vector2_7922229F("Top Colour Min/Max", Vector) = (0.1,1,0,0)
Vector1_8D2F509D("Smaller Wave/Scale", Float) = 5.65
Vector1_5685904E("Smaller Wave/Speed", Float) = 1.9
Vector1_11C8BE5D("Smaller Wave/Height", Float) = 0.133
Vector1_A04E5E21("Smaller Wave/Power", Float) = 1
Vector1_E58F6327("Smaller Wave/Rotate X", Range(0, 1)) = 0.76
Vector1_5721F4C2("Smaller Wave/Rotate Z", Range(0, 1)) = 1
Vector1_5D17CBA2("Medium Wave/Colour Blend", Float) = 0.56
Vector1_72D9B0C5("Medium Wave/Scale", Float) = 2.6
Vector1_C800E0A4("Medium Wave/Speed", Float) = 2.12
Vector1_1C76134F("Medium Wave/Height", Float) = 0.1
Vector1_221E0A39("Medium Wave/Power", Float) = 1.67
Vector1_F44D25A0("Medium Wave/Rotate X", Range(0, 1)) = 1
Vector1_F68B8AAF("Medium Wave/Rotate Z", Range(0, 1)) = 0.63
Vector1_8403193C("Bigger Wave/Scale", Float) = 1
Vector1_B4A117B7("Bigger Wave/Speed", Float) = 0.9
Vector1_4735D5E2("Bigger Wave/Height", Float) = 0.3
Vector1_632F7C2E("Bigger Wave/Power", Float) = 0.97
Vector1_730BBE62("Bigger Wave/Rotate X", Range(0, 1)) = 0.37
Vector1_608CA392("Bigger Wave/Rotate Z", Range(0, 1)) = 0.77
Vector1_961065ED("Refraction Strength", Range(0, 0.3)) = 0
Vector1_F9DF03AF("Refraction Scale", Float) = 35
Vector1_2067D572("Refraction Blend", Range(0, 1)) = 0.5
Vector1_40E2F0ED("Normal Rotation", Float) = 0.5
Vector2_113ECD47("Normal Tiling", Vector) = (9,9,0,0)
Vector1_137DC7ED("Normal Strength", Range(0, 1)) = 1
Vector2_BE5D86FE("Normal Speed", Vector) = (0.1,0.1,0,0)
Vector1_A6C44B0B("Gradient Scale", Float) = 0.5
Vector2_1000B2F1("Gradient Min Max", Vector) = (0.5,1,0,0)
Vector2_FA95DCD5("Gradient Speed", Vector) = (0.2,0.2,0,0)
Vector1_95BDBEC1("Fresnel Power", Float) = 3
[NonModifiableTextureData] [NoScaleOffset] _SampleTexture2D_24F4BB82_Texture("Texture2D", 2D) = "white" {}
}
SubShader
{
Tags{ "RenderPipeline" = "LightweightPipeline"}
Tags
{
"RenderPipeline"="HDRenderPipeline"
"RenderType"="Transparent"
"Queue"="Transparent"
}
Pass
{
Tags{"LightMode" = "LightweightForward"}
// Material options generated by graph
Blend SrcAlpha OneMinusSrcAlpha
Cull Back
ZTest LEqual
ZWrite On
HLSLPROGRAM
// Required to compile gles 2.0 with standard srp library
#pragma prefer_hlslcc gles
#pragma exclude_renderers d3d11_9x
#pragma target 2.0
// -------------------------------------
// Lightweight Pipeline keywords
#pragma multi_compile _ _ADDITIONAL_LIGHTS
#pragma multi_compile _ _VERTEX_LIGHTS
#pragma multi_compile _ _MIXED_LIGHTING_SUBTRACTIVE
#pragma multi_compile _ _SHADOWS_ENABLED
#pragma multi_compile _ _LOCAL_SHADOWS_ENABLED
#pragma multi_compile _ _SHADOWS_SOFT
#pragma multi_compile _ _SHADOWS_CASCADE
// -------------------------------------
// Unity defined keywords
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
#pragma multi_compile _ LIGHTMAP_ON
#pragma multi_compile_fog
//--------------------------------------
// GPU Instancing
#pragma multi_compile_instancing
#pragma vertex vert
#pragma fragment frag
// Defines generated by graph
#define _NORMALMAP 1
#include "LWRP/ShaderLibrary/Core.hlsl"
#include "LWRP/ShaderLibrary/Lighting.hlsl"
#include "CoreRP/ShaderLibrary/Color.hlsl"
#include "CoreRP/ShaderLibrary/UnityInstancing.hlsl"
#include "ShaderGraphLibrary/Functions.hlsl"
float Vector1_B9797993;
float Vector1_F1BE6F9F;
float4 Color_120283E2;
float4 Color_3974F997;
float2 Vector2_7922229F;
float Vector1_8D2F509D;
float Vector1_5685904E;
float Vector1_11C8BE5D;
float Vector1_A04E5E21;
float Vector1_E58F6327;
float Vector1_5721F4C2;
float Vector1_5D17CBA2;
float Vector1_72D9B0C5;
float Vector1_C800E0A4;
float Vector1_1C76134F;
float Vector1_221E0A39;
float Vector1_F44D25A0;
float Vector1_F68B8AAF;
float Vector1_8403193C;
float Vector1_B4A117B7;
float Vector1_4735D5E2;
float Vector1_632F7C2E;
float Vector1_730BBE62;
float Vector1_608CA392;
float Vector1_961065ED;
float Vector1_F9DF03AF;
float Vector1_2067D572;
float Vector1_40E2F0ED;
float2 Vector2_113ECD47;
float Vector1_137DC7ED;
float2 Vector2_BE5D86FE;
float Vector1_A6C44B0B;
float2 Vector2_1000B2F1;
float2 Vector2_FA95DCD5;
TEXTURE2D(_CameraOpaqueTexture); SAMPLER(sampler_CameraOpaqueTexture);
float Vector1_95BDBEC1;
TEXTURE2D(_SampleTexture2D_24F4BB82_Texture); SAMPLER(sampler_SampleTexture2D_24F4BB82_Texture);
struct VertexDescriptionInputs
{
float3 ObjectSpacePosition;
float3 WorldSpacePosition;
float4 VertexColor;
};
struct SurfaceDescriptionInputs
{
float3 WorldSpacePosition;
float4 VertexColor;
float4 ScreenPosition;
half4 uv0;
half4 uv1;
};
void Unity_Multiply_float (float A, float B, out float Out)
{
Out = A * B;
}
void Unity_Add_float(float A, float B, out float Out)
{
Out = A + B;
}
void Unity_Sine_float(float In, out float Out)
{
Out = sin(In);
}
void Unity_Absolute_float(float In, out float Out)
{
Out = abs(In);
}
void Unity_OneMinus_float(float In, out float Out)
{
Out = 1 - In;
}
void Unity_Power_float(float A, float B, out float Out)
{
Out = pow(A, B);
}
void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG)
{
RGBA = float4(R, G, B, A);
RGB = float3(R, G, B);
RG = float2(R, G);
}
void Unity_Multiply_float (float2 A, float2 B, out float2 Out)
{
Out = A * B;
}
void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out)
{
Out = UV * Tiling + Offset;
}
float2 unity_gradientNoise_dir(float2 p)
{
// Permutation and hashing used in webgl-nosie goo.gl/pX7HtC
p = p % 289;
float x = (34 * p.x + 1) * p.x % 289 + p.y;
x = (34 * x + 1) * x % 289;
x = frac(x / 41) * 2 - 1;
return normalize(float2(x - floor(x + 0.5), abs(x) - 0.5));
}
float unity_gradientNoise(float2 p)
{
float2 ip = floor(p);
float2 fp = frac(p);
float d00 = dot(unity_gradientNoise_dir(ip), fp);
float d01 = dot(unity_gradientNoise_dir(ip + float2(0, 1)), fp - float2(0, 1));
float d10 = dot(unity_gradientNoise_dir(ip + float2(1, 0)), fp - float2(1, 0));
float d11 = dot(unity_gradientNoise_dir(ip + float2(1, 1)), fp - float2(1, 1));
fp = fp * fp * fp * (fp * (fp * 6 - 15) + 10);
return lerp(lerp(d00, d01, fp.y), lerp(d10, d11, fp.y), fp.x);
}
void Unity_GradientNoise_float(float2 UV, float Scale, out float Out)
{ Out = unity_gradientNoise(UV * Scale) + 0.5; }
void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out)
{
Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);
}
void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out)
{
Out = lerp(A, B, T);
}
void Unity_Lerp_float4(float4 A, float4 B, float4 T, out float4 Out)
{
Out = lerp(A, B, T);
}
void Unity_Preview_float(float In, out float Out)
{
Out = In;
}
void Unity_Subtract_float(float A, float B, out float Out)
{
Out = A - B;
}
void Unity_Blend_Overlay_float4(float4 Base, float4 Blend, out float4 Out, float Opacity)
{
float4 result1 = 1.0 - 2.0 * (1.0 - Base) * (1.0 - Blend);
float4 result2 = 2.0 * Base * Blend;
float4 zeroOrOne = step(Base, 0.5);
Out = result2 * zeroOrOne + (1 - zeroOrOne) * result1;
Out = lerp(Base, Out, Opacity);
}
void Unity_Preview_float4(float4 In, out float4 Out)
{
Out = In;
}
void Unity_Rotate_Radians_float(float2 UV, float2 Center, float Rotation, out float2 Out)
{
//rotation matrix
UV -= Center;
float s = sin(Rotation);
float c = cos(Rotation);
//center rotation matrix
float2x2 rMatrix = float2x2(c, -s, s, c);
rMatrix *= 0.5;
rMatrix += 0.5;
rMatrix = rMatrix*2 - 1;
//multiply the UVs by the rotation matrix
UV.xy = mul(UV.xy, rMatrix);
UV += Center;
Out = UV;
}
void Unity_Step_float(float Edge, float In, out float Out)
{
Out = step(Edge, In);
}
struct VertexDescription
{
float3 Position;
};
VertexDescription PopulateVertexData(VertexDescriptionInputs IN)
{
VertexDescription description = (VertexDescription)0;
float _Split_85D79FAF_R = IN.ObjectSpacePosition[0];
float _Split_85D79FAF_G = IN.ObjectSpacePosition[1];
float _Split_85D79FAF_B = IN.ObjectSpacePosition[2];
float _Split_85D79FAF_A = 0;
float _Property_76EBDFB4_Out = Vector1_1C76134F;
float _Property_6F727335_Out = Vector1_F44D25A0;
float _Split_1FCA8336_R = IN.WorldSpacePosition[0];
float _Split_1FCA8336_G = IN.WorldSpacePosition[1];
float _Split_1FCA8336_B = IN.WorldSpacePosition[2];
float _Split_1FCA8336_A = 0;
float _Multiply_FA212AA9_Out;
Unity_Multiply_float(_Property_6F727335_Out, _Split_1FCA8336_R, _Multiply_FA212AA9_Out);
float _Property_D24D4052_Out = Vector1_F68B8AAF;
float _Multiply_DD586B4F_Out;
Unity_Multiply_float(_Split_1FCA8336_B, _Property_D24D4052_Out, _Multiply_DD586B4F_Out);
float _Add_9955F712_Out;
Unity_Add_float(_Multiply_FA212AA9_Out, _Multiply_DD586B4F_Out, _Add_9955F712_Out);
float _Property_D670E1C1_Out = Vector1_72D9B0C5;
float _Multiply_E978714F_Out;
Unity_Multiply_float(_Add_9955F712_Out, _Property_D670E1C1_Out, _Multiply_E978714F_Out);
float _Property_1DB93E5B_Out = Vector1_C800E0A4;
float _Multiply_B6BCE94B_Out;
Unity_Multiply_float(_Property_1DB93E5B_Out, _Time.y, _Multiply_B6BCE94B_Out);
float _Add_93C00E2C_Out;
Unity_Add_float(_Multiply_E978714F_Out, _Multiply_B6BCE94B_Out, _Add_93C00E2C_Out);
float _Sine_B3E85844_Out;
Unity_Sine_float(_Add_93C00E2C_Out, _Sine_B3E85844_Out);
float _Absolute_FD2BA96C_Out;
Unity_Absolute_float(_Sine_B3E85844_Out, _Absolute_FD2BA96C_Out);
float _OneMinus_E054867B_Out;
Unity_OneMinus_float(_Absolute_FD2BA96C_Out, _OneMinus_E054867B_Out);
float _Property_EDAEC3B4_Out = Vector1_221E0A39;
float _Power_89128DC7_Out;
Unity_Power_float(_OneMinus_E054867B_Out, _Property_EDAEC3B4_Out, _Power_89128DC7_Out);
float _Multiply_456312AC_Out;
Unity_Multiply_float(_Property_76EBDFB4_Out, _Power_89128DC7_Out, _Multiply_456312AC_Out);
float _Property_AC775712_Out = Vector1_E58F6327;
float _Split_DFB50EAE_R = IN.WorldSpacePosition[0];
float _Split_DFB50EAE_G = IN.WorldSpacePosition[1];
float _Split_DFB50EAE_B = IN.WorldSpacePosition[2];
float _Split_DFB50EAE_A = 0;
float _Multiply_FA91F999_Out;
Unity_Multiply_float(_Property_AC775712_Out, _Split_DFB50EAE_R, _Multiply_FA91F999_Out);
float _Property_CCCFB6C5_Out = Vector1_608CA392;
float _Multiply_E9F86F95_Out;
Unity_Multiply_float(_Split_DFB50EAE_B, _Property_CCCFB6C5_Out, _Multiply_E9F86F95_Out);
float _Add_8AD491B3_Out;
Unity_Add_float(_Multiply_FA91F999_Out, _Multiply_E9F86F95_Out, _Add_8AD491B3_Out);
float _Property_3F20CEFF_Out = Vector1_8D2F509D;
float _Multiply_6BF97013_Out;
Unity_Multiply_float(_Add_8AD491B3_Out, _Property_3F20CEFF_Out, _Multiply_6BF97013_Out);
float _Property_D3C80BA0_Out = Vector1_5685904E;
float _Multiply_29383B2_Out;
Unity_Multiply_float(_Property_D3C80BA0_Out, _Time.y, _Multiply_29383B2_Out);
float _Add_E3E06F02_Out;
Unity_Add_float(_Multiply_6BF97013_Out, _Multiply_29383B2_Out, _Add_E3E06F02_Out);
float _Sine_8E517BF5_Out;
Unity_Sine_float(_Add_E3E06F02_Out, _Sine_8E517BF5_Out);
float _Absolute_931AE881_Out;
Unity_Absolute_float(_Sine_8E517BF5_Out, _Absolute_931AE881_Out);
float _OneMinus_1E5C6612_Out;
Unity_OneMinus_float(_Absolute_931AE881_Out, _OneMinus_1E5C6612_Out);
float _Property_49B432CE_Out = Vector1_A04E5E21;
float _Power_9AE27DEE_Out;
Unity_Power_float(_OneMinus_1E5C6612_Out, _Property_49B432CE_Out, _Power_9AE27DEE_Out);
float _Property_4660BD4E_Out = Vector1_11C8BE5D;
float _Multiply_6470DEA3_Out;
Unity_Multiply_float(_Power_9AE27DEE_Out, _Property_4660BD4E_Out, _Multiply_6470DEA3_Out);
float _Add_824718F6_Out;
Unity_Add_float(_Multiply_456312AC_Out, _Multiply_6470DEA3_Out, _Add_824718F6_Out);
float _Property_210419CE_Out = Vector1_730BBE62;
float _Split_847C2C1D_R = IN.WorldSpacePosition[0];
float _Split_847C2C1D_G = IN.WorldSpacePosition[1];
float _Split_847C2C1D_B = IN.WorldSpacePosition[2];
float _Split_847C2C1D_A = 0;
float _Multiply_FF63FCF9_Out;
Unity_Multiply_float(_Property_210419CE_Out, _Split_847C2C1D_R, _Multiply_FF63FCF9_Out);
float _Property_BE4DF16B_Out = Vector1_608CA392;
float _Multiply_39F59106_Out;
Unity_Multiply_float(_Split_847C2C1D_B, _Property_BE4DF16B_Out, _Multiply_39F59106_Out);
float _Add_BCC6A16F_Out;
Unity_Add_float(_Multiply_FF63FCF9_Out, _Multiply_39F59106_Out, _Add_BCC6A16F_Out);
float _Property_871072B4_Out = Vector1_8403193C;
float _Multiply_8117D6AC_Out;
Unity_Multiply_float(_Add_BCC6A16F_Out, _Property_871072B4_Out, _Multiply_8117D6AC_Out);
float _Property_5B1CDF26_Out = Vector1_B4A117B7;
float _Multiply_ADD9E620_Out;
Unity_Multiply_float(_Property_5B1CDF26_Out, _Time.y, _Multiply_ADD9E620_Out);
float _Add_79F60FE7_Out;
Unity_Add_float(_Multiply_8117D6AC_Out, _Multiply_ADD9E620_Out, _Add_79F60FE7_Out);
float _Sine_85F022E9_Out;
Unity_Sine_float(_Add_79F60FE7_Out, _Sine_85F022E9_Out);
float _Absolute_4F8844FD_Out;
Unity_Absolute_float(_Sine_85F022E9_Out, _Absolute_4F8844FD_Out);
float _OneMinus_8F4F4A1C_Out;
Unity_OneMinus_float(_Absolute_4F8844FD_Out, _OneMinus_8F4F4A1C_Out);
float _Property_AD6B071E_Out = Vector1_632F7C2E;
float _Power_9DCB8C4C_Out;
Unity_Power_float(_OneMinus_8F4F4A1C_Out, _Property_AD6B071E_Out, _Power_9DCB8C4C_Out);
float _Property_167E6FA5_Out = Vector1_4735D5E2;
float _Multiply_9E4F1BD7_Out;
Unity_Multiply_float(_Power_9DCB8C4C_Out, _Property_167E6FA5_Out, _Multiply_9E4F1BD7_Out);
float _Add_5B8345A6_Out;
Unity_Add_float(_Add_824718F6_Out, _Multiply_9E4F1BD7_Out, _Add_5B8345A6_Out);
float _Split_BF38371F_R = IN.WorldSpacePosition[0];
float _Split_BF38371F_G = IN.WorldSpacePosition[1];
float _Split_BF38371F_B = IN.WorldSpacePosition[2];
float _Split_BF38371F_A = 0;
float4 _Combine_5D5A6EB4_RGBA;
float3 _Combine_5D5A6EB4_RGB;
float2 _Combine_5D5A6EB4_RG;
Unity_Combine_float(_Split_BF38371F_R, _Split_BF38371F_B, 0, 0, _Combine_5D5A6EB4_RGBA, _Combine_5D5A6EB4_RGB, _Combine_5D5A6EB4_RG);
float2 _Property_D4063191_Out = Vector2_FA95DCD5;
float2 _Multiply_86B2E332_Out;
Unity_Multiply_float((_Time.y.xx), _Property_D4063191_Out, _Multiply_86B2E332_Out);
float2 _TilingAndOffset_37C09071_Out;
Unity_TilingAndOffset_float(_Combine_5D5A6EB4_RG, float2 (1,1), _Multiply_86B2E332_Out, _TilingAndOffset_37C09071_Out);
float _Property_4C95B6F7_Out = Vector1_A6C44B0B;
float _GradientNoise_1AA59D61_Out;
Unity_GradientNoise_float(_TilingAndOffset_37C09071_Out, _Property_4C95B6F7_Out, _GradientNoise_1AA59D61_Out);
float2 _Property_78823826_Out = Vector2_1000B2F1;
float _Remap_C3B2F9FE_Out;
Unity_Remap_float(_GradientNoise_1AA59D61_Out, float2 (0,1), _Property_78823826_Out, _Remap_C3B2F9FE_Out);
float _Multiply_FAFF27A2_Out;
Unity_Multiply_float(_Add_5B8345A6_Out, _Remap_C3B2F9FE_Out, _Multiply_FAFF27A2_Out);
float _Split_B44C4E4B_R = _Multiply_FAFF27A2_Out;
float _Split_B44C4E4B_G = 0;
float _Split_B44C4E4B_B = 0;
float _Split_B44C4E4B_A = 0;
float _Add_A40E349E_Out;
Unity_Add_float(_Split_B44C4E4B_R, _Split_B44C4E4B_B, _Add_A40E349E_Out);
float _Add_9F809789_Out;
Unity_Add_float(_Split_85D79FAF_G, _Add_A40E349E_Out, _Add_9F809789_Out);
float4 _Combine_AA9DAF7E_RGBA;
float3 _Combine_AA9DAF7E_RGB;
float2 _Combine_AA9DAF7E_RG;
Unity_Combine_float(_Split_85D79FAF_R, _Add_9F809789_Out, _Split_85D79FAF_B, 0, _Combine_AA9DAF7E_RGBA, _Combine_AA9DAF7E_RGB, _Combine_AA9DAF7E_RG);
float _Split_9965AACD_R = IN.VertexColor[0];
float _Split_9965AACD_G = IN.VertexColor[1];
float _Split_9965AACD_B = IN.VertexColor[2];
float _Split_9965AACD_A = IN.VertexColor[3];
float3 _Lerp_5D3FAD3B_Out;
Unity_Lerp_float3(IN.ObjectSpacePosition, _Combine_AA9DAF7E_RGB, (_Split_9965AACD_R.xxx), _Lerp_5D3FAD3B_Out);
description.Position = _Lerp_5D3FAD3B_Out;
return description;
}
struct SurfaceDescription
{
float3 Albedo;
float3 Normal;
float3 Emission;
float Metallic;
float Smoothness;
float Occlusion;
float Alpha;
float AlphaClipThreshold;
};
SurfaceDescription PopulateSurfaceData(SurfaceDescriptionInputs IN)
{
SurfaceDescription surface = (SurfaceDescription)0;
float4 _Property_A58D0047_Out = Color_120283E2;
float4 _Property_9E3F1B0A_Out = Color_3974F997;
float4 _UV_9F859596_Out = IN.uv1;
float _Split_BDEBD26C_R = _UV_9F859596_Out[0];
float _Split_BDEBD26C_G = _UV_9F859596_Out[1];
float _Split_BDEBD26C_B = _UV_9F859596_Out[2];
float _Split_BDEBD26C_A = _UV_9F859596_Out[3];
float4 _Lerp_16947B2B_Out;
Unity_Lerp_float4(_Property_A58D0047_Out, _Property_9E3F1B0A_Out, (_Split_BDEBD26C_G.xxxx), _Lerp_16947B2B_Out);
float _Split_BF38371F_R = IN.WorldSpacePosition[0];
float _Split_BF38371F_G = IN.WorldSpacePosition[1];
float _Split_BF38371F_B = IN.WorldSpacePosition[2];
float _Split_BF38371F_A = 0;
float4 _Combine_5D5A6EB4_RGBA;
float3 _Combine_5D5A6EB4_RGB;
float2 _Combine_5D5A6EB4_RG;
Unity_Combine_float(_Split_BF38371F_R, _Split_BF38371F_B, 0, 0, _Combine_5D5A6EB4_RGBA, _Combine_5D5A6EB4_RGB, _Combine_5D5A6EB4_RG);
float2 _Property_D4063191_Out = Vector2_FA95DCD5;
float2 _Multiply_86B2E332_Out;
Unity_Multiply_float((_Time.y.xx), _Property_D4063191_Out, _Multiply_86B2E332_Out);
float2 _TilingAndOffset_37C09071_Out;
Unity_TilingAndOffset_float(_Combine_5D5A6EB4_RG, float2 (1,1), _Multiply_86B2E332_Out, _TilingAndOffset_37C09071_Out);
float _Property_4C95B6F7_Out = Vector1_A6C44B0B;
float _GradientNoise_1AA59D61_Out;
Unity_GradientNoise_float(_TilingAndOffset_37C09071_Out, _Property_4C95B6F7_Out, _GradientNoise_1AA59D61_Out);
float2 _Property_78823826_Out = Vector2_1000B2F1;
float _Remap_C3B2F9FE_Out;
Unity_Remap_float(_GradientNoise_1AA59D61_Out, float2 (0,1), _Property_78823826_Out, _Remap_C3B2F9FE_Out);
float _Property_1F3017E6_Out = Vector1_5D17CBA2;
float _Property_6F727335_Out = Vector1_F44D25A0;
float _Split_1FCA8336_R = IN.WorldSpacePosition[0];
float _Split_1FCA8336_G = IN.WorldSpacePosition[1];
float _Split_1FCA8336_B = IN.WorldSpacePosition[2];
float _Split_1FCA8336_A = 0;
float _Multiply_FA212AA9_Out;
Unity_Multiply_float(_Property_6F727335_Out, _Split_1FCA8336_R, _Multiply_FA212AA9_Out);
float _Property_D24D4052_Out = Vector1_F68B8AAF;
float _Multiply_DD586B4F_Out;
Unity_Multiply_float(_Split_1FCA8336_B, _Property_D24D4052_Out, _Multiply_DD586B4F_Out);
float _Add_9955F712_Out;
Unity_Add_float(_Multiply_FA212AA9_Out, _Multiply_DD586B4F_Out, _Add_9955F712_Out);
float _Property_D670E1C1_Out = Vector1_72D9B0C5;
float _Multiply_E978714F_Out;
Unity_Multiply_float(_Add_9955F712_Out, _Property_D670E1C1_Out, _Multiply_E978714F_Out);
float _Property_1DB93E5B_Out = Vector1_C800E0A4;
float _Multiply_B6BCE94B_Out;
Unity_Multiply_float(_Property_1DB93E5B_Out, _Time.y, _Multiply_B6BCE94B_Out);
float _Add_93C00E2C_Out;
Unity_Add_float(_Multiply_E978714F_Out, _Multiply_B6BCE94B_Out, _Add_93C00E2C_Out);
float _Sine_B3E85844_Out;
Unity_Sine_float(_Add_93C00E2C_Out, _Sine_B3E85844_Out);
float _Absolute_FD2BA96C_Out;
Unity_Absolute_float(_Sine_B3E85844_Out, _Absolute_FD2BA96C_Out);
float _OneMinus_E054867B_Out;
Unity_OneMinus_float(_Absolute_FD2BA96C_Out, _OneMinus_E054867B_Out);
float _Property_EDAEC3B4_Out = Vector1_221E0A39;
float _Power_89128DC7_Out;
Unity_Power_float(_OneMinus_E054867B_Out, _Property_EDAEC3B4_Out, _Power_89128DC7_Out);
float _Preview_27050525_Out;
Unity_Preview_float(_Power_89128DC7_Out, _Preview_27050525_Out);
float _Split_F65B2B9D_R = _Preview_27050525_Out;
float _Split_F65B2B9D_G = 0;
float _Split_F65B2B9D_B = 0;
float _Split_F65B2B9D_A = 0;
float _Multiply_27419D92_Out;
Unity_Multiply_float(_Property_1F3017E6_Out, _Split_F65B2B9D_R, _Multiply_27419D92_Out);
float _Property_210419CE_Out = Vector1_730BBE62;
float _Split_847C2C1D_R = IN.WorldSpacePosition[0];
float _Split_847C2C1D_G = IN.WorldSpacePosition[1];
float _Split_847C2C1D_B = IN.WorldSpacePosition[2];
float _Split_847C2C1D_A = 0;
float _Multiply_FF63FCF9_Out;
Unity_Multiply_float(_Property_210419CE_Out, _Split_847C2C1D_R, _Multiply_FF63FCF9_Out);
float _Property_BE4DF16B_Out = Vector1_608CA392;
float _Multiply_39F59106_Out;
Unity_Multiply_float(_Split_847C2C1D_B, _Property_BE4DF16B_Out, _Multiply_39F59106_Out);
float _Add_BCC6A16F_Out;
Unity_Add_float(_Multiply_FF63FCF9_Out, _Multiply_39F59106_Out, _Add_BCC6A16F_Out);
float _Property_871072B4_Out = Vector1_8403193C;
float _Multiply_8117D6AC_Out;
Unity_Multiply_float(_Add_BCC6A16F_Out, _Property_871072B4_Out, _Multiply_8117D6AC_Out);
float _Property_5B1CDF26_Out = Vector1_B4A117B7;
float _Multiply_ADD9E620_Out;
Unity_Multiply_float(_Property_5B1CDF26_Out, _Time.y, _Multiply_ADD9E620_Out);
float _Add_79F60FE7_Out;
Unity_Add_float(_Multiply_8117D6AC_Out, _Multiply_ADD9E620_Out, _Add_79F60FE7_Out);
float _Sine_85F022E9_Out;
Unity_Sine_float(_Add_79F60FE7_Out, _Sine_85F022E9_Out);
float _Absolute_4F8844FD_Out;
Unity_Absolute_float(_Sine_85F022E9_Out, _Absolute_4F8844FD_Out);
float _OneMinus_8F4F4A1C_Out;
Unity_OneMinus_float(_Absolute_4F8844FD_Out, _OneMinus_8F4F4A1C_Out);
float _Property_AD6B071E_Out = Vector1_632F7C2E;
float _Power_9DCB8C4C_Out;
Unity_Power_float(_OneMinus_8F4F4A1C_Out, _Property_AD6B071E_Out, _Power_9DCB8C4C_Out);
float _Preview_A2C8B4D3_Out;
Unity_Preview_float(_Power_9DCB8C4C_Out, _Preview_A2C8B4D3_Out);
float _Split_4EAD296A_R = _Preview_A2C8B4D3_Out;
float _Split_4EAD296A_G = 0;
float _Split_4EAD296A_B = 0;
float _Split_4EAD296A_A = 0;
float _Add_FFD97C3E_Out;
Unity_Add_float(_Multiply_27419D92_Out, _Split_4EAD296A_R, _Add_FFD97C3E_Out);
float _Multiply_2F99235B_Out;
Unity_Multiply_float(_Remap_C3B2F9FE_Out, _Add_FFD97C3E_Out, _Multiply_2F99235B_Out);
float _Property_11498DA6_Out = Vector1_72D9B0C5;
float _Property_D0D5ACAF_Out = Vector1_8403193C;
float _Add_C50A47AB_Out;
Unity_Add_float(_Property_11498DA6_Out, _Property_D0D5ACAF_Out, _Add_C50A47AB_Out);
float _Add_BC920D78_Out;
Unity_Add_float(_Add_C50A47AB_Out, 1, _Add_BC920D78_Out);
float2 _Vector2_50E33FD3_Out = float2(0,_Add_BC920D78_Out);
float2 _Property_6ED8E332_Out = Vector2_7922229F;
float _Remap_3FDD5F9_Out;
Unity_Remap_float(_Multiply_2F99235B_Out, _Vector2_50E33FD3_Out, _Property_6ED8E332_Out, _Remap_3FDD5F9_Out);
float4 _Lerp_77A9BF27_Out;
Unity_Lerp_float4(_Property_A58D0047_Out, _Property_9E3F1B0A_Out, (_Remap_3FDD5F9_Out.xxxx), _Lerp_77A9BF27_Out);
float _Split_F8C6F6CA_R = IN.VertexColor[0];
float _Split_F8C6F6CA_G = IN.VertexColor[1];
float _Split_F8C6F6CA_B = IN.VertexColor[2];
float _Split_F8C6F6CA_A = IN.VertexColor[3];
float _Power_473AB475_Out;
Unity_Power_float(_Split_F8C6F6CA_R, 40, _Power_473AB475_Out);
float4 _Lerp_500CE65A_Out;
Unity_Lerp_float4(_Lerp_16947B2B_Out, _Lerp_77A9BF27_Out, (_Power_473AB475_Out.xxxx), _Lerp_500CE65A_Out);
float4 _ScreenPosition_B1CA2FF3_Out = float4(IN.ScreenPosition.xy / IN.ScreenPosition.w, 0, 0);
float _Property_1E91A997_Out = Vector1_F9DF03AF;
float _GradientNoise_C1C05A4B_Out;
Unity_GradientNoise_float(IN.uv0.xy, _Property_1E91A997_Out, _GradientNoise_C1C05A4B_Out);
float _Subtract_D19817F6_Out;
Unity_Subtract_float(_GradientNoise_C1C05A4B_Out, 0.5, _Subtract_D19817F6_Out);
float _Property_8492106C_Out = Vector1_961065ED;
float _Multiply_26B89A04_Out;
Unity_Multiply_float(_Subtract_D19817F6_Out, _Property_8492106C_Out, _Multiply_26B89A04_Out);
float2 _TilingAndOffset_A1AA4EE2_Out;
Unity_TilingAndOffset_float((_ScreenPosition_B1CA2FF3_Out.xy), float2 (1,1), (_Multiply_26B89A04_Out.xx), _TilingAndOffset_A1AA4EE2_Out);
float4 _SampleTexture2D_509EB224_RGBA = SAMPLE_TEXTURE2D(_CameraOpaqueTexture, sampler_CameraOpaqueTexture, _TilingAndOffset_A1AA4EE2_Out);
float _SampleTexture2D_509EB224_R = _SampleTexture2D_509EB224_RGBA.r;
float _SampleTexture2D_509EB224_G = _SampleTexture2D_509EB224_RGBA.g;
float _SampleTexture2D_509EB224_B = _SampleTexture2D_509EB224_RGBA.b;
float _SampleTexture2D_509EB224_A = _SampleTexture2D_509EB224_RGBA.a;
float _Property_3709319C_Out = Vector1_2067D572;
float4 _Blend_79BBE81_Out;
Unity_Blend_Overlay_float4(_Lerp_500CE65A_Out, _SampleTexture2D_509EB224_RGBA, _Blend_79BBE81_Out, _Property_3709319C_Out);
float4 _Preview_1EB23B1E_Out;
Unity_Preview_float4(_Blend_79BBE81_Out, _Preview_1EB23B1E_Out);
float4 Color_E3435782 = IsGammaSpace() ? float4(0, 0, 1, 0) : float4(SRGBToLinear(float3(0, 0, 1)), 0);
float _Split_C042A06E_R = IN.WorldSpacePosition[0];
float _Split_C042A06E_G = IN.WorldSpacePosition[1];
float _Split_C042A06E_B = IN.WorldSpacePosition[2];
float _Split_C042A06E_A = 0;
float4 _Combine_42D488CE_RGBA;
float3 _Combine_42D488CE_RGB;
float2 _Combine_42D488CE_RG;
Unity_Combine_float(_Split_C042A06E_R, _Split_C042A06E_B, 0, 0, _Combine_42D488CE_RGBA, _Combine_42D488CE_RGB, _Combine_42D488CE_RG);
float2 _Property_4C48A23A_Out = Vector2_113ECD47;
float2 _Property_26AA092C_Out = Vector2_BE5D86FE;
float2 _Multiply_81F6C9D1_Out;
Unity_Multiply_float((_Time.y.xx), _Property_26AA092C_Out, _Multiply_81F6C9D1_Out);
float2 _TilingAndOffset_9A7C85FC_Out;
Unity_TilingAndOffset_float(_Combine_42D488CE_RG, _Property_4C48A23A_Out, _Multiply_81F6C9D1_Out, _TilingAndOffset_9A7C85FC_Out);
float _Property_D494FB3A_Out = Vector1_40E2F0ED;
float2 _Rotate_1235EDDE_Out;
Unity_Rotate_Radians_float(_TilingAndOffset_9A7C85FC_Out, float2 (0.5,0.5), _Property_D494FB3A_Out, _Rotate_1235EDDE_Out);
float4 _SampleTexture2D_24F4BB82_RGBA = SAMPLE_TEXTURE2D(_SampleTexture2D_24F4BB82_Texture, sampler_SampleTexture2D_24F4BB82_Texture, _Rotate_1235EDDE_Out);
float _SampleTexture2D_24F4BB82_R = _SampleTexture2D_24F4BB82_RGBA.r;
float _SampleTexture2D_24F4BB82_G = _SampleTexture2D_24F4BB82_RGBA.g;
float _SampleTexture2D_24F4BB82_B = _SampleTexture2D_24F4BB82_RGBA.b;
float _SampleTexture2D_24F4BB82_A = _SampleTexture2D_24F4BB82_RGBA.a;
float _Split_BAD2FE24_R = IN.VertexColor[0];
float _Split_BAD2FE24_G = IN.VertexColor[1];
float _Split_BAD2FE24_B = IN.VertexColor[2];
float _Split_BAD2FE24_A = IN.VertexColor[3];
float _Step_3370B11_Out;
Unity_Step_float(0.99, _Split_BAD2FE24_R, _Step_3370B11_Out);
float _Property_20BBF3DB_Out = Vector1_137DC7ED;
float _Multiply_CBCB8A5B_Out;
Unity_Multiply_float(_Step_3370B11_Out, _Property_20BBF3DB_Out, _Multiply_CBCB8A5B_Out);
float4 _Lerp_9D637DEA_Out;
Unity_Lerp_float4(Color_E3435782, _SampleTexture2D_24F4BB82_RGBA, (_Multiply_CBCB8A5B_Out.xxxx), _Lerp_9D637DEA_Out);
float _Property_C38AA42C_Out = Vector1_F1BE6F9F;
float _Property_529941BB_Out = Vector1_B9797993;
surface.Albedo = (_Preview_1EB23B1E_Out.xyz);
surface.Normal = (_Lerp_9D637DEA_Out.xyz);
surface.Emission = IsGammaSpace() ? float3(0, 0, 0) : SRGBToLinear(float3(0, 0, 0));
surface.Metallic = _Property_C38AA42C_Out;
surface.Smoothness = _Property_529941BB_Out;
surface.Occlusion = 1;
surface.Alpha = 1;
surface.AlphaClipThreshold = 0;
return surface;
}
struct GraphVertexInput
{
float4 vertex : POSITION;
float3 normal : NORMAL;
float4 tangent : TANGENT;
float4 color : COLOR;
float4 texcoord0 : TEXCOORD0;
float4 texcoord1 : TEXCOORD1;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct GraphVertexOutput
{
float4 clipPos : SV_POSITION;
DECLARE_LIGHTMAP_OR_SH(lightmapUV, vertexSH, 0);
half4 fogFactorAndVertexLight : TEXCOORD1; // x: fogFactor, yzw: vertex light
float4 shadowCoord : TEXCOORD2;
// Interpolators defined by graph
float3 WorldSpacePosition : TEXCOORD3;
float3 WorldSpaceNormal : TEXCOORD4;
float3 WorldSpaceTangent : TEXCOORD5;
float3 WorldSpaceBiTangent : TEXCOORD6;
float3 WorldSpaceViewDirection : TEXCOORD7;
float4 VertexColor : COLOR;
float4 ScreenPosition : TEXCOORD8;
half4 uv0 : TEXCOORD9;
half4 uv1 : TEXCOORD10;
UNITY_VERTEX_INPUT_INSTANCE_ID
UNITY_VERTEX_OUTPUT_STEREO
};
GraphVertexOutput vert (GraphVertexInput v)
{
GraphVertexOutput o = (GraphVertexOutput)0;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
// Vertex transformations performed by graph
float3 WorldSpacePosition = mul(UNITY_MATRIX_M,v.vertex);
float3 WorldSpaceNormal = normalize(mul(v.normal,(float3x3)UNITY_MATRIX_I_M));
float3 WorldSpaceTangent = normalize(mul((float3x3)UNITY_MATRIX_M,v.tangent.xyz));
float3 WorldSpaceBiTangent = cross(WorldSpaceNormal, WorldSpaceTangent.xyz) * v.tangent.w;
float3 WorldSpaceViewDirection = _WorldSpaceCameraPos.xyz - mul(GetObjectToWorldMatrix(), float4(v.vertex.xyz, 1.0)).xyz;
float4 VertexColor = v.color;
float4 ScreenPosition = ComputeScreenPos(mul(GetWorldToHClipMatrix(), mul(GetObjectToWorldMatrix(), v.vertex)), _ProjectionParams.x);
float4 uv0 = v.texcoord0;
float4 uv1 = v.texcoord1;
float3 ObjectSpacePosition = mul(UNITY_MATRIX_I_M,float4(WorldSpacePosition,1.0));
VertexDescriptionInputs vdi = (VertexDescriptionInputs)0;
// Vertex description inputs defined by graph
vdi.ObjectSpacePosition = ObjectSpacePosition;
vdi.WorldSpacePosition = WorldSpacePosition;
vdi.VertexColor = VertexColor;
VertexDescription vd = PopulateVertexData(vdi);
v.vertex.xyz = vd.Position;
// Vertex shader outputs defined by graph
o.WorldSpacePosition = WorldSpacePosition;
o.WorldSpaceNormal = WorldSpaceNormal;
o.WorldSpaceTangent = WorldSpaceTangent;
o.WorldSpaceBiTangent = WorldSpaceBiTangent;
o.WorldSpaceViewDirection = WorldSpaceViewDirection;
o.VertexColor = VertexColor;
o.ScreenPosition = ScreenPosition;
o.uv0 = uv0;
o.uv1 = uv1;
float3 lwWNormal = TransformObjectToWorldNormal(v.normal);
float3 lwWorldPos = TransformObjectToWorld(v.vertex.xyz);
float4 clipPos = TransformWorldToHClip(lwWorldPos);
// We either sample GI from lightmap or SH.
// Lightmap UV and vertex SH coefficients use the same interpolator ("float2 lightmapUV" for lightmap or "half3 vertexSH" for SH)
// see DECLARE_LIGHTMAP_OR_SH macro.
// The following funcions initialize the correct variable with correct data
OUTPUT_LIGHTMAP_UV(v.texcoord1, unity_LightmapST, o.lightmapUV);
OUTPUT_SH(lwWNormal, o.vertexSH);
half3 vertexLight = VertexLighting(lwWorldPos, lwWNormal);
half fogFactor = ComputeFogFactor(clipPos.z);
o.fogFactorAndVertexLight = half4(fogFactor, vertexLight);
o.clipPos = clipPos;
#ifdef _SHADOWS_ENABLED
#if SHADOWS_SCREEN
o.shadowCoord = ComputeShadowCoord(clipPos);
#else
o.shadowCoord = TransformWorldToShadowCoord(lwWorldPos);
#endif
#endif
return o;
}
half4 frag (GraphVertexOutput IN ) : SV_Target
{
UNITY_SETUP_INSTANCE_ID(IN);
// Pixel transformations performed by graph
float3 WorldSpacePosition = IN.WorldSpacePosition;
float3 WorldSpaceNormal = IN.WorldSpaceNormal;
float3 WorldSpaceTangent = IN.WorldSpaceTangent;
float3 WorldSpaceBiTangent = IN.WorldSpaceBiTangent;
float3 WorldSpaceViewDirection = IN.WorldSpaceViewDirection;
float4 VertexColor = IN.VertexColor;
float4 ScreenPosition = IN.ScreenPosition;
float4 uv0 = IN.uv0;
float4 uv1 = IN.uv1;
SurfaceDescriptionInputs surfaceInput = (SurfaceDescriptionInputs)0;
// Surface description inputs defined by graph
surfaceInput.WorldSpacePosition = WorldSpacePosition;
surfaceInput.VertexColor = VertexColor;
surfaceInput.ScreenPosition = ScreenPosition;
surfaceInput.uv0 = uv0;
surfaceInput.uv1 = uv1;
SurfaceDescription surf = PopulateSurfaceData(surfaceInput);
float3 Albedo = float3(0.5, 0.5, 0.5);
float3 Specular = float3(0, 0, 0);
float Metallic = 1;
float3 Normal = float3(0, 0, 1);
float3 Emission = 0;
float Smoothness = 0.5;
float Occlusion = 1;
float Alpha = 1;
float AlphaClipThreshold = 0;
// Surface description remap performed by graph
Albedo = surf.Albedo;
Normal = surf.Normal;
Emission = surf.Emission;
Metallic = surf.Metallic;
Smoothness = surf.Smoothness;
Occlusion = surf.Occlusion;
Alpha = surf.Alpha;
AlphaClipThreshold = surf.AlphaClipThreshold;
InputData inputData;
inputData.positionWS = WorldSpacePosition;
#ifdef _NORMALMAP
inputData.normalWS = TangentToWorldNormal(Normal, WorldSpaceTangent, WorldSpaceBiTangent, WorldSpaceNormal);
#else
#if !SHADER_HINT_NICE_QUALITY
inputData.normalWS = WorldSpaceNormal;
#else
inputData.normalWS = normalize(WorldSpaceNormal);
#endif
#endif
#if !SHADER_HINT_NICE_QUALITY
// viewDirection should be normalized here, but we avoid doing it as it's close enough and we save some ALU.
inputData.viewDirectionWS = WorldSpaceViewDirection;
#else
inputData.viewDirectionWS = normalize(WorldSpaceViewDirection);
#endif
inputData.shadowCoord = IN.shadowCoord;
inputData.fogCoord = IN.fogFactorAndVertexLight.x;
inputData.vertexLighting = IN.fogFactorAndVertexLight.yzw;
inputData.bakedGI = SAMPLE_GI(IN.lightmapUV, IN.vertexSH, inputData.normalWS);
half4 color = LightweightFragmentPBR(
inputData,
Albedo,
Metallic,
Specular,
Smoothness,
Occlusion,
Emission,
Alpha);
// Computes fog factor per-vertex
ApplyFog(color.rgb, IN.fogFactorAndVertexLight.x);
#if _AlphaClip
clip(Alpha - AlphaClipThreshold);
#endif
return color;
}
ENDHLSL
}
Pass
{
Name "ShadowCaster"
Tags{"LightMode" = "ShadowCaster"}
ZWrite On ZTest LEqual
// Material options generated by graph
Cull Back
HLSLPROGRAM
// Required to compile gles 2.0 with standard srp library
#pragma prefer_hlslcc gles
#pragma exclude_renderers d3d11_9x
#pragma target 2.0
//--------------------------------------
// GPU Instancing
#pragma multi_compile_instancing
#pragma vertex ShadowPassVertex
#pragma fragment ShadowPassFragment
// Defines generated by graph
#include "LWRP/ShaderLibrary/Core.hlsl"
#include "LWRP/ShaderLibrary/Lighting.hlsl"
#include "ShaderGraphLibrary/Functions.hlsl"
#include "CoreRP/ShaderLibrary/Color.hlsl"
float Vector1_B9797993;
float Vector1_F1BE6F9F;
float4 Color_120283E2;
float4 Color_3974F997;
float2 Vector2_7922229F;
float Vector1_8D2F509D;
float Vector1_5685904E;
float Vector1_11C8BE5D;
float Vector1_A04E5E21;
float Vector1_E58F6327;
float Vector1_5721F4C2;
float Vector1_5D17CBA2;
float Vector1_72D9B0C5;
float Vector1_C800E0A4;
float Vector1_1C76134F;
float Vector1_221E0A39;
float Vector1_F44D25A0;
float Vector1_F68B8AAF;
float Vector1_8403193C;
float Vector1_B4A117B7;
float Vector1_4735D5E2;
float Vector1_632F7C2E;
float Vector1_730BBE62;
float Vector1_608CA392;
float Vector1_961065ED;
float Vector1_F9DF03AF;
float Vector1_2067D572;
float Vector1_40E2F0ED;
float2 Vector2_113ECD47;
float Vector1_137DC7ED;
float2 Vector2_BE5D86FE;
float Vector1_A6C44B0B;
float2 Vector2_1000B2F1;
float2 Vector2_FA95DCD5;
TEXTURE2D(_CameraOpaqueTexture); SAMPLER(sampler_CameraOpaqueTexture);
float Vector1_95BDBEC1;
struct VertexDescriptionInputs
{
float3 ObjectSpacePosition;
float3 WorldSpacePosition;
float4 VertexColor;
};
void Unity_Multiply_float (float A, float B, out float Out)
{
Out = A * B;
}
void Unity_Add_float(float A, float B, out float Out)
{
Out = A + B;
}
void Unity_Sine_float(float In, out float Out)
{
Out = sin(In);
}
void Unity_Absolute_float(float In, out float Out)
{
Out = abs(In);
}
void Unity_OneMinus_float(float In, out float Out)
{
Out = 1 - In;
}
void Unity_Power_float(float A, float B, out float Out)
{
Out = pow(A, B);
}
void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG)
{
RGBA = float4(R, G, B, A);
RGB = float3(R, G, B);
RG = float2(R, G);
}
void Unity_Multiply_float (float2 A, float2 B, out float2 Out)
{
Out = A * B;
}
void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out)
{
Out = UV * Tiling + Offset;
}
float2 unity_gradientNoise_dir(float2 p)
{
// Permutation and hashing used in webgl-nosie goo.gl/pX7HtC
p = p % 289;
float x = (34 * p.x + 1) * p.x % 289 + p.y;
x = (34 * x + 1) * x % 289;
x = frac(x / 41) * 2 - 1;
return normalize(float2(x - floor(x + 0.5), abs(x) - 0.5));
}
float unity_gradientNoise(float2 p)
{
float2 ip = floor(p);
float2 fp = frac(p);
float d00 = dot(unity_gradientNoise_dir(ip), fp);
float d01 = dot(unity_gradientNoise_dir(ip + float2(0, 1)), fp - float2(0, 1));
float d10 = dot(unity_gradientNoise_dir(ip + float2(1, 0)), fp - float2(1, 0));
float d11 = dot(unity_gradientNoise_dir(ip + float2(1, 1)), fp - float2(1, 1));
fp = fp * fp * fp * (fp * (fp * 6 - 15) + 10);
return lerp(lerp(d00, d01, fp.y), lerp(d10, d11, fp.y), fp.x);
}
void Unity_GradientNoise_float(float2 UV, float Scale, out float Out)
{ Out = unity_gradientNoise(UV * Scale) + 0.5; }
void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out)
{
Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);
}
void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out)
{
Out = lerp(A, B, T);
}
struct VertexDescription
{
float3 Position;
};
VertexDescription PopulateVertexData(VertexDescriptionInputs IN)
{
VertexDescription description = (VertexDescription)0;
float _Split_85D79FAF_R = IN.ObjectSpacePosition[0];
float _Split_85D79FAF_G = IN.ObjectSpacePosition[1];
float _Split_85D79FAF_B = IN.ObjectSpacePosition[2];
float _Split_85D79FAF_A = 0;
float _Property_76EBDFB4_Out = Vector1_1C76134F;
float _Property_6F727335_Out = Vector1_F44D25A0;
float _Split_1FCA8336_R = IN.WorldSpacePosition[0];
float _Split_1FCA8336_G = IN.WorldSpacePosition[1];
float _Split_1FCA8336_B = IN.WorldSpacePosition[2];
float _Split_1FCA8336_A = 0;
float _Multiply_FA212AA9_Out;
Unity_Multiply_float(_Property_6F727335_Out, _Split_1FCA8336_R, _Multiply_FA212AA9_Out);
float _Property_D24D4052_Out = Vector1_F68B8AAF;
float _Multiply_DD586B4F_Out;
Unity_Multiply_float(_Split_1FCA8336_B, _Property_D24D4052_Out, _Multiply_DD586B4F_Out);
float _Add_9955F712_Out;
Unity_Add_float(_Multiply_FA212AA9_Out, _Multiply_DD586B4F_Out, _Add_9955F712_Out);
float _Property_D670E1C1_Out = Vector1_72D9B0C5;
float _Multiply_E978714F_Out;
Unity_Multiply_float(_Add_9955F712_Out, _Property_D670E1C1_Out, _Multiply_E978714F_Out);
float _Property_1DB93E5B_Out = Vector1_C800E0A4;
float _Multiply_B6BCE94B_Out;
Unity_Multiply_float(_Property_1DB93E5B_Out, _Time.y, _Multiply_B6BCE94B_Out);
float _Add_93C00E2C_Out;
Unity_Add_float(_Multiply_E978714F_Out, _Multiply_B6BCE94B_Out, _Add_93C00E2C_Out);
float _Sine_B3E85844_Out;
Unity_Sine_float(_Add_93C00E2C_Out, _Sine_B3E85844_Out);
float _Absolute_FD2BA96C_Out;
Unity_Absolute_float(_Sine_B3E85844_Out, _Absolute_FD2BA96C_Out);
float _OneMinus_E054867B_Out;
Unity_OneMinus_float(_Absolute_FD2BA96C_Out, _OneMinus_E054867B_Out);
float _Property_EDAEC3B4_Out = Vector1_221E0A39;
float _Power_89128DC7_Out;
Unity_Power_float(_OneMinus_E054867B_Out, _Property_EDAEC3B4_Out, _Power_89128DC7_Out);
float _Multiply_456312AC_Out;
Unity_Multiply_float(_Property_76EBDFB4_Out, _Power_89128DC7_Out, _Multiply_456312AC_Out);
float _Property_AC775712_Out = Vector1_E58F6327;
float _Split_DFB50EAE_R = IN.WorldSpacePosition[0];
float _Split_DFB50EAE_G = IN.WorldSpacePosition[1];
float _Split_DFB50EAE_B = IN.WorldSpacePosition[2];
float _Split_DFB50EAE_A = 0;
float _Multiply_FA91F999_Out;
Unity_Multiply_float(_Property_AC775712_Out, _Split_DFB50EAE_R, _Multiply_FA91F999_Out);
float _Property_CCCFB6C5_Out = Vector1_608CA392;
float _Multiply_E9F86F95_Out;
Unity_Multiply_float(_Split_DFB50EAE_B, _Property_CCCFB6C5_Out, _Multiply_E9F86F95_Out);
float _Add_8AD491B3_Out;
Unity_Add_float(_Multiply_FA91F999_Out, _Multiply_E9F86F95_Out, _Add_8AD491B3_Out);
float _Property_3F20CEFF_Out = Vector1_8D2F509D;
float _Multiply_6BF97013_Out;
Unity_Multiply_float(_Add_8AD491B3_Out, _Property_3F20CEFF_Out, _Multiply_6BF97013_Out);
float _Property_D3C80BA0_Out = Vector1_5685904E;
float _Multiply_29383B2_Out;
Unity_Multiply_float(_Property_D3C80BA0_Out, _Time.y, _Multiply_29383B2_Out);
float _Add_E3E06F02_Out;
Unity_Add_float(_Multiply_6BF97013_Out, _Multiply_29383B2_Out, _Add_E3E06F02_Out);
float _Sine_8E517BF5_Out;
Unity_Sine_float(_Add_E3E06F02_Out, _Sine_8E517BF5_Out);
float _Absolute_931AE881_Out;
Unity_Absolute_float(_Sine_8E517BF5_Out, _Absolute_931AE881_Out);
float _OneMinus_1E5C6612_Out;
Unity_OneMinus_float(_Absolute_931AE881_Out, _OneMinus_1E5C6612_Out);
float _Property_49B432CE_Out = Vector1_A04E5E21;
float _Power_9AE27DEE_Out;
Unity_Power_float(_OneMinus_1E5C6612_Out, _Property_49B432CE_Out, _Power_9AE27DEE_Out);
float _Property_4660BD4E_Out = Vector1_11C8BE5D;
float _Multiply_6470DEA3_Out;
Unity_Multiply_float(_Power_9AE27DEE_Out, _Property_4660BD4E_Out, _Multiply_6470DEA3_Out);
float _Add_824718F6_Out;
Unity_Add_float(_Multiply_456312AC_Out, _Multiply_6470DEA3_Out, _Add_824718F6_Out);
float _Property_210419CE_Out = Vector1_730BBE62;
float _Split_847C2C1D_R = IN.WorldSpacePosition[0];
float _Split_847C2C1D_G = IN.WorldSpacePosition[1];
float _Split_847C2C1D_B = IN.WorldSpacePosition[2];
float _Split_847C2C1D_A = 0;
float _Multiply_FF63FCF9_Out;
Unity_Multiply_float(_Property_210419CE_Out, _Split_847C2C1D_R, _Multiply_FF63FCF9_Out);
float _Property_BE4DF16B_Out = Vector1_608CA392;
float _Multiply_39F59106_Out;
Unity_Multiply_float(_Split_847C2C1D_B, _Property_BE4DF16B_Out, _Multiply_39F59106_Out);
float _Add_BCC6A16F_Out;
Unity_Add_float(_Multiply_FF63FCF9_Out, _Multiply_39F59106_Out, _Add_BCC6A16F_Out);
float _Property_871072B4_Out = Vector1_8403193C;
float _Multiply_8117D6AC_Out;
Unity_Multiply_float(_Add_BCC6A16F_Out, _Property_871072B4_Out, _Multiply_8117D6AC_Out);
float _Property_5B1CDF26_Out = Vector1_B4A117B7;
float _Multiply_ADD9E620_Out;
Unity_Multiply_float(_Property_5B1CDF26_Out, _Time.y, _Multiply_ADD9E620_Out);
float _Add_79F60FE7_Out;
Unity_Add_float(_Multiply_8117D6AC_Out, _Multiply_ADD9E620_Out, _Add_79F60FE7_Out);
float _Sine_85F022E9_Out;
Unity_Sine_float(_Add_79F60FE7_Out, _Sine_85F022E9_Out);
float _Absolute_4F8844FD_Out;
Unity_Absolute_float(_Sine_85F022E9_Out, _Absolute_4F8844FD_Out);
float _OneMinus_8F4F4A1C_Out;
Unity_OneMinus_float(_Absolute_4F8844FD_Out, _OneMinus_8F4F4A1C_Out);
float _Property_AD6B071E_Out = Vector1_632F7C2E;
float _Power_9DCB8C4C_Out;
Unity_Power_float(_OneMinus_8F4F4A1C_Out, _Property_AD6B071E_Out, _Power_9DCB8C4C_Out);
float _Property_167E6FA5_Out = Vector1_4735D5E2;
float _Multiply_9E4F1BD7_Out;
Unity_Multiply_float(_Power_9DCB8C4C_Out, _Property_167E6FA5_Out, _Multiply_9E4F1BD7_Out);
float _Add_5B8345A6_Out;
Unity_Add_float(_Add_824718F6_Out, _Multiply_9E4F1BD7_Out, _Add_5B8345A6_Out);
float _Split_BF38371F_R = IN.WorldSpacePosition[0];
float _Split_BF38371F_G = IN.WorldSpacePosition[1];
float _Split_BF38371F_B = IN.WorldSpacePosition[2];
float _Split_BF38371F_A = 0;
float4 _Combine_5D5A6EB4_RGBA;
float3 _Combine_5D5A6EB4_RGB;
float2 _Combine_5D5A6EB4_RG;
Unity_Combine_float(_Split_BF38371F_R, _Split_BF38371F_B, 0, 0, _Combine_5D5A6EB4_RGBA, _Combine_5D5A6EB4_RGB, _Combine_5D5A6EB4_RG);
float2 _Property_D4063191_Out = Vector2_FA95DCD5;
float2 _Multiply_86B2E332_Out;
Unity_Multiply_float((_Time.y.xx), _Property_D4063191_Out, _Multiply_86B2E332_Out);
float2 _TilingAndOffset_37C09071_Out;
Unity_TilingAndOffset_float(_Combine_5D5A6EB4_RG, float2 (1,1), _Multiply_86B2E332_Out, _TilingAndOffset_37C09071_Out);
float _Property_4C95B6F7_Out = Vector1_A6C44B0B;
float _GradientNoise_1AA59D61_Out;
Unity_GradientNoise_float(_TilingAndOffset_37C09071_Out, _Property_4C95B6F7_Out, _GradientNoise_1AA59D61_Out);
float2 _Property_78823826_Out = Vector2_1000B2F1;
float _Remap_C3B2F9FE_Out;
Unity_Remap_float(_GradientNoise_1AA59D61_Out, float2 (0,1), _Property_78823826_Out, _Remap_C3B2F9FE_Out);
float _Multiply_FAFF27A2_Out;
Unity_Multiply_float(_Add_5B8345A6_Out, _Remap_C3B2F9FE_Out, _Multiply_FAFF27A2_Out);
float _Split_B44C4E4B_R = _Multiply_FAFF27A2_Out;
float _Split_B44C4E4B_G = 0;
float _Split_B44C4E4B_B = 0;
float _Split_B44C4E4B_A = 0;
float _Add_A40E349E_Out;
Unity_Add_float(_Split_B44C4E4B_R, _Split_B44C4E4B_B, _Add_A40E349E_Out);
float _Add_9F809789_Out;
Unity_Add_float(_Split_85D79FAF_G, _Add_A40E349E_Out, _Add_9F809789_Out);
float4 _Combine_AA9DAF7E_RGBA;
float3 _Combine_AA9DAF7E_RGB;
float2 _Combine_AA9DAF7E_RG;
Unity_Combine_float(_Split_85D79FAF_R, _Add_9F809789_Out, _Split_85D79FAF_B, 0, _Combine_AA9DAF7E_RGBA, _Combine_AA9DAF7E_RGB, _Combine_AA9DAF7E_RG);
float _Split_9965AACD_R = IN.VertexColor[0];
float _Split_9965AACD_G = IN.VertexColor[1];
float _Split_9965AACD_B = IN.VertexColor[2];
float _Split_9965AACD_A = IN.VertexColor[3];
float3 _Lerp_5D3FAD3B_Out;
Unity_Lerp_float3(IN.ObjectSpacePosition, _Combine_AA9DAF7E_RGB, (_Split_9965AACD_R.xxx), _Lerp_5D3FAD3B_Out);
description.Position = _Lerp_5D3FAD3B_Out;
return description;
}
struct GraphVertexInput
{
float4 vertex : POSITION;
float3 normal : NORMAL;
float4 tangent : TANGENT;
float4 color : COLOR;
float4 texcoord1 : TEXCOORD1;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct VertexOutput
{
float2 uv : TEXCOORD0;
float4 clipPos : SV_POSITION;
UNITY_VERTEX_INPUT_INSTANCE_ID
UNITY_VERTEX_OUTPUT_STEREO
};
// x: global clip space bias, y: normal world space bias
float4 _ShadowBias;
float3 _LightDirection;
VertexOutput ShadowPassVertex(GraphVertexInput v)
{
VertexOutput o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
// Vertex transformations performed by graph
float3 WorldSpacePosition = mul(UNITY_MATRIX_M,v.vertex);
float3 WorldSpaceNormal = normalize(mul(v.normal,(float3x3)UNITY_MATRIX_I_M));
float4 VertexColor = v.color;
float4 uv1 = v.texcoord1;
float3 ObjectSpacePosition = mul(UNITY_MATRIX_I_M,float4(WorldSpacePosition,1.0));
VertexDescriptionInputs vdi = (VertexDescriptionInputs)0;
// Vertex description inputs defined by graph
vdi.ObjectSpacePosition = ObjectSpacePosition;
vdi.WorldSpacePosition = WorldSpacePosition;
vdi.VertexColor = VertexColor;
VertexDescription vd = PopulateVertexData(vdi);
v.vertex.xyz = vd.Position;
o.uv = uv1;
float3 positionWS = TransformObjectToWorld(v.vertex.xyz);
float3 normalWS = TransformObjectToWorldDir(v.normal);
float invNdotL = 1.0 - saturate(dot(_LightDirection, normalWS));
float scale = invNdotL * _ShadowBias.y;
// normal bias is negative since we want to apply an inset normal offset
positionWS = normalWS * scale.xxx + positionWS;
float4 clipPos = TransformWorldToHClip(positionWS);
// _ShadowBias.x sign depens on if platform has reversed z buffer
clipPos.z += _ShadowBias.x;
#if UNITY_REVERSED_Z
clipPos.z = min(clipPos.z, clipPos.w * UNITY_NEAR_CLIP_VALUE);
#else
clipPos.z = max(clipPos.z, clipPos.w * UNITY_NEAR_CLIP_VALUE);
#endif
o.clipPos = clipPos;
return o;
}
half4 ShadowPassFragment(VertexOutput IN) : SV_TARGET
{
UNITY_SETUP_INSTANCE_ID(IN);
return 0;
}
ENDHLSL
}
Pass
{
Name "DepthOnly"
Tags{"LightMode" = "DepthOnly"}
ZWrite On
ColorMask 0
// Material options generated by graph
Cull Back
HLSLPROGRAM
// Required to compile gles 2.0 with standard srp library
#pragma prefer_hlslcc gles
#pragma exclude_renderers d3d11_9x
#pragma target 2.0
//--------------------------------------
// GPU Instancing
#pragma multi_compile_instancing
#pragma vertex vert
#pragma fragment frag
// Defines generated by graph
#include "LWRP/ShaderLibrary/Core.hlsl"
#include "LWRP/ShaderLibrary/Lighting.hlsl"
#include "ShaderGraphLibrary/Functions.hlsl"
#include "CoreRP/ShaderLibrary/Color.hlsl"
float Vector1_B9797993;
float Vector1_F1BE6F9F;
float4 Color_120283E2;
float4 Color_3974F997;
float2 Vector2_7922229F;
float Vector1_8D2F509D;
float Vector1_5685904E;
float Vector1_11C8BE5D;
float Vector1_A04E5E21;
float Vector1_E58F6327;
float Vector1_5721F4C2;
float Vector1_5D17CBA2;
float Vector1_72D9B0C5;
float Vector1_C800E0A4;
float Vector1_1C76134F;
float Vector1_221E0A39;
float Vector1_F44D25A0;
float Vector1_F68B8AAF;
float Vector1_8403193C;
float Vector1_B4A117B7;
float Vector1_4735D5E2;
float Vector1_632F7C2E;
float Vector1_730BBE62;
float Vector1_608CA392;
float Vector1_961065ED;
float Vector1_F9DF03AF;
float Vector1_2067D572;
float Vector1_40E2F0ED;
float2 Vector2_113ECD47;
float Vector1_137DC7ED;
float2 Vector2_BE5D86FE;
float Vector1_A6C44B0B;
float2 Vector2_1000B2F1;
float2 Vector2_FA95DCD5;
TEXTURE2D(_CameraOpaqueTexture); SAMPLER(sampler_CameraOpaqueTexture);
float Vector1_95BDBEC1;
struct VertexDescriptionInputs
{
float3 ObjectSpacePosition;
float3 WorldSpacePosition;
float4 VertexColor;
};
void Unity_Multiply_float (float A, float B, out float Out)
{
Out = A * B;
}
void Unity_Add_float(float A, float B, out float Out)
{
Out = A + B;
}
void Unity_Sine_float(float In, out float Out)
{
Out = sin(In);
}
void Unity_Absolute_float(float In, out float Out)
{
Out = abs(In);
}
void Unity_OneMinus_float(float In, out float Out)
{
Out = 1 - In;
}
void Unity_Power_float(float A, float B, out float Out)
{
Out = pow(A, B);
}
void Unity_Combine_float(float R, float G, float B, float A, out float4 RGBA, out float3 RGB, out float2 RG)
{
RGBA = float4(R, G, B, A);
RGB = float3(R, G, B);
RG = float2(R, G);
}
void Unity_Multiply_float (float2 A, float2 B, out float2 Out)
{
Out = A * B;
}
void Unity_TilingAndOffset_float(float2 UV, float2 Tiling, float2 Offset, out float2 Out)
{
Out = UV * Tiling + Offset;
}
float2 unity_gradientNoise_dir(float2 p)
{
// Permutation and hashing used in webgl-nosie goo.gl/pX7HtC
p = p % 289;
float x = (34 * p.x + 1) * p.x % 289 + p.y;
x = (34 * x + 1) * x % 289;
x = frac(x / 41) * 2 - 1;
return normalize(float2(x - floor(x + 0.5), abs(x) - 0.5));
}
float unity_gradientNoise(float2 p)
{
float2 ip = floor(p);
float2 fp = frac(p);
float d00 = dot(unity_gradientNoise_dir(ip), fp);
float d01 = dot(unity_gradientNoise_dir(ip + float2(0, 1)), fp - float2(0, 1));
float d10 = dot(unity_gradientNoise_dir(ip + float2(1, 0)), fp - float2(1, 0));
float d11 = dot(unity_gradientNoise_dir(ip + float2(1, 1)), fp - float2(1, 1));
fp = fp * fp * fp * (fp * (fp * 6 - 15) + 10);
return lerp(lerp(d00, d01, fp.y), lerp(d10, d11, fp.y), fp.x);
}
void Unity_GradientNoise_float(float2 UV, float Scale, out float Out)
{ Out = unity_gradientNoise(UV * Scale) + 0.5; }
void Unity_Remap_float(float In, float2 InMinMax, float2 OutMinMax, out float Out)
{
Out = OutMinMax.x + (In - InMinMax.x) * (OutMinMax.y - OutMinMax.x) / (InMinMax.y - InMinMax.x);
}
void Unity_Lerp_float3(float3 A, float3 B, float3 T, out float3 Out)
{
Out = lerp(A, B, T);
}
struct VertexDescription
{
float3 Position;
};
VertexDescription PopulateVertexData(VertexDescriptionInputs IN)
{
VertexDescription description = (VertexDescription)0;
float _Split_85D79FAF_R = IN.ObjectSpacePosition[0];
float _Split_85D79FAF_G = IN.ObjectSpacePosition[1];
float _Split_85D79FAF_B = IN.ObjectSpacePosition[2];
float _Split_85D79FAF_A = 0;
float _Property_76EBDFB4_Out = Vector1_1C76134F;
float _Property_6F727335_Out = Vector1_F44D25A0;
float _Split_1FCA8336_R = IN.WorldSpacePosition[0];
float _Split_1FCA8336_G = IN.WorldSpacePosition[1];
float _Split_1FCA8336_B = IN.WorldSpacePosition[2];
float _Split_1FCA8336_A = 0;
float _Multiply_FA212AA9_Out;
Unity_Multiply_float(_Property_6F727335_Out, _Split_1FCA8336_R, _Multiply_FA212AA9_Out);
float _Property_D24D4052_Out = Vector1_F68B8AAF;
float _Multiply_DD586B4F_Out;
Unity_Multiply_float(_Split_1FCA8336_B, _Property_D24D4052_Out, _Multiply_DD586B4F_Out);
float _Add_9955F712_Out;
Unity_Add_float(_Multiply_FA212AA9_Out, _Multiply_DD586B4F_Out, _Add_9955F712_Out);
float _Property_D670E1C1_Out = Vector1_72D9B0C5;
float _Multiply_E978714F_Out;
Unity_Multiply_float(_Add_9955F712_Out, _Property_D670E1C1_Out, _Multiply_E978714F_Out);
float _Property_1DB93E5B_Out = Vector1_C800E0A4;
float _Multiply_B6BCE94B_Out;
Unity_Multiply_float(_Property_1DB93E5B_Out, _Time.y, _Multiply_B6BCE94B_Out);
float _Add_93C00E2C_Out;
Unity_Add_float(_Multiply_E978714F_Out, _Multiply_B6BCE94B_Out, _Add_93C00E2C_Out);
float _Sine_B3E85844_Out;
Unity_Sine_float(_Add_93C00E2C_Out, _Sine_B3E85844_Out);
float _Absolute_FD2BA96C_Out;
Unity_Absolute_float(_Sine_B3E85844_Out, _Absolute_FD2BA96C_Out);
float _OneMinus_E054867B_Out;
Unity_OneMinus_float(_Absolute_FD2BA96C_Out, _OneMinus_E054867B_Out);
float _Property_EDAEC3B4_Out = Vector1_221E0A39;
float _Power_89128DC7_Out;
Unity_Power_float(_OneMinus_E054867B_Out, _Property_EDAEC3B4_Out, _Power_89128DC7_Out);
float _Multiply_456312AC_Out;
Unity_Multiply_float(_Property_76EBDFB4_Out, _Power_89128DC7_Out, _Multiply_456312AC_Out);
float _Property_AC775712_Out = Vector1_E58F6327;
float _Split_DFB50EAE_R = IN.WorldSpacePosition[0];
float _Split_DFB50EAE_G = IN.WorldSpacePosition[1];
float _Split_DFB50EAE_B = IN.WorldSpacePosition[2];
float _Split_DFB50EAE_A = 0;
float _Multiply_FA91F999_Out;
Unity_Multiply_float(_Property_AC775712_Out, _Split_DFB50EAE_R, _Multiply_FA91F999_Out);
float _Property_CCCFB6C5_Out = Vector1_608CA392;
float _Multiply_E9F86F95_Out;
Unity_Multiply_float(_Split_DFB50EAE_B, _Property_CCCFB6C5_Out, _Multiply_E9F86F95_Out);
float _Add_8AD491B3_Out;
Unity_Add_float(_Multiply_FA91F999_Out, _Multiply_E9F86F95_Out, _Add_8AD491B3_Out);
float _Property_3F20CEFF_Out = Vector1_8D2F509D;
float _Multiply_6BF97013_Out;
Unity_Multiply_float(_Add_8AD491B3_Out, _Property_3F20CEFF_Out, _Multiply_6BF97013_Out);
float _Property_D3C80BA0_Out = Vector1_5685904E;
float _Multiply_29383B2_Out;
Unity_Multiply_float(_Property_D3C80BA0_Out, _Time.y, _Multiply_29383B2_Out);
float _Add_E3E06F02_Out;
Unity_Add_float(_Multiply_6BF97013_Out, _Multiply_29383B2_Out, _Add_E3E06F02_Out);
float _Sine_8E517BF5_Out;
Unity_Sine_float(_Add_E3E06F02_Out, _Sine_8E517BF5_Out);
float _Absolute_931AE881_Out;
Unity_Absolute_float(_Sine_8E517BF5_Out, _Absolute_931AE881_Out);
float _OneMinus_1E5C6612_Out;
Unity_OneMinus_float(_Absolute_931AE881_Out, _OneMinus_1E5C6612_Out);
float _Property_49B432CE_Out = Vector1_A04E5E21;
float _Power_9AE27DEE_Out;
Unity_Power_float(_OneMinus_1E5C6612_Out, _Property_49B432CE_Out, _Power_9AE27DEE_Out);
float _Property_4660BD4E_Out = Vector1_11C8BE5D;
float _Multiply_6470DEA3_Out;
Unity_Multiply_float(_Power_9AE27DEE_Out, _Property_4660BD4E_Out, _Multiply_6470DEA3_Out);
float _Add_824718F6_Out;
Unity_Add_float(_Multiply_456312AC_Out, _Multiply_6470DEA3_Out, _Add_824718F6_Out);
float _Property_210419CE_Out = Vector1_730BBE62;
float _Split_847C2C1D_R = IN.WorldSpacePosition[0];
float _Split_847C2C1D_G = IN.WorldSpacePosition[1];
float _Split_847C2C1D_B = IN.WorldSpacePosition[2];
float _Split_847C2C1D_A = 0;
float _Multiply_FF63FCF9_Out;
Unity_Multiply_float(_Property_210419CE_Out, _Split_847C2C1D_R, _Multiply_FF63FCF9_Out);
float _Property_BE4DF16B_Out = Vector1_608CA392;
float _Multiply_39F59106_Out;
Unity_Multiply_float(_Split_847C2C1D_B, _Property_BE4DF16B_Out, _Multiply_39F59106_Out);
float _Add_BCC6A16F_Out;
Unity_Add_float(_Multiply_FF63FCF9_Out, _Multiply_39F59106_Out, _Add_BCC6A16F_Out);
float _Property_871072B4_Out = Vector1_8403193C;
float _Multiply_8117D6AC_Out;
Unity_Multiply_float(_Add_BCC6A16F_Out, _Property_871072B4_Out, _Multiply_8117D6AC_Out);
float _Property_5B1CDF26_Out = Vector1_B4A117B7;
float _Multiply_ADD9E620_Out;
Unity_Multiply_float(_Property_5B1CDF26_Out, _Time.y, _Multiply_ADD9E620_Out);
float _Add_79F60FE7_Out;
Unity_Add_float(_Multiply_8117D6AC_Out, _Multiply_ADD9E620_Out, _Add_79F60FE7_Out);
float _Sine_85F022E9_Out;
Unity_Sine_float(_Add_79F60FE7_Out, _Sine_85F022E9_Out);
float _Absolute_4F8844FD_Out;
Unity_Absolute_float(_Sine_85F022E9_Out, _Absolute_4F8844FD_Out);
float _OneMinus_8F4F4A1C_Out;
Unity_OneMinus_float(_Absolute_4F8844FD_Out, _OneMinus_8F4F4A1C_Out);
float _Property_AD6B071E_Out = Vector1_632F7C2E;
float _Power_9DCB8C4C_Out;
Unity_Power_float(_OneMinus_8F4F4A1C_Out, _Property_AD6B071E_Out, _Power_9DCB8C4C_Out);
float _Property_167E6FA5_Out = Vector1_4735D5E2;
float _Multiply_9E4F1BD7_Out;
Unity_Multiply_float(_Power_9DCB8C4C_Out, _Property_167E6FA5_Out, _Multiply_9E4F1BD7_Out);
float _Add_5B8345A6_Out;
Unity_Add_float(_Add_824718F6_Out, _Multiply_9E4F1BD7_Out, _Add_5B8345A6_Out);
float _Split_BF38371F_R = IN.WorldSpacePosition[0];
float _Split_BF38371F_G = IN.WorldSpacePosition[1];
float _Split_BF38371F_B = IN.WorldSpacePosition[2];
float _Split_BF38371F_A = 0;
float4 _Combine_5D5A6EB4_RGBA;
float3 _Combine_5D5A6EB4_RGB;
float2 _Combine_5D5A6EB4_RG;
Unity_Combine_float(_Split_BF38371F_R, _Split_BF38371F_B, 0, 0, _Combine_5D5A6EB4_RGBA, _Combine_5D5A6EB4_RGB, _Combine_5D5A6EB4_RG);
float2 _Property_D4063191_Out = Vector2_FA95DCD5;
float2 _Multiply_86B2E332_Out;
Unity_Multiply_float((_Time.y.xx), _Property_D4063191_Out, _Multiply_86B2E332_Out);
float2 _TilingAndOffset_37C09071_Out;
Unity_TilingAndOffset_float(_Combine_5D5A6EB4_RG, float2 (1,1), _Multiply_86B2E332_Out, _TilingAndOffset_37C09071_Out);
float _Property_4C95B6F7_Out = Vector1_A6C44B0B;
float _GradientNoise_1AA59D61_Out;
Unity_GradientNoise_float(_TilingAndOffset_37C09071_Out, _Property_4C95B6F7_Out, _GradientNoise_1AA59D61_Out);
float2 _Property_78823826_Out = Vector2_1000B2F1;
float _Remap_C3B2F9FE_Out;
Unity_Remap_float(_GradientNoise_1AA59D61_Out, float2 (0,1), _Property_78823826_Out, _Remap_C3B2F9FE_Out);
float _Multiply_FAFF27A2_Out;
Unity_Multiply_float(_Add_5B8345A6_Out, _Remap_C3B2F9FE_Out, _Multiply_FAFF27A2_Out);
float _Split_B44C4E4B_R = _Multiply_FAFF27A2_Out;
float _Split_B44C4E4B_G = 0;
float _Split_B44C4E4B_B = 0;
float _Split_B44C4E4B_A = 0;
float _Add_A40E349E_Out;
Unity_Add_float(_Split_B44C4E4B_R, _Split_B44C4E4B_B, _Add_A40E349E_Out);
float _Add_9F809789_Out;
Unity_Add_float(_Split_85D79FAF_G, _Add_A40E349E_Out, _Add_9F809789_Out);
float4 _Combine_AA9DAF7E_RGBA;
float3 _Combine_AA9DAF7E_RGB;
float2 _Combine_AA9DAF7E_RG;
Unity_Combine_float(_Split_85D79FAF_R, _Add_9F809789_Out, _Split_85D79FAF_B, 0, _Combine_AA9DAF7E_RGBA, _Combine_AA9DAF7E_RGB, _Combine_AA9DAF7E_RG);
float _Split_9965AACD_R = IN.VertexColor[0];
float _Split_9965AACD_G = IN.VertexColor[1];
float _Split_9965AACD_B = IN.VertexColor[2];
float _Split_9965AACD_A = IN.VertexColor[3];
float3 _Lerp_5D3FAD3B_Out;
Unity_Lerp_float3(IN.ObjectSpacePosition, _Combine_AA9DAF7E_RGB, (_Split_9965AACD_R.xxx), _Lerp_5D3FAD3B_Out);
description.Position = _Lerp_5D3FAD3B_Out;
return description;
}
struct GraphVertexInput
{
float4 vertex : POSITION;
float3 normal : NORMAL;
float4 tangent : TANGENT;
float4 color : COLOR;
float4 texcoord1 : TEXCOORD1;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct VertexOutput
{
float2 uv : TEXCOORD0;
float4 clipPos : SV_POSITION;
UNITY_VERTEX_INPUT_INSTANCE_ID
UNITY_VERTEX_OUTPUT_STEREO
};
VertexOutput vert(GraphVertexInput v)
{
VertexOutput o = (VertexOutput)0;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
// Vertex transformations performed by graph
float3 WorldSpacePosition = mul(UNITY_MATRIX_M,v.vertex);
float3 WorldSpaceNormal = normalize(mul(v.normal,(float3x3)UNITY_MATRIX_I_M));
float4 VertexColor = v.color;
float4 uv1 = v.texcoord1;
float3 ObjectSpacePosition = mul(UNITY_MATRIX_I_M,float4(WorldSpacePosition,1.0));
VertexDescriptionInputs vdi = (VertexDescriptionInputs)0;
// Vertex description inputs defined by graph
vdi.ObjectSpacePosition = ObjectSpacePosition;
vdi.WorldSpacePosition = WorldSpacePosition;
vdi.VertexColor = VertexColor;
VertexDescription vd = PopulateVertexData(vdi);
v.vertex.xyz = vd.Position;
o.uv = uv1;
o.clipPos = TransformObjectToHClip(v.vertex.xyz);
return o;
}
half4 frag(VertexOutput IN) : SV_TARGET
{
UNITY_SETUP_INSTANCE_ID(IN);
return 0;
}
ENDHLSL
}
// This pass it not used during regular rendering, only for lightmap baking.
Pass
{
Name "Meta"
Tags{"LightMode" = "Meta"}
Cull Off
HLSLPROGRAM
// Required to compile gles 2.0 with standard srp library
#pragma prefer_hlslcc gles
#pragma exclude_renderers d3d11_9x
#pragma target 2.0
#pragma vertex LightweightVertexMeta
#pragma fragment LightweightFragmentMeta
#pragma shader_feature _SPECULAR_SETUP
#pragma shader_feature _EMISSION
#pragma shader_feature _METALLICSPECGLOSSMAP
#pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
#pragma shader_feature EDITOR_VISUALIZATION
#pragma shader_feature _SPECGLOSSMAP
#include "LWRP/ShaderLibrary/InputSurfacePBR.hlsl"
#include "LWRP/ShaderLibrary/LightweightPassMetaPBR.hlsl"
ENDHLSL
}
}
FallBack "Hidden/InternalErrorShader"
}