Pass { $splice(PassName) Tags { $splice(LightMode) } // Render State $splice(RenderState) // Debug $splice(Debug) // -------------------------------------------------- // Pass HLSLPROGRAM // Pragmas $splice(PassPragmas) $splice(DotsInstancingOptions) $splice(HybridV1InjectedBuiltinProperties) // Keywords $splice(PassKeywords) $splice(GraphKeywords) // Defines $features.graphVFX: #define HAVE_VFX_MODIFICATION $Normal: #define _NORMALMAP 1 $NormalDropOffTS: #define _NORMAL_DROPOFF_TS 1 $NormalDropOffOS: #define _NORMAL_DROPOFF_OS 1 $NormalDropOffWS: #define _NORMAL_DROPOFF_WS 1 $Attributes.normalOS: #define ATTRIBUTES_NEED_NORMAL $Attributes.tangentOS: #define ATTRIBUTES_NEED_TANGENT $Attributes.uv0: #define ATTRIBUTES_NEED_TEXCOORD0 $Attributes.uv1: #define ATTRIBUTES_NEED_TEXCOORD1 $Attributes.uv2: #define ATTRIBUTES_NEED_TEXCOORD2 $Attributes.uv3: #define ATTRIBUTES_NEED_TEXCOORD3 $Attributes.color: #define ATTRIBUTES_NEED_COLOR $Attributes.vertexID: #define ATTRIBUTES_NEED_VERTEXID $Varyings.positionWS: #define VARYINGS_NEED_POSITION_WS $Varyings.normalWS: #define VARYINGS_NEED_NORMAL_WS $Varyings.tangentWS: #define VARYINGS_NEED_TANGENT_WS $Varyings.texCoord0: #define VARYINGS_NEED_TEXCOORD0 $Varyings.texCoord1: #define VARYINGS_NEED_TEXCOORD1 $Varyings.texCoord2: #define VARYINGS_NEED_TEXCOORD2 $Varyings.texCoord3: #define VARYINGS_NEED_TEXCOORD3 $Varyings.color: #define VARYINGS_NEED_COLOR $Varyings.elementToWorld0: #define VARYINGS_NEED_ELEMENT_TO_WORLD $Varyings.worldToElement0: #define VARYINGS_NEED_WORLD_TO_ELEMENT $Varyings.viewDirectionWS: #define VARYINGS_NEED_VIEWDIRECTION_WS $Varyings.bitangentWS: #define VARYINGS_NEED_BITANGENT_WS $Varyings.screenPosition: #define VARYINGS_NEED_SCREENPOSITION $Varyings.fogFactorAndVertexLight: #define VARYINGS_NEED_FOG_AND_VERTEX_LIGHT $Varyings.shadowCoord: #define VARYINGS_NEED_SHADOW_COORD $Varyings.cullFace: #define VARYINGS_NEED_CULLFACE $features.graphVertex: #define FEATURES_GRAPH_VERTEX $Universal.UseLegacySpriteBlocks: #define UNIVERSAL_USELEGACYSPRITEBLOCKS $splice(PassInstancing) $splice(GraphDefines) $splice(DotsInstancingVars) // custom interpolator pre-include $splice(sgci_CustomInterpolatorPreInclude) // Includes $splice(PreGraphIncludes) // -------------------------------------------------- // Structs and Packing // custom interpolators pre packing $splice(CustomInterpolatorPrePacking) $splice(PassStructs) $splice(InterpolatorPack) // -------------------------------------------------- // Graph // Graph Properties $splice(GraphProperties) // Graph Includes $splice(GraphIncludes) // -- Property used by ScenePickingPass #ifdef SCENEPICKINGPASS float4 _SelectionID; #endif // -- Properties used by SceneSelectionPass #ifdef SCENESELECTIONPASS int _ObjectId; int _PassValue; #endif // Graph Functions $splice(GraphFunctions) // Custom interpolators pre vertex $splice(CustomInterpolatorPreVertex) // Graph Vertex $splice(GraphVertex) // Custom interpolators, pre surface $splice(CustomInterpolatorPreSurface) // Graph Pixel $splice(GraphPixel) // -------------------------------------------------- // Build Graph Inputs #ifdef HAVE_VFX_MODIFICATION #define VFX_SRP_ATTRIBUTES Attributes #define VFX_SRP_VARYINGS Varyings #define VFX_SRP_SURFACE_INPUTS SurfaceDescriptionInputs #endif $features.graphVFX: $include("VFXConfig.template.hlsl") $features.graphVertex: $include("BuildVertexDescriptionInputs.template.hlsl") $features.graphPixel: $include("SharedCode.template.hlsl") // -------------------------------------------------- // Main $splice(PostGraphIncludes) // -------------------------------------------------- // Visual Effect Vertex Invocations #ifdef HAVE_VFX_MODIFICATION #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/VisualEffectVertex.hlsl" #endif ENDHLSL }