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:
2026-01-11 23:43:17 +09:00
parent 87e315a588
commit 1fc9df1812
30 changed files with 7536 additions and 1545 deletions

View File

@@ -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;
}