GhostEngine Render Graph: major refactor & Unity RG ref
- 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.
This commit is contained in:
@@ -1,14 +1,16 @@
|
||||
namespace Ghost.RenderGraph.Concept;
|
||||
|
||||
// Pass data structure for GBuffer outputs
|
||||
public class GBufferData
|
||||
// ===== 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 class LightingPassData
|
||||
public sealed class LightingPassData : IPassData
|
||||
{
|
||||
public RenderGraphTextureHandle GBufferAlbedo;
|
||||
public RenderGraphTextureHandle GBufferNormal;
|
||||
@@ -16,43 +18,38 @@ public class LightingPassData
|
||||
public RenderGraphTextureHandle OutputLighting;
|
||||
}
|
||||
|
||||
public class SSAOPassData
|
||||
public sealed class SSAOPassData : IPassData
|
||||
{
|
||||
public RenderGraphTextureHandle GBufferDepth;
|
||||
public RenderGraphTextureHandle GBufferNormal;
|
||||
public RenderGraphTextureHandle OutputSSAO;
|
||||
}
|
||||
|
||||
public class TAAPassData
|
||||
{
|
||||
public RenderGraphTextureHandle InputLighting;
|
||||
public RenderGraphTextureHandle OutputTAA;
|
||||
}
|
||||
|
||||
public class PostProcessingPassData
|
||||
{
|
||||
public RenderGraphTextureHandle InputTAA;
|
||||
public RenderGraphTextureHandle InputSSAO;
|
||||
public RenderGraphTextureHandle OutputBackbuffer;
|
||||
}
|
||||
|
||||
public class DebugPassData
|
||||
{
|
||||
public RenderGraphTextureHandle DebugTexture;
|
||||
}
|
||||
|
||||
public class ProfilerMarkerData { }
|
||||
|
||||
public class BloomDownsampleData
|
||||
public sealed class BloomDownsampleData : IPassData
|
||||
{
|
||||
public RenderGraphTextureHandle Input;
|
||||
public RenderGraphTextureHandle Output;
|
||||
}
|
||||
|
||||
public class PostProcessingPassDataV2
|
||||
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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user