From 4f833fb856df2dbc637f33ce681f6c3da225fb02 Mon Sep 17 00:00:00 2001 From: zhuxudong Date: Thu, 13 Feb 2025 17:59:36 +0800 Subject: [PATCH] fix: add scene/camera shaderData in blitter (#2558) --- packages/core/src/RenderPipeline/Blitter.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/core/src/RenderPipeline/Blitter.ts b/packages/core/src/RenderPipeline/Blitter.ts index 96cf48255..41d74ca30 100644 --- a/packages/core/src/RenderPipeline/Blitter.ts +++ b/packages/core/src/RenderPipeline/Blitter.ts @@ -48,6 +48,7 @@ export class Blitter { const blitMaterial = material || basicResources.blitMaterial; const rhi = engine._hardwareRenderer; const context = engine._renderContext; + const camera = context.camera; // We not use projection matrix when blit, but we must modify flipProjection to make front face correct context.flipProjection = !!destination; @@ -66,7 +67,7 @@ export class Blitter { const compileMacros = Shader._compileMacros; ShaderMacroCollection.unionCollection( - context.camera._globalShaderMacro, + camera._globalShaderMacro, blitMaterial.shaderData._macroCollection, compileMacros ); @@ -74,6 +75,8 @@ export class Blitter { program.bind(); program.groupingOtherUniformBlock(); + program.uploadAll(program.sceneUniformBlock, camera.scene.shaderData); + program.uploadAll(program.cameraUniformBlock, camera.shaderData); program.uploadAll(program.rendererUniformBlock, rendererShaderData); program.uploadAll(program.materialUniformBlock, blitMaterial.shaderData); program.uploadUnGroupTextures();