SSR.shader 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. Shader "Hidden/Kronnect/SSR_URP" {
  2. Properties {
  3. _BumpMap("Normal Map", 2D) = "bump" {}
  4. _SmoothnessMap("Smoothness Map", 2D) = "white" {}
  5. _Color("", Color) = (1,1,1)
  6. _NoiseTex("", any) = "" {}
  7. _SSRSettings("", Vector) = (1,1,1,1)
  8. _SSRSettings2("", Vector) = (1,1,1,1)
  9. }
  10. HLSLINCLUDE
  11. #pragma target 3.0
  12. ENDHLSL
  13. Subshader {
  14. Tags { "RenderType" = "Transparent" "RenderPipeline" = "UniversalPipeline" "DisableBatching"="True" "ForceNoShadowCasting"="True" }
  15. HLSLINCLUDE
  16. #pragma target 3.0
  17. #pragma prefer_hlslcc gles
  18. #pragma exclude_renderers d3d11_9x
  19. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
  20. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Filtering.hlsl"
  21. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  22. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
  23. #include "Packages/com.unity.render-pipelines.universal/Shaders/PostProcessing/Common.hlsl"
  24. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareDepthTexture.hlsl"
  25. #include "SSR_Common.hlsl"
  26. ENDHLSL
  27. Pass { // 0: Copy exact
  28. ZWrite Off ZTest Always Cull Off
  29. HLSLPROGRAM
  30. #pragma vertex VertSSR
  31. #pragma fragment FragCopyExact
  32. #include "SSR_Blends.hlsl"
  33. ENDHLSL
  34. }
  35. Pass { // 1: Surface reflection
  36. HLSLPROGRAM
  37. #pragma vertex VertSSRSurf
  38. #pragma fragment FragSSRSurf
  39. #pragma multi_compile_local _ SSR_NORMALMAP
  40. #pragma multi_compile_local _ SSR_SMOOTHNESSMAP
  41. #pragma multi_compile_local _ SSR_JITTER
  42. #pragma multi_compile_local _ SSR_THICKNESS_FINE
  43. #include "SSR_Surface_Pass.hlsl"
  44. ENDHLSL
  45. }
  46. Pass { // 2 Resolve
  47. ZWrite Off ZTest Always Cull Off
  48. HLSLPROGRAM
  49. #pragma vertex VertSSR
  50. #pragma fragment FragResolve
  51. #include "SSR_Solve.hlsl"
  52. ENDHLSL
  53. }
  54. Pass { // 3 Blur horizontally
  55. ZWrite Off ZTest Always Cull Off
  56. HLSLPROGRAM
  57. #pragma vertex VertBlur
  58. #pragma fragment FragBlur
  59. #pragma multi_compile_local _ SSR_DENOISE
  60. #define SSR_BLUR_HORIZ
  61. #include "SSR_Blur.hlsl"
  62. ENDHLSL
  63. }
  64. Pass { // 4 Blur vertically
  65. ZWrite Off ZTest Always Cull Off
  66. HLSLPROGRAM
  67. #pragma vertex VertBlur
  68. #pragma fragment FragBlur
  69. #pragma multi_compile_local _ SSR_DENOISE
  70. #include "SSR_Blur.hlsl"
  71. ENDHLSL
  72. }
  73. Pass { // 5 Debug
  74. ZWrite Off ZTest Always Cull Off
  75. Blend One Zero
  76. HLSLPROGRAM
  77. #pragma vertex VertSSR
  78. #pragma fragment FragCopyExact
  79. #include "SSR_Blends.hlsl"
  80. ENDHLSL
  81. }
  82. Pass { // 6 Combine
  83. ZWrite Off ZTest Always Cull Off
  84. Blend One One // precomputed alpha in Resolve pass
  85. HLSLPROGRAM
  86. #pragma vertex VertSSR
  87. #pragma fragment FragCombine
  88. #include "SSR_Blends.hlsl"
  89. ENDHLSL
  90. }
  91. Pass { // 7 Combine with compare
  92. ZWrite Off ZTest Always Cull Off
  93. Blend One One // precomputed alpha in Resolve pass
  94. HLSLPROGRAM
  95. #pragma vertex VertSSR
  96. #pragma fragment FragCombineWithCompare
  97. #include "SSR_Blends.hlsl"
  98. ENDHLSL
  99. }
  100. Pass { // 8 Deferred pass
  101. ZWrite Off ZTest Always Cull Off
  102. HLSLPROGRAM
  103. #pragma vertex VertSSR
  104. #pragma fragment FragSSR
  105. #pragma multi_compile_local _ SSR_JITTER
  106. #pragma multi_compile_local _ SSR_THICKNESS_FINE
  107. #pragma multi_compile _ _GBUFFER_NORMALS_OCT
  108. #include "SSR_GBuf_Pass.hlsl"
  109. ENDHLSL
  110. }
  111. Pass { // 9: Copy with bilinear filter
  112. ZWrite Off ZTest Always Cull Off
  113. HLSLPROGRAM
  114. #pragma vertex VertSSR
  115. #pragma fragment FragCopy
  116. #include "SSR_Blends.hlsl"
  117. ENDHLSL
  118. }
  119. }
  120. FallBack Off
  121. }