Nessuna descrizione
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ShaderPass.template 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. Pass
  2. {
  3. $splice(PassName)
  4. Tags
  5. {
  6. $splice(LightMode)
  7. }
  8. // Render State
  9. $splice(RenderState)
  10. // Debug
  11. $splice(Debug)
  12. // --------------------------------------------------
  13. // Pass
  14. HLSLPROGRAM
  15. // Pragmas
  16. $splice(PassPragmas)
  17. // Keywords
  18. $splice(PassKeywords)
  19. $splice(GraphKeywords)
  20. // Defines
  21. $features.graphVFX: #define HAVE_VFX_MODIFICATION
  22. $Normal: #define _NORMALMAP 1
  23. $NormalDropOffTS: #define _NORMAL_DROPOFF_TS 1
  24. $NormalDropOffOS: #define _NORMAL_DROPOFF_OS 1
  25. $NormalDropOffWS: #define _NORMAL_DROPOFF_WS 1
  26. $Attributes.normalOS: #define ATTRIBUTES_NEED_NORMAL
  27. $Attributes.tangentOS: #define ATTRIBUTES_NEED_TANGENT
  28. $Attributes.uv0: #define ATTRIBUTES_NEED_TEXCOORD0
  29. $Attributes.uv1: #define ATTRIBUTES_NEED_TEXCOORD1
  30. $Attributes.uv2: #define ATTRIBUTES_NEED_TEXCOORD2
  31. $Attributes.uv3: #define ATTRIBUTES_NEED_TEXCOORD3
  32. $Attributes.color: #define ATTRIBUTES_NEED_COLOR
  33. $Attributes.vertexID: #define ATTRIBUTES_NEED_VERTEXID
  34. $Attributes.instanceID: #define ATTRIBUTES_NEED_INSTANCEID
  35. $VertexDescriptionInputs.TimeParameters: #define GRAPH_VERTEX_USES_TIME_PARAMETERS_INPUT
  36. $VertexDescription.Normal: #define FEATURES_GRAPH_VERTEX_NORMAL_OUTPUT
  37. $VertexDescription.Tangent: #define FEATURES_GRAPH_VERTEX_TANGENT_OUTPUT
  38. $VertexDescription.MotionVector: #define FEATURES_GRAPH_VERTEX_MOTION_VECTOR_OUTPUT
  39. $Varyings.positionWS: #define VARYINGS_NEED_POSITION_WS
  40. $Varyings.normalWS: #define VARYINGS_NEED_NORMAL_WS
  41. $Varyings.tangentWS: #define VARYINGS_NEED_TANGENT_WS
  42. $Varyings.texCoord0: #define VARYINGS_NEED_TEXCOORD0
  43. $Varyings.texCoord1: #define VARYINGS_NEED_TEXCOORD1
  44. $Varyings.texCoord2: #define VARYINGS_NEED_TEXCOORD2
  45. $Varyings.texCoord3: #define VARYINGS_NEED_TEXCOORD3
  46. $Varyings.color: #define VARYINGS_NEED_COLOR
  47. $Varyings.elementToWorld0: #define VARYINGS_NEED_ELEMENT_TO_WORLD
  48. $Varyings.worldToElement0: #define VARYINGS_NEED_WORLD_TO_ELEMENT
  49. $Varyings.bitangentWS: #define VARYINGS_NEED_BITANGENT_WS
  50. $Varyings.screenPosition: #define VARYINGS_NEED_SCREENPOSITION
  51. $Varyings.fogFactorAndVertexLight: #define VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
  52. $Varyings.shadowCoord: #define VARYINGS_NEED_SHADOW_COORD
  53. $Varyings.cullFace: #define VARYINGS_NEED_CULLFACE
  54. $Varyings.instanceID: #define VARYINGS_NEED_INSTANCEID
  55. $Varyings.diffuseGIData0: #define VARYINGS_NEED_SIX_WAY_DIFFUSE_GI_DATA
  56. $features.graphVertex: #define FEATURES_GRAPH_VERTEX
  57. $Universal.UseLegacySpriteBlocks: #define UNIVERSAL_USELEGACYSPRITEBLOCKS
  58. $splice(PassInstancing)
  59. $splice(GraphDefines)
  60. // custom interpolator pre-include
  61. $splice(sgci_CustomInterpolatorPreInclude)
  62. // Includes
  63. $splice(PreGraphIncludes)
  64. // --------------------------------------------------
  65. // Structs and Packing
  66. // custom interpolators pre packing
  67. $splice(CustomInterpolatorPrePacking)
  68. $splice(PassStructs)
  69. $splice(InterpolatorPack)
  70. // --------------------------------------------------
  71. // Graph
  72. // Graph Properties
  73. $splice(GraphProperties)
  74. // Graph Includes
  75. $splice(GraphIncludes)
  76. // -- Property used by ScenePickingPass
  77. #ifdef SCENEPICKINGPASS
  78. float4 _SelectionID;
  79. #endif
  80. // -- Properties used by SceneSelectionPass
  81. #ifdef SCENESELECTIONPASS
  82. int _ObjectId;
  83. int _PassValue;
  84. #endif
  85. // Graph Functions
  86. $splice(GraphFunctions)
  87. // Custom interpolators pre vertex
  88. $splice(CustomInterpolatorPreVertex)
  89. // Graph Vertex
  90. $splice(GraphVertex)
  91. // Custom interpolators, pre surface
  92. $splice(CustomInterpolatorPreSurface)
  93. // Graph Pixel
  94. $splice(GraphPixel)
  95. // --------------------------------------------------
  96. // Build Graph Inputs
  97. #ifdef HAVE_VFX_MODIFICATION
  98. #define VFX_SRP_ATTRIBUTES Attributes
  99. #define VFX_SRP_VARYINGS Varyings
  100. #define VFX_SRP_SURFACE_INPUTS SurfaceDescriptionInputs
  101. #endif
  102. $features.graphVFX: $include("VFXConfig.template.hlsl")
  103. $features.graphVertex: $include("BuildVertexDescriptionInputs.template.hlsl")
  104. $features.graphPixel: $include("SharedCode.template.hlsl")
  105. // --------------------------------------------------
  106. // Main
  107. $splice(PostGraphIncludes)
  108. // --------------------------------------------------
  109. // Visual Effect Vertex Invocations
  110. #ifdef HAVE_VFX_MODIFICATION
  111. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/VisualEffectVertex.hlsl"
  112. #endif
  113. ENDHLSL
  114. }