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

ForwardRendererData.cs 6.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. #if UNITY_EDITOR
  2. using UnityEditor;
  3. using UnityEditor.ProjectWindowCallback;
  4. using UnityEditor.Rendering.Universal;
  5. #endif
  6. using System;
  7. namespace UnityEngine.Rendering.Universal
  8. {
  9. /// <summary>
  10. /// Deprecated, kept for backward compatibility with existing ForwardRendererData asset files.
  11. /// Use UniversalRendererData instead.
  12. /// </summary>
  13. [System.Obsolete("ForwardRendererData has been deprecated (UnityUpgradable) -> UniversalRendererData", true)]
  14. [Serializable, ReloadGroup, ExcludeFromPreset]
  15. public class ForwardRendererData : ScriptableRendererData
  16. {
  17. private const string k_ErrorMessage = "ForwardRendererData has been deprecated. Use UniversalRendererData instead";
  18. /// <summary>
  19. /// Class containing shader resources used in URP.
  20. /// </summary>
  21. [Serializable, ReloadGroup]
  22. public sealed class ShaderResources
  23. {
  24. /// <summary>
  25. /// Blit shader.
  26. /// </summary>
  27. [Reload("Shaders/Utils/Blit.shader")]
  28. public Shader blitPS;
  29. /// <summary>
  30. /// Copy depth shader.
  31. /// </summary>
  32. [Reload("Shaders/Utils/CopyDepth.shader")]
  33. public Shader copyDepthPS;
  34. /// <summary>
  35. /// Screen space shadows shader.
  36. /// </summary>
  37. [Obsolete("Obsolete, this feature will be supported by new 'ScreenSpaceShadows' renderer feature", true)]
  38. public Shader screenSpaceShadowPS;
  39. /// <summary>
  40. /// Sampling shader.
  41. /// </summary>
  42. [Reload("Shaders/Utils/Sampling.shader")]
  43. public Shader samplingPS;
  44. /// <summary>
  45. /// Stencil deferred shader.
  46. /// </summary>
  47. [Reload("Shaders/Utils/StencilDeferred.shader")]
  48. public Shader stencilDeferredPS;
  49. /// <summary>
  50. /// Fallback error shader.
  51. /// </summary>
  52. [Reload("Shaders/Utils/FallbackError.shader")]
  53. public Shader fallbackErrorPS;
  54. /// <summary>
  55. /// Fallback loading shader.
  56. /// </summary>
  57. [Reload("Shaders/Utils/FallbackLoading.shader")]
  58. public Shader fallbackLoadingPS;
  59. /// <summary>
  60. /// Material error shader.
  61. /// </summary>
  62. [Obsolete("Use fallbackErrorPS instead", true)]
  63. [Reload("Shaders/Utils/MaterialError.shader")]
  64. public Shader materialErrorPS;
  65. // Core blitter shaders, adapted from HDRP
  66. // TODO: move to core and share with HDRP
  67. [Reload("Shaders/Utils/CoreBlit.shader"), SerializeField]
  68. internal Shader coreBlitPS;
  69. [Reload("Shaders/Utils/CoreBlitColorAndDepth.shader"), SerializeField]
  70. internal Shader coreBlitColorAndDepthPS;
  71. /// <summary>
  72. /// Camera motion vectors shader.
  73. /// </summary>
  74. [Reload("Shaders/CameraMotionVectors.shader")]
  75. public Shader cameraMotionVector;
  76. /// <summary>
  77. /// Object motion vectors shader.
  78. /// </summary>
  79. [Reload("Shaders/ObjectMotionVectors.shader")]
  80. public Shader objectMotionVector;
  81. }
  82. /// <summary>
  83. /// Shader resources used in URP.
  84. /// </summary>
  85. public ShaderResources shaders;
  86. /// <summary>
  87. /// Resources needed for post processing.
  88. /// </summary>
  89. public PostProcessData postProcessData;
  90. #if ENABLE_VR && ENABLE_XR_MODULE
  91. /// <summary>
  92. /// Shader resources needed in URP for XR.
  93. /// </summary>
  94. //[Reload("Runtime/Data/XRSystemData.asset")]
  95. public XRSystemData xrSystemData;
  96. #endif
  97. [SerializeField] LayerMask m_OpaqueLayerMask;
  98. [SerializeField] LayerMask m_TransparentLayerMask;
  99. [SerializeField] StencilStateData m_DefaultStencilState; // This default state is compatible with deferred renderer.
  100. [SerializeField] bool m_ShadowTransparentReceive;
  101. [SerializeField] RenderingMode m_RenderingMode;
  102. [SerializeField] DepthPrimingMode m_DepthPrimingMode; // Default disabled because there are some outstanding issues with Text Mesh rendering.
  103. [SerializeField] bool m_AccurateGbufferNormals;
  104. [SerializeField] bool m_ClusteredRendering;
  105. [SerializeField] TileSize m_TileSize;
  106. /// <inheritdoc/>
  107. protected override ScriptableRenderer Create()
  108. {
  109. Debug.LogWarning($"Forward Renderer Data has been deprecated, {name} will be upgraded to a {nameof(UniversalRendererData)}.");
  110. return null;
  111. }
  112. /// <summary>
  113. /// Use this to configure how to filter opaque objects.
  114. /// </summary>
  115. public LayerMask opaqueLayerMask
  116. {
  117. get { throw new NotSupportedException(k_ErrorMessage); }
  118. set { throw new NotSupportedException(k_ErrorMessage); }
  119. }
  120. /// <summary>
  121. /// Use this to configure how to filter transparent objects.
  122. /// </summary>
  123. public LayerMask transparentLayerMask
  124. {
  125. get { throw new NotSupportedException(k_ErrorMessage); }
  126. set { throw new NotSupportedException(k_ErrorMessage); }
  127. }
  128. /// <summary>
  129. /// The default stencil state settings.
  130. /// </summary>
  131. public StencilStateData defaultStencilState
  132. {
  133. get { throw new NotSupportedException(k_ErrorMessage); }
  134. set { throw new NotSupportedException(k_ErrorMessage); }
  135. }
  136. /// <summary>
  137. /// True if transparent objects receive shadows.
  138. /// </summary>
  139. public bool shadowTransparentReceive
  140. {
  141. get { throw new NotSupportedException(k_ErrorMessage); }
  142. set { throw new NotSupportedException(k_ErrorMessage); }
  143. }
  144. /// <summary>
  145. /// Rendering mode.
  146. /// </summary>
  147. public RenderingMode renderingMode
  148. {
  149. get { throw new NotSupportedException(k_ErrorMessage); }
  150. set { throw new NotSupportedException(k_ErrorMessage); }
  151. }
  152. /// <summary>
  153. /// Use Octahedron normal vector encoding for gbuffer normals.
  154. /// The overhead is negligible from desktop GPUs, while it should be avoided for mobile GPUs.
  155. /// </summary>
  156. public bool accurateGbufferNormals
  157. {
  158. get { throw new NotSupportedException(k_ErrorMessage); }
  159. set { throw new NotSupportedException(k_ErrorMessage); }
  160. }
  161. }
  162. }