Shader "Fire Shader" { Properties { [NoScaleOffset]_MainTex("_MainTex", 2D) = "white" {} _MaxFrames("MaxFrames", Float) = 5 _FPS("FPS", Float) = 18 [HideInInspector]_BUILTIN_QueueOffset("Float", Float) = 0 [HideInInspector]_BUILTIN_QueueControl("Float", Float) = -1 } SubShader { Tags { // RenderPipeline: "RenderType"="Transparent" "BuiltInMaterialType" = "Unlit" "Queue"="Transparent" "ShaderGraphShader"="true" "ShaderGraphTargetId"="BuiltInUnlitSubTarget" } Pass { Name "Pass" Tags { "LightMode" = "ForwardBase" } // Render State Cull Back Blend SrcAlpha OneMinusSrcAlpha, One OneMinusSrcAlpha ZTest LEqual ZWrite Off ColorMask RGB // Debug // // -------------------------------------------------- // Pass HLSLPROGRAM // Pragmas #pragma target 3.0 #pragma multi_compile_instancing #pragma multi_compile_fog #pragma multi_compile_fwdbase #pragma vertex vert #pragma fragment frag // DotsInstancingOptions: // HybridV1InjectedBuiltinProperties: // Keywords // PassKeywords: // GraphKeywords: // Defines #define ATTRIBUTES_NEED_NORMAL #define ATTRIBUTES_NEED_TANGENT #define ATTRIBUTES_NEED_TEXCOORD0 #define VARYINGS_NEED_TEXCOORD0 #define FEATURES_GRAPH_VERTEX /* WARNING: $splice Could not find named fragment 'PassInstancing' */ #define SHADERPASS SHADERPASS_UNLIT #define BUILTIN_TARGET_API 1 #define _BUILTIN_SURFACE_TYPE_TRANSPARENT 1 /* WARNING: $splice Could not find named fragment 'DotsInstancingVars' */ #ifdef _BUILTIN_SURFACE_TYPE_TRANSPARENT #define _SURFACE_TYPE_TRANSPARENT _BUILTIN_SURFACE_TYPE_TRANSPARENT #endif #ifdef _BUILTIN_ALPHATEST_ON #define _ALPHATEST_ON _BUILTIN_ALPHATEST_ON #endif #ifdef _BUILTIN_AlphaClip #define _AlphaClip _BUILTIN_AlphaClip #endif #ifdef _BUILTIN_ALPHAPREMULTIPLY_ON #define _ALPHAPREMULTIPLY_ON _BUILTIN_ALPHAPREMULTIPLY_ON #endif // custom interpolator pre-include /* WARNING: $splice Could not find named fragment 'sgci_CustomInterpolatorPreInclude' */ // Includes #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Shim/Shims.hlsl" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Core.hlsl" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Lighting.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/LegacySurfaceVertex.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/ShaderGraphFunctions.hlsl" // -------------------------------------------------- // Structs and Packing // custom interpolators pre packing /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPrePacking' */ struct Attributes { float3 positionOS : POSITION; float3 normalOS : NORMAL; float4 tangentOS : TANGENT; float4 uv0 : TEXCOORD0; #if UNITY_ANY_INSTANCING_ENABLED uint instanceID : INSTANCEID_SEMANTIC; #endif }; struct Varyings { float4 positionCS : SV_POSITION; float4 texCoord0; #if UNITY_ANY_INSTANCING_ENABLED uint instanceID : CUSTOM_INSTANCE_ID; #endif #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE))) uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0; #endif #if (defined(UNITY_STEREO_INSTANCING_ENABLED)) uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex; #endif #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE) FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC; #endif }; struct SurfaceDescriptionInputs { float4 uv0; float3 TimeParameters; }; struct VertexDescriptionInputs { float3 ObjectSpaceNormal; float3 ObjectSpaceTangent; float3 ObjectSpacePosition; }; struct PackedVaryings { float4 positionCS : SV_POSITION; float4 interp0 : INTERP0; #if UNITY_ANY_INSTANCING_ENABLED uint instanceID : CUSTOM_INSTANCE_ID; #endif #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE))) uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0; #endif #if (defined(UNITY_STEREO_INSTANCING_ENABLED)) uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex; #endif #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE) FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC; #endif }; PackedVaryings PackVaryings (Varyings input) { PackedVaryings output; ZERO_INITIALIZE(PackedVaryings, output); output.positionCS = input.positionCS; output.interp0.xyzw = input.texCoord0; #if UNITY_ANY_INSTANCING_ENABLED output.instanceID = input.instanceID; #endif #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE))) output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0; #endif #if (defined(UNITY_STEREO_INSTANCING_ENABLED)) output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx; #endif #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE) output.cullFace = input.cullFace; #endif return output; } Varyings UnpackVaryings (PackedVaryings input) { Varyings output; output.positionCS = input.positionCS; output.texCoord0 = input.interp0.xyzw; #if UNITY_ANY_INSTANCING_ENABLED output.instanceID = input.instanceID; #endif #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE))) output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0; #endif #if (defined(UNITY_STEREO_INSTANCING_ENABLED)) output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx; #endif #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE) output.cullFace = input.cullFace; #endif return output; } // -------------------------------------------------- // Graph // Graph Properties CBUFFER_START(UnityPerMaterial) float4 _MainTex_TexelSize; float _MaxFrames; float _FPS; CBUFFER_END // Object and Global properties SAMPLER(SamplerState_Linear_Repeat); TEXTURE2D(_MainTex); SAMPLER(sampler_MainTex); // -- Property used by ScenePickingPass #ifdef SCENEPICKINGPASS float4 _SelectionID; #endif // -- Properties used by SceneSelectionPass #ifdef SCENESELECTIONPASS int _ObjectId; int _PassValue; #endif // Graph Includes // GraphIncludes: // Graph Functions void Unity_Multiply_float_float(float A, float B, out float Out) { Out = A * B; } void Unity_Modulo_float(float A, float B, out float Out) { Out = fmod(A, B); } void Unity_Floor_float(float In, out float Out) { Out = floor(In); } void Unity_Flipbook_InvertXY_float (float2 UV, float Width, float Height, float Tile, float2 Invert, out float2 Out) { Tile = floor(fmod(Tile + float(0.00001), Width*Height)); float2 tileCount = float2(1.0, 1.0) / float2(Width, Height); float tileX = (Invert.x * Width - ((Tile - Width * floor(Tile * tileCount.x)) + Invert.x * 1)); float tileY = (Invert.y * Height - (floor(Tile * tileCount.x) + Invert.y * 1)); Out = (UV + float2(tileX, tileY)) * tileCount; } // Custom interpolators pre vertex /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreVertex' */ // Graph Vertex struct VertexDescription { float3 Position; float3 Normal; float3 Tangent; }; VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) { VertexDescription description = (VertexDescription)0; description.Position = IN.ObjectSpacePosition; description.Normal = IN.ObjectSpaceNormal; description.Tangent = IN.ObjectSpaceTangent; return description; } // Custom interpolators, pre surface #ifdef FEATURES_GRAPH_VERTEX Varyings CustomInterpolatorPassThroughFunc(inout Varyings output, VertexDescription input) { return output; } #define CUSTOMINTERPOLATOR_VARYPASSTHROUGH_FUNC #endif // Graph Pixel struct SurfaceDescription { float3 BaseColor; float Alpha; }; SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) { SurfaceDescription surface = (SurfaceDescription)0; UnityTexture2D _Property_8622bed71452496ab7aeb9dea24d42b5_Out_0 = UnityBuildTexture2DStructNoScale(_MainTex); float _Property_54d31d31bf63447cb40b4793ffbf1e60_Out_0 = _FPS; float _Multiply_05f2fdcf8e83430ab1e4b927b4c19717_Out_2; Unity_Multiply_float_float(IN.TimeParameters.x, _Property_54d31d31bf63447cb40b4793ffbf1e60_Out_0, _Multiply_05f2fdcf8e83430ab1e4b927b4c19717_Out_2); float _Property_925bfba4e47e47b6a6c5262dcc4e8fe2_Out_0 = _MaxFrames; float _Modulo_cdf955c54d454d49ae81ebdf4270fb56_Out_2; Unity_Modulo_float(_Multiply_05f2fdcf8e83430ab1e4b927b4c19717_Out_2, _Property_925bfba4e47e47b6a6c5262dcc4e8fe2_Out_0, _Modulo_cdf955c54d454d49ae81ebdf4270fb56_Out_2); float _Floor_28f406a829e84199aeba15d2eebb8823_Out_1; Unity_Floor_float(_Modulo_cdf955c54d454d49ae81ebdf4270fb56_Out_2, _Floor_28f406a829e84199aeba15d2eebb8823_Out_1); float2 _Flipbook_c1ccd2165c97414f928a556db7527f16_Out_4; float2 _Flipbook_c1ccd2165c97414f928a556db7527f16_Invert = float2 (1, 1); Unity_Flipbook_InvertXY_float(IN.uv0.xy, 5, 1, _Floor_28f406a829e84199aeba15d2eebb8823_Out_1, _Flipbook_c1ccd2165c97414f928a556db7527f16_Invert, _Flipbook_c1ccd2165c97414f928a556db7527f16_Out_4); float4 _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0 = SAMPLE_TEXTURE2D(_Property_8622bed71452496ab7aeb9dea24d42b5_Out_0.tex, _Property_8622bed71452496ab7aeb9dea24d42b5_Out_0.samplerstate, _Property_8622bed71452496ab7aeb9dea24d42b5_Out_0.GetTransformedUV(_Flipbook_c1ccd2165c97414f928a556db7527f16_Out_4)); float _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_R_4 = _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0.r; float _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_G_5 = _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0.g; float _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_B_6 = _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0.b; float _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_A_7 = _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0.a; surface.BaseColor = (_SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0.xyz); surface.Alpha = _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_A_7; return surface; } // -------------------------------------------------- // Build Graph Inputs VertexDescriptionInputs BuildVertexDescriptionInputs(Attributes input) { VertexDescriptionInputs output; ZERO_INITIALIZE(VertexDescriptionInputs, output); output.ObjectSpaceNormal = input.normalOS; output.ObjectSpaceTangent = input.tangentOS.xyz; output.ObjectSpacePosition = input.positionOS; return output; } SurfaceDescriptionInputs BuildSurfaceDescriptionInputs(Varyings input) { SurfaceDescriptionInputs output; ZERO_INITIALIZE(SurfaceDescriptionInputs, output); output.uv0 = input.texCoord0; output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE) #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN output.FaceSign = IS_FRONT_VFACE(input.cullFace, true, false); #else #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN #endif #undef BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN return output; } void BuildAppDataFull(Attributes attributes, VertexDescription vertexDescription, inout appdata_full result) { result.vertex = float4(attributes.positionOS, 1); result.tangent = attributes.tangentOS; result.normal = attributes.normalOS; result.texcoord = attributes.uv0; result.vertex = float4(vertexDescription.Position, 1); result.normal = vertexDescription.Normal; result.tangent = float4(vertexDescription.Tangent, 0); #if UNITY_ANY_INSTANCING_ENABLED #endif } void VaryingsToSurfaceVertex(Varyings varyings, inout v2f_surf result) { result.pos = varyings.positionCS; // World Tangent isn't an available input on v2f_surf #if UNITY_ANY_INSTANCING_ENABLED #endif #if !defined(LIGHTMAP_ON) #if UNITY_SHOULD_SAMPLE_SH #endif #endif #if defined(LIGHTMAP_ON) #endif #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT result.fogCoord = varyings.fogFactorAndVertexLight.x; COPY_TO_LIGHT_COORDS(result, varyings.fogFactorAndVertexLight.yzw); #endif DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(varyings, result); } void SurfaceVertexToVaryings(v2f_surf surfVertex, inout Varyings result) { result.positionCS = surfVertex.pos; // viewDirectionWS is never filled out in the legacy pass' function. Always use the value computed by SRP // World Tangent isn't an available input on v2f_surf #if UNITY_ANY_INSTANCING_ENABLED #endif #if !defined(LIGHTMAP_ON) #if UNITY_SHOULD_SAMPLE_SH #endif #endif #if defined(LIGHTMAP_ON) #endif #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT result.fogFactorAndVertexLight.x = surfVertex.fogCoord; COPY_FROM_LIGHT_COORDS(result.fogFactorAndVertexLight.yzw, surfVertex); #endif DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(surfVertex, result); } // -------------------------------------------------- // Main #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/ShaderPass.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/Varyings.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/UnlitPass.hlsl" ENDHLSL } Pass { Name "ShadowCaster" Tags { "LightMode" = "ShadowCaster" } // Render State Cull Back Blend SrcAlpha OneMinusSrcAlpha, One OneMinusSrcAlpha ZTest LEqual ZWrite On ColorMask 0 // Debug // // -------------------------------------------------- // Pass HLSLPROGRAM // Pragmas #pragma target 3.0 #pragma multi_compile_shadowcaster #pragma vertex vert #pragma fragment frag // DotsInstancingOptions: // HybridV1InjectedBuiltinProperties: // Keywords #pragma multi_compile _ _CASTING_PUNCTUAL_LIGHT_SHADOW // GraphKeywords: // Defines #define ATTRIBUTES_NEED_NORMAL #define ATTRIBUTES_NEED_TANGENT #define ATTRIBUTES_NEED_TEXCOORD0 #define VARYINGS_NEED_TEXCOORD0 #define FEATURES_GRAPH_VERTEX /* WARNING: $splice Could not find named fragment 'PassInstancing' */ #define SHADERPASS SHADERPASS_SHADOWCASTER #define BUILTIN_TARGET_API 1 #define _BUILTIN_SURFACE_TYPE_TRANSPARENT 1 /* WARNING: $splice Could not find named fragment 'DotsInstancingVars' */ #ifdef _BUILTIN_SURFACE_TYPE_TRANSPARENT #define _SURFACE_TYPE_TRANSPARENT _BUILTIN_SURFACE_TYPE_TRANSPARENT #endif #ifdef _BUILTIN_ALPHATEST_ON #define _ALPHATEST_ON _BUILTIN_ALPHATEST_ON #endif #ifdef _BUILTIN_AlphaClip #define _AlphaClip _BUILTIN_AlphaClip #endif #ifdef _BUILTIN_ALPHAPREMULTIPLY_ON #define _ALPHAPREMULTIPLY_ON _BUILTIN_ALPHAPREMULTIPLY_ON #endif // custom interpolator pre-include /* WARNING: $splice Could not find named fragment 'sgci_CustomInterpolatorPreInclude' */ // Includes #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Shim/Shims.hlsl" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Core.hlsl" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Lighting.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/LegacySurfaceVertex.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/ShaderGraphFunctions.hlsl" // -------------------------------------------------- // Structs and Packing // custom interpolators pre packing /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPrePacking' */ struct Attributes { float3 positionOS : POSITION; float3 normalOS : NORMAL; float4 tangentOS : TANGENT; float4 uv0 : TEXCOORD0; #if UNITY_ANY_INSTANCING_ENABLED uint instanceID : INSTANCEID_SEMANTIC; #endif }; struct Varyings { float4 positionCS : SV_POSITION; float4 texCoord0; #if UNITY_ANY_INSTANCING_ENABLED uint instanceID : CUSTOM_INSTANCE_ID; #endif #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE))) uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0; #endif #if (defined(UNITY_STEREO_INSTANCING_ENABLED)) uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex; #endif #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE) FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC; #endif }; struct SurfaceDescriptionInputs { float4 uv0; float3 TimeParameters; }; struct VertexDescriptionInputs { float3 ObjectSpaceNormal; float3 ObjectSpaceTangent; float3 ObjectSpacePosition; }; struct PackedVaryings { float4 positionCS : SV_POSITION; float4 interp0 : INTERP0; #if UNITY_ANY_INSTANCING_ENABLED uint instanceID : CUSTOM_INSTANCE_ID; #endif #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE))) uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0; #endif #if (defined(UNITY_STEREO_INSTANCING_ENABLED)) uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex; #endif #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE) FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC; #endif }; PackedVaryings PackVaryings (Varyings input) { PackedVaryings output; ZERO_INITIALIZE(PackedVaryings, output); output.positionCS = input.positionCS; output.interp0.xyzw = input.texCoord0; #if UNITY_ANY_INSTANCING_ENABLED output.instanceID = input.instanceID; #endif #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE))) output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0; #endif #if (defined(UNITY_STEREO_INSTANCING_ENABLED)) output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx; #endif #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE) output.cullFace = input.cullFace; #endif return output; } Varyings UnpackVaryings (PackedVaryings input) { Varyings output; output.positionCS = input.positionCS; output.texCoord0 = input.interp0.xyzw; #if UNITY_ANY_INSTANCING_ENABLED output.instanceID = input.instanceID; #endif #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE))) output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0; #endif #if (defined(UNITY_STEREO_INSTANCING_ENABLED)) output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx; #endif #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE) output.cullFace = input.cullFace; #endif return output; } // -------------------------------------------------- // Graph // Graph Properties CBUFFER_START(UnityPerMaterial) float4 _MainTex_TexelSize; float _MaxFrames; float _FPS; CBUFFER_END // Object and Global properties SAMPLER(SamplerState_Linear_Repeat); TEXTURE2D(_MainTex); SAMPLER(sampler_MainTex); // -- Property used by ScenePickingPass #ifdef SCENEPICKINGPASS float4 _SelectionID; #endif // -- Properties used by SceneSelectionPass #ifdef SCENESELECTIONPASS int _ObjectId; int _PassValue; #endif // Graph Includes // GraphIncludes: // Graph Functions void Unity_Multiply_float_float(float A, float B, out float Out) { Out = A * B; } void Unity_Modulo_float(float A, float B, out float Out) { Out = fmod(A, B); } void Unity_Floor_float(float In, out float Out) { Out = floor(In); } void Unity_Flipbook_InvertXY_float (float2 UV, float Width, float Height, float Tile, float2 Invert, out float2 Out) { Tile = floor(fmod(Tile + float(0.00001), Width*Height)); float2 tileCount = float2(1.0, 1.0) / float2(Width, Height); float tileX = (Invert.x * Width - ((Tile - Width * floor(Tile * tileCount.x)) + Invert.x * 1)); float tileY = (Invert.y * Height - (floor(Tile * tileCount.x) + Invert.y * 1)); Out = (UV + float2(tileX, tileY)) * tileCount; } // Custom interpolators pre vertex /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreVertex' */ // Graph Vertex struct VertexDescription { float3 Position; float3 Normal; float3 Tangent; }; VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) { VertexDescription description = (VertexDescription)0; description.Position = IN.ObjectSpacePosition; description.Normal = IN.ObjectSpaceNormal; description.Tangent = IN.ObjectSpaceTangent; return description; } // Custom interpolators, pre surface #ifdef FEATURES_GRAPH_VERTEX Varyings CustomInterpolatorPassThroughFunc(inout Varyings output, VertexDescription input) { return output; } #define CUSTOMINTERPOLATOR_VARYPASSTHROUGH_FUNC #endif // Graph Pixel struct SurfaceDescription { float Alpha; }; SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) { SurfaceDescription surface = (SurfaceDescription)0; UnityTexture2D _Property_8622bed71452496ab7aeb9dea24d42b5_Out_0 = UnityBuildTexture2DStructNoScale(_MainTex); float _Property_54d31d31bf63447cb40b4793ffbf1e60_Out_0 = _FPS; float _Multiply_05f2fdcf8e83430ab1e4b927b4c19717_Out_2; Unity_Multiply_float_float(IN.TimeParameters.x, _Property_54d31d31bf63447cb40b4793ffbf1e60_Out_0, _Multiply_05f2fdcf8e83430ab1e4b927b4c19717_Out_2); float _Property_925bfba4e47e47b6a6c5262dcc4e8fe2_Out_0 = _MaxFrames; float _Modulo_cdf955c54d454d49ae81ebdf4270fb56_Out_2; Unity_Modulo_float(_Multiply_05f2fdcf8e83430ab1e4b927b4c19717_Out_2, _Property_925bfba4e47e47b6a6c5262dcc4e8fe2_Out_0, _Modulo_cdf955c54d454d49ae81ebdf4270fb56_Out_2); float _Floor_28f406a829e84199aeba15d2eebb8823_Out_1; Unity_Floor_float(_Modulo_cdf955c54d454d49ae81ebdf4270fb56_Out_2, _Floor_28f406a829e84199aeba15d2eebb8823_Out_1); float2 _Flipbook_c1ccd2165c97414f928a556db7527f16_Out_4; float2 _Flipbook_c1ccd2165c97414f928a556db7527f16_Invert = float2 (1, 1); Unity_Flipbook_InvertXY_float(IN.uv0.xy, 5, 1, _Floor_28f406a829e84199aeba15d2eebb8823_Out_1, _Flipbook_c1ccd2165c97414f928a556db7527f16_Invert, _Flipbook_c1ccd2165c97414f928a556db7527f16_Out_4); float4 _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0 = SAMPLE_TEXTURE2D(_Property_8622bed71452496ab7aeb9dea24d42b5_Out_0.tex, _Property_8622bed71452496ab7aeb9dea24d42b5_Out_0.samplerstate, _Property_8622bed71452496ab7aeb9dea24d42b5_Out_0.GetTransformedUV(_Flipbook_c1ccd2165c97414f928a556db7527f16_Out_4)); float _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_R_4 = _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0.r; float _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_G_5 = _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0.g; float _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_B_6 = _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0.b; float _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_A_7 = _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0.a; surface.Alpha = _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_A_7; return surface; } // -------------------------------------------------- // Build Graph Inputs VertexDescriptionInputs BuildVertexDescriptionInputs(Attributes input) { VertexDescriptionInputs output; ZERO_INITIALIZE(VertexDescriptionInputs, output); output.ObjectSpaceNormal = input.normalOS; output.ObjectSpaceTangent = input.tangentOS.xyz; output.ObjectSpacePosition = input.positionOS; return output; } SurfaceDescriptionInputs BuildSurfaceDescriptionInputs(Varyings input) { SurfaceDescriptionInputs output; ZERO_INITIALIZE(SurfaceDescriptionInputs, output); output.uv0 = input.texCoord0; output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE) #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN output.FaceSign = IS_FRONT_VFACE(input.cullFace, true, false); #else #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN #endif #undef BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN return output; } void BuildAppDataFull(Attributes attributes, VertexDescription vertexDescription, inout appdata_full result) { result.vertex = float4(attributes.positionOS, 1); result.tangent = attributes.tangentOS; result.normal = attributes.normalOS; result.texcoord = attributes.uv0; result.vertex = float4(vertexDescription.Position, 1); result.normal = vertexDescription.Normal; result.tangent = float4(vertexDescription.Tangent, 0); #if UNITY_ANY_INSTANCING_ENABLED #endif } void VaryingsToSurfaceVertex(Varyings varyings, inout v2f_surf result) { result.pos = varyings.positionCS; // World Tangent isn't an available input on v2f_surf #if UNITY_ANY_INSTANCING_ENABLED #endif #if !defined(LIGHTMAP_ON) #if UNITY_SHOULD_SAMPLE_SH #endif #endif #if defined(LIGHTMAP_ON) #endif #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT result.fogCoord = varyings.fogFactorAndVertexLight.x; COPY_TO_LIGHT_COORDS(result, varyings.fogFactorAndVertexLight.yzw); #endif DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(varyings, result); } void SurfaceVertexToVaryings(v2f_surf surfVertex, inout Varyings result) { result.positionCS = surfVertex.pos; // viewDirectionWS is never filled out in the legacy pass' function. Always use the value computed by SRP // World Tangent isn't an available input on v2f_surf #if UNITY_ANY_INSTANCING_ENABLED #endif #if !defined(LIGHTMAP_ON) #if UNITY_SHOULD_SAMPLE_SH #endif #endif #if defined(LIGHTMAP_ON) #endif #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT result.fogFactorAndVertexLight.x = surfVertex.fogCoord; COPY_FROM_LIGHT_COORDS(result.fogFactorAndVertexLight.yzw, surfVertex); #endif DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(surfVertex, result); } // -------------------------------------------------- // Main #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/ShaderPass.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/Varyings.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/ShadowCasterPass.hlsl" ENDHLSL } Pass { Name "SceneSelectionPass" Tags { "LightMode" = "SceneSelectionPass" } // Render State Cull Off // Debug // // -------------------------------------------------- // Pass HLSLPROGRAM // Pragmas #pragma target 3.0 #pragma multi_compile_instancing #pragma vertex vert #pragma fragment frag // DotsInstancingOptions: // HybridV1InjectedBuiltinProperties: // Keywords // PassKeywords: // GraphKeywords: // Defines #define ATTRIBUTES_NEED_NORMAL #define ATTRIBUTES_NEED_TANGENT #define ATTRIBUTES_NEED_TEXCOORD0 #define VARYINGS_NEED_TEXCOORD0 #define FEATURES_GRAPH_VERTEX /* WARNING: $splice Could not find named fragment 'PassInstancing' */ #define SHADERPASS SceneSelectionPass #define BUILTIN_TARGET_API 1 #define SCENESELECTIONPASS 1 #define _BUILTIN_SURFACE_TYPE_TRANSPARENT 1 /* WARNING: $splice Could not find named fragment 'DotsInstancingVars' */ #ifdef _BUILTIN_SURFACE_TYPE_TRANSPARENT #define _SURFACE_TYPE_TRANSPARENT _BUILTIN_SURFACE_TYPE_TRANSPARENT #endif #ifdef _BUILTIN_ALPHATEST_ON #define _ALPHATEST_ON _BUILTIN_ALPHATEST_ON #endif #ifdef _BUILTIN_AlphaClip #define _AlphaClip _BUILTIN_AlphaClip #endif #ifdef _BUILTIN_ALPHAPREMULTIPLY_ON #define _ALPHAPREMULTIPLY_ON _BUILTIN_ALPHAPREMULTIPLY_ON #endif // custom interpolator pre-include /* WARNING: $splice Could not find named fragment 'sgci_CustomInterpolatorPreInclude' */ // Includes #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Shim/Shims.hlsl" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Core.hlsl" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Lighting.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/LegacySurfaceVertex.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/ShaderGraphFunctions.hlsl" // -------------------------------------------------- // Structs and Packing // custom interpolators pre packing /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPrePacking' */ struct Attributes { float3 positionOS : POSITION; float3 normalOS : NORMAL; float4 tangentOS : TANGENT; float4 uv0 : TEXCOORD0; #if UNITY_ANY_INSTANCING_ENABLED uint instanceID : INSTANCEID_SEMANTIC; #endif }; struct Varyings { float4 positionCS : SV_POSITION; float4 texCoord0; #if UNITY_ANY_INSTANCING_ENABLED uint instanceID : CUSTOM_INSTANCE_ID; #endif #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE))) uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0; #endif #if (defined(UNITY_STEREO_INSTANCING_ENABLED)) uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex; #endif #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE) FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC; #endif }; struct SurfaceDescriptionInputs { float4 uv0; float3 TimeParameters; }; struct VertexDescriptionInputs { float3 ObjectSpaceNormal; float3 ObjectSpaceTangent; float3 ObjectSpacePosition; }; struct PackedVaryings { float4 positionCS : SV_POSITION; float4 interp0 : INTERP0; #if UNITY_ANY_INSTANCING_ENABLED uint instanceID : CUSTOM_INSTANCE_ID; #endif #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE))) uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0; #endif #if (defined(UNITY_STEREO_INSTANCING_ENABLED)) uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex; #endif #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE) FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC; #endif }; PackedVaryings PackVaryings (Varyings input) { PackedVaryings output; ZERO_INITIALIZE(PackedVaryings, output); output.positionCS = input.positionCS; output.interp0.xyzw = input.texCoord0; #if UNITY_ANY_INSTANCING_ENABLED output.instanceID = input.instanceID; #endif #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE))) output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0; #endif #if (defined(UNITY_STEREO_INSTANCING_ENABLED)) output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx; #endif #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE) output.cullFace = input.cullFace; #endif return output; } Varyings UnpackVaryings (PackedVaryings input) { Varyings output; output.positionCS = input.positionCS; output.texCoord0 = input.interp0.xyzw; #if UNITY_ANY_INSTANCING_ENABLED output.instanceID = input.instanceID; #endif #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE))) output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0; #endif #if (defined(UNITY_STEREO_INSTANCING_ENABLED)) output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx; #endif #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE) output.cullFace = input.cullFace; #endif return output; } // -------------------------------------------------- // Graph // Graph Properties CBUFFER_START(UnityPerMaterial) float4 _MainTex_TexelSize; float _MaxFrames; float _FPS; CBUFFER_END // Object and Global properties SAMPLER(SamplerState_Linear_Repeat); TEXTURE2D(_MainTex); SAMPLER(sampler_MainTex); // -- Property used by ScenePickingPass #ifdef SCENEPICKINGPASS float4 _SelectionID; #endif // -- Properties used by SceneSelectionPass #ifdef SCENESELECTIONPASS int _ObjectId; int _PassValue; #endif // Graph Includes // GraphIncludes: // Graph Functions void Unity_Multiply_float_float(float A, float B, out float Out) { Out = A * B; } void Unity_Modulo_float(float A, float B, out float Out) { Out = fmod(A, B); } void Unity_Floor_float(float In, out float Out) { Out = floor(In); } void Unity_Flipbook_InvertXY_float (float2 UV, float Width, float Height, float Tile, float2 Invert, out float2 Out) { Tile = floor(fmod(Tile + float(0.00001), Width*Height)); float2 tileCount = float2(1.0, 1.0) / float2(Width, Height); float tileX = (Invert.x * Width - ((Tile - Width * floor(Tile * tileCount.x)) + Invert.x * 1)); float tileY = (Invert.y * Height - (floor(Tile * tileCount.x) + Invert.y * 1)); Out = (UV + float2(tileX, tileY)) * tileCount; } // Custom interpolators pre vertex /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreVertex' */ // Graph Vertex struct VertexDescription { float3 Position; float3 Normal; float3 Tangent; }; VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) { VertexDescription description = (VertexDescription)0; description.Position = IN.ObjectSpacePosition; description.Normal = IN.ObjectSpaceNormal; description.Tangent = IN.ObjectSpaceTangent; return description; } // Custom interpolators, pre surface #ifdef FEATURES_GRAPH_VERTEX Varyings CustomInterpolatorPassThroughFunc(inout Varyings output, VertexDescription input) { return output; } #define CUSTOMINTERPOLATOR_VARYPASSTHROUGH_FUNC #endif // Graph Pixel struct SurfaceDescription { float Alpha; }; SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) { SurfaceDescription surface = (SurfaceDescription)0; UnityTexture2D _Property_8622bed71452496ab7aeb9dea24d42b5_Out_0 = UnityBuildTexture2DStructNoScale(_MainTex); float _Property_54d31d31bf63447cb40b4793ffbf1e60_Out_0 = _FPS; float _Multiply_05f2fdcf8e83430ab1e4b927b4c19717_Out_2; Unity_Multiply_float_float(IN.TimeParameters.x, _Property_54d31d31bf63447cb40b4793ffbf1e60_Out_0, _Multiply_05f2fdcf8e83430ab1e4b927b4c19717_Out_2); float _Property_925bfba4e47e47b6a6c5262dcc4e8fe2_Out_0 = _MaxFrames; float _Modulo_cdf955c54d454d49ae81ebdf4270fb56_Out_2; Unity_Modulo_float(_Multiply_05f2fdcf8e83430ab1e4b927b4c19717_Out_2, _Property_925bfba4e47e47b6a6c5262dcc4e8fe2_Out_0, _Modulo_cdf955c54d454d49ae81ebdf4270fb56_Out_2); float _Floor_28f406a829e84199aeba15d2eebb8823_Out_1; Unity_Floor_float(_Modulo_cdf955c54d454d49ae81ebdf4270fb56_Out_2, _Floor_28f406a829e84199aeba15d2eebb8823_Out_1); float2 _Flipbook_c1ccd2165c97414f928a556db7527f16_Out_4; float2 _Flipbook_c1ccd2165c97414f928a556db7527f16_Invert = float2 (1, 1); Unity_Flipbook_InvertXY_float(IN.uv0.xy, 5, 1, _Floor_28f406a829e84199aeba15d2eebb8823_Out_1, _Flipbook_c1ccd2165c97414f928a556db7527f16_Invert, _Flipbook_c1ccd2165c97414f928a556db7527f16_Out_4); float4 _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0 = SAMPLE_TEXTURE2D(_Property_8622bed71452496ab7aeb9dea24d42b5_Out_0.tex, _Property_8622bed71452496ab7aeb9dea24d42b5_Out_0.samplerstate, _Property_8622bed71452496ab7aeb9dea24d42b5_Out_0.GetTransformedUV(_Flipbook_c1ccd2165c97414f928a556db7527f16_Out_4)); float _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_R_4 = _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0.r; float _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_G_5 = _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0.g; float _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_B_6 = _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0.b; float _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_A_7 = _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0.a; surface.Alpha = _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_A_7; return surface; } // -------------------------------------------------- // Build Graph Inputs VertexDescriptionInputs BuildVertexDescriptionInputs(Attributes input) { VertexDescriptionInputs output; ZERO_INITIALIZE(VertexDescriptionInputs, output); output.ObjectSpaceNormal = input.normalOS; output.ObjectSpaceTangent = input.tangentOS.xyz; output.ObjectSpacePosition = input.positionOS; return output; } SurfaceDescriptionInputs BuildSurfaceDescriptionInputs(Varyings input) { SurfaceDescriptionInputs output; ZERO_INITIALIZE(SurfaceDescriptionInputs, output); output.uv0 = input.texCoord0; output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE) #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN output.FaceSign = IS_FRONT_VFACE(input.cullFace, true, false); #else #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN #endif #undef BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN return output; } void BuildAppDataFull(Attributes attributes, VertexDescription vertexDescription, inout appdata_full result) { result.vertex = float4(attributes.positionOS, 1); result.tangent = attributes.tangentOS; result.normal = attributes.normalOS; result.texcoord = attributes.uv0; result.vertex = float4(vertexDescription.Position, 1); result.normal = vertexDescription.Normal; result.tangent = float4(vertexDescription.Tangent, 0); #if UNITY_ANY_INSTANCING_ENABLED #endif } void VaryingsToSurfaceVertex(Varyings varyings, inout v2f_surf result) { result.pos = varyings.positionCS; // World Tangent isn't an available input on v2f_surf #if UNITY_ANY_INSTANCING_ENABLED #endif #if !defined(LIGHTMAP_ON) #if UNITY_SHOULD_SAMPLE_SH #endif #endif #if defined(LIGHTMAP_ON) #endif #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT result.fogCoord = varyings.fogFactorAndVertexLight.x; COPY_TO_LIGHT_COORDS(result, varyings.fogFactorAndVertexLight.yzw); #endif DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(varyings, result); } void SurfaceVertexToVaryings(v2f_surf surfVertex, inout Varyings result) { result.positionCS = surfVertex.pos; // viewDirectionWS is never filled out in the legacy pass' function. Always use the value computed by SRP // World Tangent isn't an available input on v2f_surf #if UNITY_ANY_INSTANCING_ENABLED #endif #if !defined(LIGHTMAP_ON) #if UNITY_SHOULD_SAMPLE_SH #endif #endif #if defined(LIGHTMAP_ON) #endif #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT result.fogFactorAndVertexLight.x = surfVertex.fogCoord; COPY_FROM_LIGHT_COORDS(result.fogFactorAndVertexLight.yzw, surfVertex); #endif DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(surfVertex, result); } // -------------------------------------------------- // Main #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/ShaderPass.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/Varyings.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/DepthOnlyPass.hlsl" ENDHLSL } Pass { Name "ScenePickingPass" Tags { "LightMode" = "Picking" } // Render State Cull Back // Debug // // -------------------------------------------------- // Pass HLSLPROGRAM // Pragmas #pragma target 3.0 #pragma multi_compile_instancing #pragma vertex vert #pragma fragment frag // DotsInstancingOptions: // HybridV1InjectedBuiltinProperties: // Keywords // PassKeywords: // GraphKeywords: // Defines #define ATTRIBUTES_NEED_NORMAL #define ATTRIBUTES_NEED_TANGENT #define ATTRIBUTES_NEED_TEXCOORD0 #define VARYINGS_NEED_TEXCOORD0 #define FEATURES_GRAPH_VERTEX /* WARNING: $splice Could not find named fragment 'PassInstancing' */ #define SHADERPASS ScenePickingPass #define BUILTIN_TARGET_API 1 #define SCENEPICKINGPASS 1 #define _BUILTIN_SURFACE_TYPE_TRANSPARENT 1 /* WARNING: $splice Could not find named fragment 'DotsInstancingVars' */ #ifdef _BUILTIN_SURFACE_TYPE_TRANSPARENT #define _SURFACE_TYPE_TRANSPARENT _BUILTIN_SURFACE_TYPE_TRANSPARENT #endif #ifdef _BUILTIN_ALPHATEST_ON #define _ALPHATEST_ON _BUILTIN_ALPHATEST_ON #endif #ifdef _BUILTIN_AlphaClip #define _AlphaClip _BUILTIN_AlphaClip #endif #ifdef _BUILTIN_ALPHAPREMULTIPLY_ON #define _ALPHAPREMULTIPLY_ON _BUILTIN_ALPHAPREMULTIPLY_ON #endif // custom interpolator pre-include /* WARNING: $splice Could not find named fragment 'sgci_CustomInterpolatorPreInclude' */ // Includes #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Shim/Shims.hlsl" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Core.hlsl" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Lighting.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/LegacySurfaceVertex.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/ShaderGraphFunctions.hlsl" // -------------------------------------------------- // Structs and Packing // custom interpolators pre packing /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPrePacking' */ struct Attributes { float3 positionOS : POSITION; float3 normalOS : NORMAL; float4 tangentOS : TANGENT; float4 uv0 : TEXCOORD0; #if UNITY_ANY_INSTANCING_ENABLED uint instanceID : INSTANCEID_SEMANTIC; #endif }; struct Varyings { float4 positionCS : SV_POSITION; float4 texCoord0; #if UNITY_ANY_INSTANCING_ENABLED uint instanceID : CUSTOM_INSTANCE_ID; #endif #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE))) uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0; #endif #if (defined(UNITY_STEREO_INSTANCING_ENABLED)) uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex; #endif #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE) FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC; #endif }; struct SurfaceDescriptionInputs { float4 uv0; float3 TimeParameters; }; struct VertexDescriptionInputs { float3 ObjectSpaceNormal; float3 ObjectSpaceTangent; float3 ObjectSpacePosition; }; struct PackedVaryings { float4 positionCS : SV_POSITION; float4 interp0 : INTERP0; #if UNITY_ANY_INSTANCING_ENABLED uint instanceID : CUSTOM_INSTANCE_ID; #endif #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE))) uint stereoTargetEyeIndexAsBlendIdx0 : BLENDINDICES0; #endif #if (defined(UNITY_STEREO_INSTANCING_ENABLED)) uint stereoTargetEyeIndexAsRTArrayIdx : SV_RenderTargetArrayIndex; #endif #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE) FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMANTIC; #endif }; PackedVaryings PackVaryings (Varyings input) { PackedVaryings output; ZERO_INITIALIZE(PackedVaryings, output); output.positionCS = input.positionCS; output.interp0.xyzw = input.texCoord0; #if UNITY_ANY_INSTANCING_ENABLED output.instanceID = input.instanceID; #endif #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE))) output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0; #endif #if (defined(UNITY_STEREO_INSTANCING_ENABLED)) output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx; #endif #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE) output.cullFace = input.cullFace; #endif return output; } Varyings UnpackVaryings (PackedVaryings input) { Varyings output; output.positionCS = input.positionCS; output.texCoord0 = input.interp0.xyzw; #if UNITY_ANY_INSTANCING_ENABLED output.instanceID = input.instanceID; #endif #if (defined(UNITY_STEREO_MULTIVIEW_ENABLED)) || (defined(UNITY_STEREO_INSTANCING_ENABLED) && (defined(SHADER_API_GLES3) || defined(SHADER_API_GLCORE))) output.stereoTargetEyeIndexAsBlendIdx0 = input.stereoTargetEyeIndexAsBlendIdx0; #endif #if (defined(UNITY_STEREO_INSTANCING_ENABLED)) output.stereoTargetEyeIndexAsRTArrayIdx = input.stereoTargetEyeIndexAsRTArrayIdx; #endif #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE) output.cullFace = input.cullFace; #endif return output; } // -------------------------------------------------- // Graph // Graph Properties CBUFFER_START(UnityPerMaterial) float4 _MainTex_TexelSize; float _MaxFrames; float _FPS; CBUFFER_END // Object and Global properties SAMPLER(SamplerState_Linear_Repeat); TEXTURE2D(_MainTex); SAMPLER(sampler_MainTex); // -- Property used by ScenePickingPass #ifdef SCENEPICKINGPASS float4 _SelectionID; #endif // -- Properties used by SceneSelectionPass #ifdef SCENESELECTIONPASS int _ObjectId; int _PassValue; #endif // Graph Includes // GraphIncludes: // Graph Functions void Unity_Multiply_float_float(float A, float B, out float Out) { Out = A * B; } void Unity_Modulo_float(float A, float B, out float Out) { Out = fmod(A, B); } void Unity_Floor_float(float In, out float Out) { Out = floor(In); } void Unity_Flipbook_InvertXY_float (float2 UV, float Width, float Height, float Tile, float2 Invert, out float2 Out) { Tile = floor(fmod(Tile + float(0.00001), Width*Height)); float2 tileCount = float2(1.0, 1.0) / float2(Width, Height); float tileX = (Invert.x * Width - ((Tile - Width * floor(Tile * tileCount.x)) + Invert.x * 1)); float tileY = (Invert.y * Height - (floor(Tile * tileCount.x) + Invert.y * 1)); Out = (UV + float2(tileX, tileY)) * tileCount; } // Custom interpolators pre vertex /* WARNING: $splice Could not find named fragment 'CustomInterpolatorPreVertex' */ // Graph Vertex struct VertexDescription { float3 Position; float3 Normal; float3 Tangent; }; VertexDescription VertexDescriptionFunction(VertexDescriptionInputs IN) { VertexDescription description = (VertexDescription)0; description.Position = IN.ObjectSpacePosition; description.Normal = IN.ObjectSpaceNormal; description.Tangent = IN.ObjectSpaceTangent; return description; } // Custom interpolators, pre surface #ifdef FEATURES_GRAPH_VERTEX Varyings CustomInterpolatorPassThroughFunc(inout Varyings output, VertexDescription input) { return output; } #define CUSTOMINTERPOLATOR_VARYPASSTHROUGH_FUNC #endif // Graph Pixel struct SurfaceDescription { float Alpha; }; SurfaceDescription SurfaceDescriptionFunction(SurfaceDescriptionInputs IN) { SurfaceDescription surface = (SurfaceDescription)0; UnityTexture2D _Property_8622bed71452496ab7aeb9dea24d42b5_Out_0 = UnityBuildTexture2DStructNoScale(_MainTex); float _Property_54d31d31bf63447cb40b4793ffbf1e60_Out_0 = _FPS; float _Multiply_05f2fdcf8e83430ab1e4b927b4c19717_Out_2; Unity_Multiply_float_float(IN.TimeParameters.x, _Property_54d31d31bf63447cb40b4793ffbf1e60_Out_0, _Multiply_05f2fdcf8e83430ab1e4b927b4c19717_Out_2); float _Property_925bfba4e47e47b6a6c5262dcc4e8fe2_Out_0 = _MaxFrames; float _Modulo_cdf955c54d454d49ae81ebdf4270fb56_Out_2; Unity_Modulo_float(_Multiply_05f2fdcf8e83430ab1e4b927b4c19717_Out_2, _Property_925bfba4e47e47b6a6c5262dcc4e8fe2_Out_0, _Modulo_cdf955c54d454d49ae81ebdf4270fb56_Out_2); float _Floor_28f406a829e84199aeba15d2eebb8823_Out_1; Unity_Floor_float(_Modulo_cdf955c54d454d49ae81ebdf4270fb56_Out_2, _Floor_28f406a829e84199aeba15d2eebb8823_Out_1); float2 _Flipbook_c1ccd2165c97414f928a556db7527f16_Out_4; float2 _Flipbook_c1ccd2165c97414f928a556db7527f16_Invert = float2 (1, 1); Unity_Flipbook_InvertXY_float(IN.uv0.xy, 5, 1, _Floor_28f406a829e84199aeba15d2eebb8823_Out_1, _Flipbook_c1ccd2165c97414f928a556db7527f16_Invert, _Flipbook_c1ccd2165c97414f928a556db7527f16_Out_4); float4 _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0 = SAMPLE_TEXTURE2D(_Property_8622bed71452496ab7aeb9dea24d42b5_Out_0.tex, _Property_8622bed71452496ab7aeb9dea24d42b5_Out_0.samplerstate, _Property_8622bed71452496ab7aeb9dea24d42b5_Out_0.GetTransformedUV(_Flipbook_c1ccd2165c97414f928a556db7527f16_Out_4)); float _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_R_4 = _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0.r; float _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_G_5 = _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0.g; float _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_B_6 = _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0.b; float _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_A_7 = _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_RGBA_0.a; surface.Alpha = _SampleTexture2D_189866dcd5154670b7824dbc9ca4256e_A_7; return surface; } // -------------------------------------------------- // Build Graph Inputs VertexDescriptionInputs BuildVertexDescriptionInputs(Attributes input) { VertexDescriptionInputs output; ZERO_INITIALIZE(VertexDescriptionInputs, output); output.ObjectSpaceNormal = input.normalOS; output.ObjectSpaceTangent = input.tangentOS.xyz; output.ObjectSpacePosition = input.positionOS; return output; } SurfaceDescriptionInputs BuildSurfaceDescriptionInputs(Varyings input) { SurfaceDescriptionInputs output; ZERO_INITIALIZE(SurfaceDescriptionInputs, output); output.uv0 = input.texCoord0; output.TimeParameters = _TimeParameters.xyz; // This is mainly for LW as HD overwrite this value #if defined(SHADER_STAGE_FRAGMENT) && defined(VARYINGS_NEED_CULLFACE) #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN output.FaceSign = IS_FRONT_VFACE(input.cullFace, true, false); #else #define BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN #endif #undef BUILD_SURFACE_DESCRIPTION_INPUTS_OUTPUT_FACESIGN return output; } void BuildAppDataFull(Attributes attributes, VertexDescription vertexDescription, inout appdata_full result) { result.vertex = float4(attributes.positionOS, 1); result.tangent = attributes.tangentOS; result.normal = attributes.normalOS; result.texcoord = attributes.uv0; result.vertex = float4(vertexDescription.Position, 1); result.normal = vertexDescription.Normal; result.tangent = float4(vertexDescription.Tangent, 0); #if UNITY_ANY_INSTANCING_ENABLED #endif } void VaryingsToSurfaceVertex(Varyings varyings, inout v2f_surf result) { result.pos = varyings.positionCS; // World Tangent isn't an available input on v2f_surf #if UNITY_ANY_INSTANCING_ENABLED #endif #if !defined(LIGHTMAP_ON) #if UNITY_SHOULD_SAMPLE_SH #endif #endif #if defined(LIGHTMAP_ON) #endif #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT result.fogCoord = varyings.fogFactorAndVertexLight.x; COPY_TO_LIGHT_COORDS(result, varyings.fogFactorAndVertexLight.yzw); #endif DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(varyings, result); } void SurfaceVertexToVaryings(v2f_surf surfVertex, inout Varyings result) { result.positionCS = surfVertex.pos; // viewDirectionWS is never filled out in the legacy pass' function. Always use the value computed by SRP // World Tangent isn't an available input on v2f_surf #if UNITY_ANY_INSTANCING_ENABLED #endif #if !defined(LIGHTMAP_ON) #if UNITY_SHOULD_SAMPLE_SH #endif #endif #if defined(LIGHTMAP_ON) #endif #ifdef VARYINGS_NEED_FOG_AND_VERTEX_LIGHT result.fogFactorAndVertexLight.x = surfVertex.fogCoord; COPY_FROM_LIGHT_COORDS(result.fogFactorAndVertexLight.yzw, surfVertex); #endif DEFAULT_UNITY_TRANSFER_VERTEX_OUTPUT_STEREO(surfVertex, result); } // -------------------------------------------------- // Main #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/ShaderPass.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/Varyings.hlsl" #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Includes/DepthOnlyPass.hlsl" ENDHLSL } } CustomEditorForRenderPipeline "UnityEditor.Rendering.BuiltIn.ShaderGraph.BuiltInUnlitGUI" "" CustomEditor "UnityEditor.ShaderGraph.GenericShaderGraphMaterialGUI" FallBack "Hidden/Shader Graph/FallbackError" }