StopNaN.shader 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. Shader "Hidden/Universal Render Pipeline/Stop NaN"
  2. {
  3. Properties
  4. {
  5. _MainTex("Source", 2D) = "white" {}
  6. }
  7. HLSLINCLUDE
  8. #pragma exclude_renderers gles
  9. #pragma target 3.5
  10. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  11. #include "Packages/com.unity.render-pipelines.universal/Shaders/PostProcessing/Common.hlsl"
  12. #define NAN_COLOR half3(0.0, 0.0, 0.0)
  13. TEXTURE2D_X(_MainTex);
  14. half4 Frag(Varyings input) : SV_Target
  15. {
  16. UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
  17. half3 color = SAMPLE_TEXTURE2D_X(_MainTex, sampler_PointClamp, UnityStereoTransformScreenSpaceTex(input.uv)).xyz;
  18. if (AnyIsNaN(color) || AnyIsInf(color))
  19. color = NAN_COLOR;
  20. return half4(color, 1.0);
  21. }
  22. ENDHLSL
  23. SubShader
  24. {
  25. Tags { "RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline"}
  26. LOD 100
  27. ZTest Always ZWrite Off Cull Off
  28. Pass
  29. {
  30. Name "Stop NaN"
  31. HLSLPROGRAM
  32. #pragma vertex Vert
  33. #pragma fragment Frag
  34. ENDHLSL
  35. }
  36. }
  37. }