暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

WavingGrass.shader 6.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. // Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)
  2. Shader "Hidden/TerrainEngine/Details/UniversalPipeline/WavingDoublePass"
  3. {
  4. Properties
  5. {
  6. _WavingTint ("Fade Color", Color) = (.7,.6,.5, 0)
  7. _MainTex ("Base (RGB) Alpha (A)", 2D) = "white" {}
  8. _WaveAndDistance ("Wave and distance", Vector) = (12, 3.6, 1, 1)
  9. _Cutoff ("Cutoff", float) = 0.5
  10. }
  11. SubShader
  12. {
  13. Tags {"Queue" = "Geometry+200" "RenderType" = "Grass" "IgnoreProjector" = "True" "RenderPipeline" = "UniversalPipeline" "UniversalMaterialType" = "SimpleLit" }//"DisableBatching"="True"
  14. Cull Off
  15. LOD 200
  16. Pass
  17. {
  18. Name "ForwardLit"
  19. Tags
  20. {
  21. "LightMode" = "UniversalForward"
  22. }
  23. AlphaToMask On
  24. HLSLPROGRAM
  25. #pragma target 2.0
  26. // -------------------------------------
  27. // Universal Pipeline keywords
  28. #pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
  29. #pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS
  30. #pragma multi_compile _ LIGHTMAP_SHADOW_MIXING
  31. #pragma multi_compile _ SHADOWS_SHADOWMASK
  32. #pragma multi_compile _ _LIGHT_LAYERS
  33. #pragma multi_compile _ _FORWARD_PLUS
  34. #pragma multi_compile _ EVALUATE_SH_MIXED EVALUATE_SH_VERTEX
  35. #pragma multi_compile_fragment _ _ADDITIONAL_LIGHT_SHADOWS
  36. #pragma multi_compile_fragment _ _SHADOWS_SOFT _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH
  37. #pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION
  38. #pragma multi_compile_fragment _ _LIGHT_COOKIES
  39. #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
  40. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl"
  41. // -------------------------------------
  42. // Unity defined keywords
  43. #pragma multi_compile _ DIRLIGHTMAP_COMBINED
  44. #pragma multi_compile _ LIGHTMAP_ON
  45. #pragma multi_compile_fog
  46. #pragma multi_compile_fragment _ DEBUG_DISPLAY
  47. //--------------------------------------
  48. // GPU Instancing
  49. #pragma multi_compile_instancing
  50. #pragma instancing_options renderinglayer
  51. #pragma vertex WavingGrassVert
  52. #pragma fragment LitPassFragmentGrass
  53. #define _ALPHATEST_ON
  54. #include "Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassInput.hlsl"
  55. #include "Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassPasses.hlsl"
  56. ENDHLSL
  57. }
  58. Pass
  59. {
  60. Name "GBuffer"
  61. Tags
  62. {
  63. "LightMode" = "UniversalGBuffer"
  64. }
  65. HLSLPROGRAM
  66. #pragma target 4.5
  67. // Deferred Rendering Path does not support the OpenGL-based graphics API:
  68. // Desktop OpenGL, OpenGL ES 3.0, WebGL 2.0.
  69. #pragma exclude_renderers gles3 glcore
  70. // -------------------------------------
  71. // Universal Pipeline keywords
  72. #pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
  73. #pragma multi_compile_fragment _ _SHADOWS_SOFT _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH
  74. #pragma multi_compile_fragment _ _LIGHT_COOKIES
  75. #pragma multi_compile_fragment _ _RENDER_PASS_ENABLED
  76. #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT
  77. #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
  78. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl"
  79. // -------------------------------------
  80. // Unity defined keywords
  81. #pragma multi_compile _ LIGHTMAP_ON
  82. #pragma multi_compile _ SHADOWS_SHADOWMASK
  83. #pragma multi_compile _ DIRLIGHTMAP_COMBINED
  84. #pragma multi_compile _ LIGHTMAP_SHADOW_MIXING
  85. //--------------------------------------
  86. // GPU Instancing
  87. #pragma multi_compile_instancing
  88. #pragma instancing_options renderinglayer
  89. #pragma vertex WavingGrassVert
  90. #pragma fragment LitPassFragmentGrass
  91. #define _ALPHATEST_ON
  92. #define TERRAIN_GBUFFER
  93. #include "Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassInput.hlsl"
  94. #include "Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassPasses.hlsl"
  95. ENDHLSL
  96. }
  97. Pass
  98. {
  99. Name "DepthOnly"
  100. Tags{"LightMode" = "DepthOnly"}
  101. ZWrite On
  102. ColorMask R
  103. Cull Off
  104. HLSLPROGRAM
  105. #pragma target 2.0
  106. #pragma vertex DepthOnlyVertex
  107. #pragma fragment DepthOnlyFragment
  108. // -------------------------------------
  109. // Material Keywords
  110. #define _ALPHATEST_ON
  111. #pragma shader_feature_local_fragment _GLOSSINESS_FROM_BASE_ALPHA
  112. //--------------------------------------
  113. // GPU Instancing
  114. #pragma multi_compile_instancing
  115. #include "Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassInput.hlsl"
  116. #include "Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassPasses.hlsl"
  117. ENDHLSL
  118. }
  119. // This pass is used when drawing to a _CameraNormalsTexture texture with the forward renderer or the depthNormal prepass with the deferred renderer.
  120. Pass
  121. {
  122. Name "DepthNormalsOnly"
  123. Tags{"LightMode" = "DepthNormalsOnly"}
  124. ZWrite On
  125. Cull Off
  126. HLSLPROGRAM
  127. #pragma target 2.0
  128. #pragma vertex DepthNormalOnlyVertex
  129. #pragma fragment DepthNormalOnlyFragment
  130. // -------------------------------------
  131. // Material Keywords
  132. #define _ALPHATEST_ON
  133. #pragma shader_feature_local_fragment _GLOSSINESS_FROM_BASE_ALPHA
  134. // -------------------------------------
  135. // Unity defined keywords
  136. #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT // forward-only variant
  137. //--------------------------------------
  138. // GPU Instancing
  139. #pragma multi_compile_instancing
  140. #include "Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassInput.hlsl"
  141. #include "Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassDepthNormalsPass.hlsl"
  142. ENDHLSL
  143. }
  144. }
  145. }