暫無描述
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.

RenderGraphDefaultResources.cs 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using UnityEngine.Scripting.APIUpdating;
  2. namespace UnityEngine.Rendering.RenderGraphModule
  3. {
  4. /// <summary>
  5. /// Helper class allowing access to default resources (black or white texture, etc.) during render passes.
  6. /// </summary>
  7. [MovedFrom(true, "UnityEngine.Experimental.Rendering.RenderGraphModule", "UnityEngine.Rendering.RenderGraphModule")]
  8. public class RenderGraphDefaultResources
  9. {
  10. // We need to keep around a RTHandle version of default regular 2D textures since RenderGraph API is all RTHandle.
  11. RTHandle m_BlackTexture2D;
  12. RTHandle m_WhiteTexture2D;
  13. RTHandle m_ShadowTexture2D;
  14. /// <summary>Default black 2D texture.</summary>
  15. public TextureHandle blackTexture { get; private set; }
  16. /// <summary>Default white 2D texture.</summary>
  17. public TextureHandle whiteTexture { get; private set; }
  18. /// <summary>Default clear color XR 2D texture.</summary>
  19. public TextureHandle clearTextureXR { get; private set; }
  20. /// <summary>Default magenta XR 2D texture.</summary>
  21. public TextureHandle magentaTextureXR { get; private set; }
  22. /// <summary>Default black XR 2D texture.</summary>
  23. public TextureHandle blackTextureXR { get; private set; }
  24. /// <summary>Default black XR 2D Array texture.</summary>
  25. public TextureHandle blackTextureArrayXR { get; private set; }
  26. /// <summary>Default black (UInt) XR 2D texture.</summary>
  27. public TextureHandle blackUIntTextureXR { get; private set; }
  28. /// <summary>Default black XR 3D texture.</summary>
  29. public TextureHandle blackTexture3DXR { get; private set; }
  30. /// <summary>Default white XR 2D texture.</summary>
  31. public TextureHandle whiteTextureXR { get; private set; }
  32. /// <summary>Default 1x1 shadow texture.</summary>
  33. public TextureHandle defaultShadowTexture { get; private set; }
  34. internal RenderGraphDefaultResources()
  35. {
  36. m_BlackTexture2D = RTHandles.Alloc(Texture2D.blackTexture);
  37. m_WhiteTexture2D = RTHandles.Alloc(Texture2D.whiteTexture);
  38. m_ShadowTexture2D = RTHandles.Alloc(1, 1, depthBufferBits: DepthBits.Depth32, isShadowMap: true, name: "DefaultShadowTexture");
  39. }
  40. internal void Cleanup()
  41. {
  42. m_BlackTexture2D.Release();
  43. m_WhiteTexture2D.Release();
  44. m_ShadowTexture2D.Release();
  45. }
  46. internal void InitializeForRendering(RenderGraph renderGraph)
  47. {
  48. blackTexture = renderGraph.ImportTexture(m_BlackTexture2D, true);
  49. whiteTexture = renderGraph.ImportTexture(m_WhiteTexture2D, true);
  50. defaultShadowTexture = renderGraph.ImportTexture(m_ShadowTexture2D, true);
  51. clearTextureXR = renderGraph.ImportTexture(TextureXR.GetClearTexture(), true);
  52. magentaTextureXR = renderGraph.ImportTexture(TextureXR.GetMagentaTexture(), true);
  53. blackTextureXR = renderGraph.ImportTexture(TextureXR.GetBlackTexture(), true);
  54. blackTextureArrayXR = renderGraph.ImportTexture(TextureXR.GetBlackTextureArray(), true);
  55. blackUIntTextureXR = renderGraph.ImportTexture(TextureXR.GetBlackUIntTexture(), true);
  56. blackTexture3DXR = renderGraph.ImportTexture(TextureXR.GetBlackTexture3D(), true);
  57. whiteTextureXR = renderGraph.ImportTexture(TextureXR.GetWhiteTexture(), true);
  58. }
  59. }
  60. }