1.6 KiB
1.6 KiB
BuiltinInfiniteGridPass::Render
命名空间: XCEngine::Rendering::Passes
类型: method
头文件: XCEngine/Rendering/Passes/BuiltinInfiniteGridPass.h
签名
bool Render(
const RenderContext& renderContext,
const RenderSurface& surface,
const InfiniteGridPassData& data);
作用
把当前无限网格效果绘制到 surface 的第一个颜色附件上。
当前实现流程
- 如果
data.valid == false、renderContext无效或后端不是D3D12,直接返回false。 - 调用
EnsureInitialized(renderContext);如果当前shaderPath为空,或配置路径下的 shader 无法加载,也会在这里失败。 - 检查颜色附件和深度附件,要求 grid pass 具备完整的颜色与深度目标。
- 调用 BuildInfiniteGridParameters 生成网格参数,并构建 view-projection 常量。
- 把常量写入 descriptor set。
- 绑定第一个颜色附件和深度附件。
- 以全屏三角形方式执行一次
Draw(3, 1, 0, 0)。
关键语义
- 这条路径不再隐式依赖 engine builtin shader;调用方必须先通过构造函数或 SetShaderPath 提供有效 shader 路径。
- pass 本身不做资源状态切换。
- viewport 与 scissor 总是覆盖整张 surface,不读取
surface.GetRenderArea()。 - 当前只写第一个颜色附件。