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

WavingGrassBillboard.shader 5.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. // Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)
  2. Shader "Hidden/TerrainEngine/Details/UniversalPipeline/BillboardWavingDoublePass"
  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" = "GrassBillBoard" "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_fragment _ _ADDITIONAL_LIGHT_SHADOWS
  31. #pragma multi_compile_fragment _ _SHADOWS_SOFT _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH
  32. #pragma multi_compile _ LIGHTMAP_SHADOW_MIXING
  33. #pragma multi_compile _ SHADOWS_SHADOWMASK
  34. #pragma multi_compile _ _FORWARD_PLUS
  35. #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
  36. // -------------------------------------
  37. // Unity defined keywords
  38. #pragma multi_compile _ DIRLIGHTMAP_COMBINED
  39. #pragma multi_compile _ LIGHTMAP_ON
  40. #pragma multi_compile_fog
  41. #pragma multi_compile_fragment _ DEBUG_DISPLAY
  42. //--------------------------------------
  43. // GPU Instancing
  44. #pragma multi_compile_instancing
  45. #pragma vertex WavingGrassBillboardVert
  46. #pragma fragment LitPassFragmentGrass
  47. #define _ALPHATEST_ON
  48. #include "Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassInput.hlsl"
  49. #include "Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassPasses.hlsl"
  50. ENDHLSL
  51. }
  52. Pass
  53. {
  54. Name "GBuffer"
  55. Tags
  56. {
  57. "LightMode" = "UniversalGBuffer"
  58. }
  59. HLSLPROGRAM
  60. #pragma target 4.5
  61. // Deferred Rendering Path does not support the OpenGL-based graphics API:
  62. // Desktop OpenGL, OpenGL ES 3.0, WebGL 2.0.
  63. #pragma exclude_renderers gles3 glcore
  64. // -------------------------------------
  65. // Universal Pipeline keywords
  66. #pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
  67. #pragma multi_compile_fragment _ _SHADOWS_SOFT _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH
  68. #pragma multi_compile_fragment _ _RENDER_PASS_ENABLED
  69. #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT
  70. #include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
  71. // -------------------------------------
  72. // Unity defined keywords
  73. #pragma multi_compile _ SHADOWS_SHADOWMASK
  74. #pragma multi_compile _ LIGHTMAP_SHADOW_MIXING
  75. //--------------------------------------
  76. // GPU Instancing
  77. #pragma multi_compile_instancing
  78. #pragma vertex WavingGrassBillboardVert
  79. #pragma fragment LitPassFragmentGrass
  80. #define _ALPHATEST_ON
  81. #define TERRAIN_GBUFFER
  82. #include "Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassInput.hlsl"
  83. #include "Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassPasses.hlsl"
  84. ENDHLSL
  85. }
  86. Pass
  87. {
  88. Name "DepthOnly"
  89. Tags{"LightMode" = "DepthOnly"}
  90. ZWrite On
  91. ColorMask R
  92. Cull Off
  93. HLSLPROGRAM
  94. #pragma target 2.0
  95. #pragma vertex DepthOnlyBillboardVertex
  96. #pragma fragment DepthOnlyFragment
  97. // -------------------------------------
  98. // Material Keywords
  99. #define _ALPHATEST_ON
  100. #pragma shader_feature_local_fragment _GLOSSINESS_FROM_BASE_ALPHA
  101. //--------------------------------------
  102. // GPU Instancing
  103. #pragma multi_compile_instancing
  104. #include "Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassInput.hlsl"
  105. #include "Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassPasses.hlsl"
  106. ENDHLSL
  107. }
  108. Pass
  109. {
  110. Name "DepthNormals"
  111. Tags{"LightMode" = "DepthNormals"}
  112. ZWrite On
  113. Cull Off
  114. HLSLPROGRAM
  115. #pragma target 2.0
  116. #pragma vertex DepthNormalOnlyBillboardVertex
  117. #pragma fragment DepthNormalOnlyFragment
  118. // -------------------------------------
  119. // Material Keywords
  120. #define _ALPHATEST_ON
  121. #pragma shader_feature_local_fragment _GLOSSINESS_FROM_BASE_ALPHA
  122. //--------------------------------------
  123. // GPU Instancing
  124. #pragma multi_compile_instancing
  125. #include "Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassInput.hlsl"
  126. #include "Packages/com.unity.render-pipelines.universal/Shaders/Terrain/WavingGrassDepthNormalsPass.hlsl"
  127. ENDHLSL
  128. }
  129. }
  130. }