暫無描述
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

DebugReplacement.shader 3.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. Shader "Hidden/Universal Render Pipeline/Debug/DebugReplacement"
  2. {
  3. SubShader
  4. {
  5. Tags{"RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" "IgnoreProjector" = "True"}
  6. Pass
  7. {
  8. Name "Vertex Attributes"
  9. Tags {"LightMode" = "UniversalForward"}
  10. HLSLPROGRAM
  11. #pragma target 2.0
  12. #pragma vertex vert
  13. #pragma fragment frag
  14. #define DEBUG_DISPLAY
  15. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
  16. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging3D.hlsl"
  17. //--------------------------------------
  18. // GPU Instancing
  19. #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
  20. // -------------------------------------
  21. // Includes
  22. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
  23. #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
  24. struct Attributes
  25. {
  26. float4 positionOS : POSITION;
  27. float4 texcoord0 : TEXCOORD0;
  28. float4 texcoord1 : TEXCOORD1;
  29. float4 texcoord2 : TEXCOORD2;
  30. float4 texcoord3 : TEXCOORD3;
  31. float4 color : COLOR;
  32. float4 normal : NORMAL;
  33. float4 tangent : TANGENT;
  34. UNITY_VERTEX_INPUT_INSTANCE_ID
  35. };
  36. struct Varyings
  37. {
  38. float4 positionCS : SV_POSITION;
  39. float4 texcoord0 : TEXCOORD0;
  40. float4 texcoord1 : TEXCOORD1;
  41. float4 texcoord2 : TEXCOORD2;
  42. float4 texcoord3 : TEXCOORD3;
  43. float4 color : COLOR;
  44. float4 normal : NORMAL;
  45. float4 tangent : TANGENT;
  46. };
  47. Varyings vert(Attributes input)
  48. {
  49. Varyings output;
  50. UNITY_SETUP_INSTANCE_ID(input);
  51. output.texcoord0 = input.texcoord0;
  52. output.texcoord1 = input.texcoord1;
  53. output.texcoord2 = input.texcoord2;
  54. output.texcoord3 = input.texcoord3;
  55. output.color = input.color;
  56. output.normal = input.normal;
  57. output.tangent = input.tangent;
  58. output.positionCS = TransformObjectToHClip(input.positionOS.xyz);
  59. return output;
  60. }
  61. half4 frag(Varyings input) : SV_TARGET
  62. {
  63. switch (_DebugVertexAttributeMode)
  64. {
  65. case DEBUGVERTEXATTRIBUTEMODE_TEXCOORD0:
  66. return input.texcoord0;
  67. case DEBUGVERTEXATTRIBUTEMODE_TEXCOORD1:
  68. return input.texcoord1;
  69. case DEBUGVERTEXATTRIBUTEMODE_TEXCOORD2:
  70. return input.texcoord2;
  71. case DEBUGVERTEXATTRIBUTEMODE_TEXCOORD3:
  72. return input.texcoord3;
  73. case DEBUGVERTEXATTRIBUTEMODE_COLOR:
  74. return input.color;
  75. case DEBUGVERTEXATTRIBUTEMODE_TANGENT:
  76. return input.tangent;
  77. case DEBUGVERTEXATTRIBUTEMODE_NORMAL:
  78. return input.normal;
  79. default:
  80. return half4(0, 0, 0, 1);
  81. }
  82. }
  83. ENDHLSL
  84. }
  85. }
  86. }