refactor: 解耦重构——还清四处架构债(对齐 UE/Unity 分层)
- SceneRenderer:场景→渲染数据翻译层(UE FSceneRenderer / Unity CullingResults
模式),收口相机/灯光/光空间矩阵/双视图剔除,Renderer 只编排
- pass 对象化(Unity ScriptableRenderPass 模式):8 个 pass lambda 拆为
Passes::{Shadow,Forward,Bloom,Tonemap,ImGui,Present},BuildGraph 超级函数消失;
SceneGpu/FullscreenGpu 承接共享装配
- 中性 AssetRef(Core 层):ECS 组件不再依赖 Assets 模块(Unity InstanceID 思路)
- IAssetUploader 接口:AssetManager 不感知 Vulkan 具体类,上传服务由渲染层
VulkanAssetUploader 提供
- Renderer 公共 API 不变(App 层零改动),编译零错误 validation 零警告
This commit is contained in:
@@ -30,13 +30,10 @@ namespace Engine {
|
||||
m_Scene = CreateScope<ECS::Scene>();
|
||||
m_Renderer = CreateScope<Renderer>(*m_Window);
|
||||
|
||||
// 资产层:复用渲染器的 GPU 上下文;
|
||||
// 资产层:上传服务由渲染层提供(IAssetUploader 实现),
|
||||
// 资产层不感知 Vulkan 具体类。
|
||||
// 声明在 Renderer 之后 → 析构先于 Renderer(它引用其子模块)
|
||||
m_Assets = CreateScope<Assets::AssetManager>(
|
||||
m_Renderer->GetDevice(),
|
||||
m_Renderer->GetAllocator(),
|
||||
m_Renderer->GetDescriptorManager(),
|
||||
m_Renderer->GetTextureSetLayout());
|
||||
m_Assets = CreateScope<Assets::AssetManager>(m_Renderer->GetAssetUploader());
|
||||
}
|
||||
|
||||
Application::~Application()
|
||||
|
||||
Reference in New Issue
Block a user