Add request-level clear control for camera rendering

This commit is contained in:
2026-03-27 17:46:47 +08:00
parent cf8e669f75
commit 704d2067ce
6 changed files with 45 additions and 4 deletions

View File

@@ -235,12 +235,15 @@ bool BuiltinForwardPipeline::Render(
? surface.GetClearColorOverride()
: sceneData.cameraData.clearColor;
const float clearValues[4] = { clearColor.r, clearColor.g, clearColor.b, clearColor.a };
for (RHI::RHIResourceView* renderTarget : renderTargets) {
if (renderTarget != nullptr) {
commandList->ClearRenderTarget(renderTarget, clearValues);
if (HasRenderClearFlag(sceneData.cameraData.clearFlags, RenderClearFlags::Color)) {
for (RHI::RHIResourceView* renderTarget : renderTargets) {
if (renderTarget != nullptr) {
commandList->ClearRenderTarget(renderTarget, clearValues);
}
}
}
if (surface.GetDepthAttachment() != nullptr) {
if (surface.GetDepthAttachment() != nullptr &&
HasRenderClearFlag(sceneData.cameraData.clearFlags, RenderClearFlags::Depth)) {
commandList->ClearDepthStencil(surface.GetDepthAttachment(), 1.0f, 0);
}