PassMesh.template 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. Pass
  2. {
  3. $splice(PassName)
  4. Tags
  5. {
  6. $splice(LightMode)
  7. }
  8. // Render State
  9. $splice(Blending)
  10. $splice(Culling)
  11. $splice(ZTest)
  12. $splice(ZWrite)
  13. $splice(ColorMask)
  14. $splice(Stencil)
  15. HLSLPROGRAM
  16. #pragma vertex vert
  17. #pragma fragment frag
  18. // Debug
  19. $splice(Debug)
  20. // --------------------------------------------------
  21. // Pass
  22. // Pragmas
  23. $splice(PassPragmas)
  24. // Keywords
  25. $splice(PassKeywords)
  26. $splice(GraphKeywords)
  27. // Defines
  28. $SurfaceType.Transparent: #define _SURFACE_TYPE_TRANSPARENT 1
  29. $AlphaClip: #define _AlphaClip 1
  30. $SpecularColor: #define _SPECULAR_COLOR 1
  31. $Normal: #define _NORMALMAP 1
  32. $BlendMode.Add: #define _BLENDMODE_ADD 1
  33. $BlendMode.Premultiply: #define _ALPHAPREMULTIPLY_ON 1
  34. $features.NormalDropOffTS: #define _NORMAL_DROPOFF_TS 1
  35. $features.NormalDropOffOS: #define _NORMAL_DROPOFF_OS 1
  36. $features.NormalDropOffWS: #define _NORMAL_DROPOFF_WS 1
  37. $Attributes.normalOS: #define ATTRIBUTES_NEED_NORMAL
  38. $Attributes.tangentOS: #define ATTRIBUTES_NEED_TANGENT
  39. $Attributes.uv0: #define ATTRIBUTES_NEED_TEXCOORD0
  40. $Attributes.uv1: #define ATTRIBUTES_NEED_TEXCOORD1
  41. $Attributes.uv2: #define ATTRIBUTES_NEED_TEXCOORD2
  42. $Attributes.uv3: #define ATTRIBUTES_NEED_TEXCOORD3
  43. $Attributes.color: #define ATTRIBUTES_NEED_COLOR
  44. $Varyings.positionWS: #define VARYINGS_NEED_POSITION_WS
  45. $Varyings.positionPredisplacementWS: #define VARYINGS_NEED_POSITIONPREDISPLACEMENT_WS
  46. $Varyings.normalWS: #define VARYINGS_NEED_NORMAL_WS
  47. $Varyings.tangentWS: #define VARYINGS_NEED_TANGENT_WS
  48. $Varyings.texCoord0: #define VARYINGS_NEED_TEXCOORD0
  49. $Varyings.texCoord1: #define VARYINGS_NEED_TEXCOORD1
  50. $Varyings.texCoord2: #define VARYINGS_NEED_TEXCOORD2
  51. $Varyings.texCoord3: #define VARYINGS_NEED_TEXCOORD3
  52. $Varyings.color: #define VARYINGS_NEED_COLOR
  53. $Varyings.viewDirectionWS: #define VARYINGS_NEED_VIEWDIRECTION_WS
  54. $Varyings.bitangentWS: #define VARYINGS_NEED_BITANGENT_WS
  55. $Varyings.screenPosition: #define VARYINGS_NEED_SCREENPOSITION
  56. $Varyings.fogFactorAndVertexLight: #define VARYINGS_NEED_FOG_AND_VERTEX_LIGHT
  57. $Varyings.cullFace: #define VARYINGS_NEED_CULLFACE
  58. $features.graphVertex: #define FEATURES_GRAPH_VERTEX
  59. $splice(PassInstancing)
  60. $splice(GraphDefines)
  61. $splice(DotsInstancingVars)
  62. // Includes
  63. $splice(CustomInterpolatorPreInclude)
  64. $splice(PassIncludes)
  65. // --------------------------------------------------
  66. // Graph
  67. // Graph Properties
  68. $splice(GraphProperties)
  69. // Graph Includes
  70. $splice(GraphIncludes)
  71. // -- Property used by ScenePickingPass
  72. #ifdef SCENEPICKINGPASS
  73. float4 _SelectionID;
  74. #endif
  75. // -- Properties used by SceneSelectionPass
  76. #ifdef SCENESELECTIONPASS
  77. int _ObjectId;
  78. int _PassValue;
  79. #endif
  80. // Graph Functions
  81. $splice(GraphFunctions)
  82. $splice(CustomInterpolatorPreVertex)
  83. // Graph Vertex
  84. $splice(GraphVertex)
  85. $splice(CustomInterpolatorPreSurface)
  86. // Graph Pixel
  87. $splice(GraphPixel)
  88. // --------------------------------------------------
  89. // Structs and Packing
  90. $splice(CustomInterpolatorPrePacking)
  91. $buildType(Attributes)
  92. $buildType(Varyings)
  93. // --------------------------------------------------
  94. // Build Graph Inputs
  95. $features.graphVertex: $include("BuildVertexDescriptionInputs.template.hlsl")
  96. $features.graphPixel: $include("BuildSurfaceDescriptionInputs.template.hlsl")
  97. // --------------------------------------------------
  98. // Main
  99. $splice(MainInclude)
  100. ENDHLSL
  101. }