Нет описания
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

CustomTextureSubShader.template 6.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. Pass
  2. {
  3. $splice(PassName)
  4. Tags
  5. {
  6. $splice(LightMode)
  7. }
  8. // Debug
  9. $splice(Debug)
  10. // --------------------------------------------------
  11. // Pass
  12. Lighting Off
  13. Blend One Zero
  14. HLSLPROGRAM
  15. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
  16. #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
  17. #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/CustomRenderTexture/CustomTexture.hlsl"
  18. #include "Packages/com.unity.shadergraph/Editor/Generation/Targets/CustomRenderTexture/CustomTextureGraph.hlsl"
  19. #include "Packages/com.unity.shadergraph/ShaderGraphLibrary/Functions.hlsl"
  20. #pragma vertex CustomRenderTextureVertexShader
  21. #pragma fragment frag
  22. #pragma target 3.0
  23. // Pragmas
  24. $splice(PassPragmas)
  25. // Keywords
  26. $splice(PassKeywords)
  27. $splice(GraphKeywords)
  28. struct SurfaceDescriptionInputs
  29. {
  30. // update input values
  31. float4 uv0;
  32. float4 uv1;
  33. uint primitiveID;
  34. float3 direction;
  35. // ShaderGraph accessors:
  36. float3 WorldSpaceViewDirection;
  37. float3 ObjectSpaceViewDirection;
  38. float3 ObjectSpacePosition;
  39. float3 TimeParameters;
  40. float3 WorldSpaceNormal;
  41. float3 ObjectSpaceNormal;
  42. float2 NDCPosition;
  43. float4 ScreenPosition;
  44. };
  45. SurfaceDescriptionInputs ConvertV2FToSurfaceInputs( v2f_customrendertexture IN )
  46. {
  47. SurfaceDescriptionInputs o;
  48. o.uv0 = float4(IN.localTexcoord, 0);
  49. o.uv1 = float4(IN.globalTexcoord, 0);
  50. o.primitiveID = IN.primitiveID;
  51. o.direction = normalize(IN.direction);
  52. // other space of view direction are not supported
  53. $SurfaceDescriptionInputs.WorldSpaceViewDirection: o.WorldSpaceViewDirection = o.direction;
  54. $SurfaceDescriptionInputs.ObjectSpaceViewDirection: o.ObjectSpaceViewDirection = o.direction;
  55. $SurfaceDescriptionInputs.ObjectSpacePosition: o.ObjectSpacePosition = o.direction;
  56. $SurfaceDescriptionInputs.TimeParameters: o.TimeParameters = float3(_Time.y, _SinTime.x, _CosTime.y);
  57. $SurfaceDescriptionInputs.WorldSpaceNormal: o.WorldSpaceNormal = o.direction;
  58. $SurfaceDescriptionInputs.ObjectSpaceNormal o.ObjectSpaceNormal = o.direction;
  59. $SurfaceDescriptionInputs.NDCPosition: o.NDCPosition = o.uv0.xy;
  60. $SurfaceDescriptionInputs.ScreenPosition: o.ScreenPosition = float4(o.uv0.xy, 0, 1);
  61. // Unsupported properties:
  62. $SurfaceDescriptionInputs.WorldSpaceBiTangent: #error 'WorldSpaceBiTangent' is not available in Custom Render Textures.
  63. $SurfaceDescriptionInputs.ViewSpaceNormal: #error 'ViewSpaceNormal' is not available in Custom Render Textures.
  64. $SurfaceDescriptionInputs.TangentSpaceNormal: #error 'TangentSpaceNormal' is not available in Custom Render Textures.
  65. $SurfaceDescriptionInputs.WorldSpaceTangent: #error 'WorldSpaceTangent' is not available in Custom Render Textures.
  66. $SurfaceDescriptionInputs.WorldSpaceBiTangent: #error 'WorldSpaceBiTangent' is not available in Custom Render Textures.
  67. $SurfaceDescriptionInputs.ObjectSpaceTangent: #error 'ObjectSpaceTangent' is not available in Custom Render Textures.
  68. $SurfaceDescriptionInputs.ViewSpaceTangent: #error 'ViewSpaceTangent' is not available in Custom Render Textures.
  69. $SurfaceDescriptionInputs.TangentSpaceTangent: #error 'TangentSpaceTangent' is not available in Custom Render Textures.
  70. $SurfaceDescriptionInputs.ObjectSpaceBiTangent: #error 'ObjectSpaceBiTangent' is not available in Custom Render Textures.
  71. $SurfaceDescriptionInputs.ViewSpaceBiTangent: #error 'ViewSpaceBiTangent' is not available in Custom Render Textures.
  72. $SurfaceDescriptionInputs.TangentSpaceBiTangent: #error 'TangentSpaceBiTangent' is not available in Custom Render Textures.
  73. $SurfaceDescriptionInputs.ViewSpaceViewDirection: #error 'ViewSpaceViewDirection' is not available in Custom Render Textures.
  74. $SurfaceDescriptionInputs.TangentSpaceViewDirection: #error 'TangentSpaceViewDirection' is not available in Custom Render Textures.
  75. $SurfaceDescriptionInputs.ViewSpacePosition: #error ViewSpacePosition'' is not available in Custom Render Textures.
  76. $SurfaceDescriptionInputs.TangentSpacePosition: #error 'TangentSpacePosition' is not available in Custom Render Textures.
  77. $SurfaceDescriptionInputs.WorldSpacePositionPredisplacement: #error 'WorldSpacePositionPredisplacement' is not available in Custom Render Textures.
  78. $SurfaceDescriptionInputs.ObjectSpacePositionPredisplacement: #error 'ObjectSpacePositionPredisplacement' is not available in Custom Render Textures.
  79. $SurfaceDescriptionInputs.ViewSpacePositionPredisplacement: #error 'ViewSpacePositionPredisplacement' is not available in Custom Render Textures.
  80. $SurfaceDescriptionInputs.TangentSpacePositionPredisplacement: #error 'TangentSpacePositionPredisplacement' is not available in Custom Render Textures.
  81. $SurfaceDescriptionInputs.AbsoluteWorldSpacePositionPredisplacement: #error 'AbsoluteWorldSpacePositionPredisplacement' is not available in Custom Render Textures.
  82. $SurfaceDescriptionInputs.uv2: #error 'uv2' is not available in Custom Render Textures.
  83. $SurfaceDescriptionInputs.uv3: #error 'uv3' is not available in Custom Render Textures.
  84. $SurfaceDescriptionInputs.VertexColor: #error 'VertexColor' is not available in Custom Render Textures.
  85. // We can't fake the positions because we can't differentiate Cube and 2D custom render textures
  86. $SurfaceDescriptionInputs.WorldSpacePosition: #error 'WorldSpacePosition' is not available in Custom Render Textures.
  87. $SurfaceDescriptionInputs.ObjectSpacePosition: #error 'ObjectSpacePosition' is not available in Custom Render Textures.
  88. $SurfaceDescriptionInputs.AbsoluteWorldSpacePosition: #error 'AbsoluteWorldSpacePosition' is not available in Custom Render Textures.
  89. return o;
  90. }
  91. // --------------------------------------------------
  92. // Graph
  93. // Graph Properties
  94. $splice(GraphProperties)
  95. // Graph Includes
  96. $splice(GraphIncludes)
  97. // Graph Functions
  98. $splice(GraphFunctions)
  99. // Graph Pixel
  100. $splice(GraphPixel)
  101. float4 frag(v2f_customrendertexture IN) : SV_Target
  102. {
  103. SurfaceDescriptionInputs surfaceInput = ConvertV2FToSurfaceInputs(IN);
  104. SurfaceDescription surface = SurfaceDescriptionFunction(surfaceInput);
  105. return float4(surface.BaseColor, surface.Alpha);
  106. }
  107. ENDHLSL
  108. }