From 968880bea9cfe11567d100fc538269cba9e2a52b Mon Sep 17 00:00:00 2001 From: Martin Valigursky Date: Fri, 31 Jan 2025 09:39:03 +0000 Subject: [PATCH 1/2] Easier to override render pass used by the CameraFrame --- src/extras/index.js | 1 + src/extras/render-passes/camera-frame.js | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/extras/index.js b/src/extras/index.js index 318f32610f3..a26132c161b 100644 --- a/src/extras/index.js +++ b/src/extras/index.js @@ -22,6 +22,7 @@ export { RenderPassDof } from './render-passes/render-pass-dof.js'; export { RenderPassDownsample } from './render-passes/render-pass-downsample.js'; export { RenderPassUpsample } from './render-passes/render-pass-upsample.js'; export { RenderPassBloom } from './render-passes/render-pass-bloom.js'; +export { RenderPassPrepass } from './render-passes/render-pass-prepass.js'; export { RenderPassSsao } from './render-passes/render-pass-ssao.js'; export { RenderPassTAA } from './render-passes/render-pass-taa.js'; export { CameraFrame } from './render-passes/camera-frame.js'; diff --git a/src/extras/render-passes/camera-frame.js b/src/extras/render-passes/camera-frame.js index a705c386102..953db447333 100644 --- a/src/extras/render-passes/camera-frame.js +++ b/src/extras/render-passes/camera-frame.js @@ -320,7 +320,7 @@ class CameraFrame { Debug.assert(!this.renderPassCamera); const cameraComponent = this.cameraComponent; - this.renderPassCamera = new RenderPassCameraFrame(this.app, cameraComponent, this.options); + this.renderPassCamera = this.createRenderPass(this.app, cameraComponent); cameraComponent.renderPasses = [this.renderPassCamera]; } @@ -342,6 +342,18 @@ class CameraFrame { this.renderPassCamera = null; } + /** + * Creates a render pass for the camera frame. Override this method to utilize a custom render + * pass, typically one that extends {@link RenderPassCameraFrame}. + * + * @param {AppBase} app - The application. + * @param {CameraComponent} cameraComponent - The camera component. + * @returns {RenderPassCameraFrame} - The render pass. + */ + createRenderPass(app, cameraComponent) { + return new RenderPassCameraFrame(app, cameraComponent, this.options); + } + /** * Sets the enabled state of the camera frame. Passing false will release associated resources. * From ce95d1dc86ff1dcecd4b460765728907afff7bc3 Mon Sep 17 00:00:00 2001 From: Martin Valigursky Date: Fri, 31 Jan 2025 09:41:23 +0000 Subject: [PATCH 2/2] simpler --- src/extras/render-passes/camera-frame.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/extras/render-passes/camera-frame.js b/src/extras/render-passes/camera-frame.js index 953db447333..5ff6d69e046 100644 --- a/src/extras/render-passes/camera-frame.js +++ b/src/extras/render-passes/camera-frame.js @@ -319,9 +319,8 @@ class CameraFrame { enable() { Debug.assert(!this.renderPassCamera); - const cameraComponent = this.cameraComponent; - this.renderPassCamera = this.createRenderPass(this.app, cameraComponent); - cameraComponent.renderPasses = [this.renderPassCamera]; + this.renderPassCamera = this.createRenderPass(); + this.cameraComponent.renderPasses = [this.renderPassCamera]; } disable() { @@ -346,12 +345,10 @@ class CameraFrame { * Creates a render pass for the camera frame. Override this method to utilize a custom render * pass, typically one that extends {@link RenderPassCameraFrame}. * - * @param {AppBase} app - The application. - * @param {CameraComponent} cameraComponent - The camera component. * @returns {RenderPassCameraFrame} - The render pass. */ - createRenderPass(app, cameraComponent) { - return new RenderPassCameraFrame(app, cameraComponent, this.options); + createRenderPass() { + return new RenderPassCameraFrame(this.app, this.cameraComponent, this.options); } /**