- Major architectural refactor for performance, extensibility, and feature completeness: resource pooling, pass culling, aliasing, and compilation caching. - Introduces type-safe builder and context APIs, blackboard pattern, and unified resource management. - Adds detailed documentation and cleans up obsolete files and APIs. - Includes (commented) Unity Render Graph source for reference; not compiled, for parity and future extension.
56 lines
1.5 KiB
C#
56 lines
1.5 KiB
C#
namespace Ghost.RenderGraph.Concept;
|
|
|
|
// ===== Pass Data Structures =====
|
|
// These are user-defined data structures that get passed to render functions
|
|
|
|
public sealed class GBufferData : IPassData
|
|
{
|
|
public RenderGraphTextureHandle Albedo;
|
|
public RenderGraphTextureHandle Normal;
|
|
public RenderGraphTextureHandle Depth;
|
|
}
|
|
|
|
public sealed class LightingPassData : IPassData
|
|
{
|
|
public RenderGraphTextureHandle GBufferAlbedo;
|
|
public RenderGraphTextureHandle GBufferNormal;
|
|
public RenderGraphTextureHandle GBufferDepth;
|
|
public RenderGraphTextureHandle OutputLighting;
|
|
}
|
|
|
|
public sealed class SSAOPassData : IPassData
|
|
{
|
|
public RenderGraphTextureHandle GBufferDepth;
|
|
public RenderGraphTextureHandle GBufferNormal;
|
|
public RenderGraphTextureHandle OutputSSAO;
|
|
}
|
|
|
|
public sealed class BloomDownsampleData : IPassData
|
|
{
|
|
public RenderGraphTextureHandle Input;
|
|
public RenderGraphTextureHandle Output;
|
|
}
|
|
|
|
public sealed class TAAPassData : IPassData
|
|
{
|
|
public RenderGraphTextureHandle InputLighting;
|
|
public RenderGraphTextureHandle OutputTAA;
|
|
}
|
|
|
|
public sealed class PostProcessingPassDataV2 : IPassData
|
|
{
|
|
public RenderGraphTextureHandle InputTAA;
|
|
public RenderGraphTextureHandle InputSSAO;
|
|
public RenderGraphTextureHandle InputBloom;
|
|
public RenderGraphTextureHandle OutputBackbuffer;
|
|
}
|
|
|
|
public sealed class ProfilerMarkerData : IPassData
|
|
{
|
|
}
|
|
|
|
public sealed class DebugPassData : IPassData
|
|
{
|
|
public RenderGraphTextureHandle DebugTexture;
|
|
}
|