Skip to content
Snippets Groups Projects
Commit ab4d509e authored by Alexander Rose's avatar Alexander Rose
Browse files

fix rendering volumes

- when wboit is switched off and postprocessing is enabled
parent 2d34c2a4
No related branches found
No related tags found
No related merge requests found
...@@ -7,6 +7,7 @@ Note that since we don't clearly distinguish between a public and private interf ...@@ -7,6 +7,7 @@ Note that since we don't clearly distinguish between a public and private interf
## [Unreleased] ## [Unreleased]
- Fix ``Scene.clear`` not clearing primitives & volumes arrays (@JonStargaryen) - Fix ``Scene.clear`` not clearing primitives & volumes arrays (@JonStargaryen)
- Fix rendering volumes when wboit is switched off and postprocessing is enabled
## [v3.8.2] - 2022-05-22 ## [v3.8.2] - 2022-05-22
......
...@@ -143,8 +143,12 @@ export class DrawPass { ...@@ -143,8 +143,12 @@ export class DrawPass {
// render transparent primitives and volumes // render transparent primitives and volumes
if (scene.opacityAverage < 1 || scene.volumes.renderables.length > 0) { if (scene.opacityAverage < 1 || scene.volumes.renderables.length > 0) {
this.wboit.bind(); this.wboit.bind();
if (scene.opacityAverage < 1) {
renderer.renderWboitTransparent(scene.primitives, camera, this.depthTextureOpaque); renderer.renderWboitTransparent(scene.primitives, camera, this.depthTextureOpaque);
}
if (scene.volumes.renderables.length > 0) {
renderer.renderWboitTransparent(scene.volumes, camera, this.depthTextureOpaque); renderer.renderWboitTransparent(scene.volumes, camera, this.depthTextureOpaque);
}
// evaluate wboit // evaluate wboit
if (PostprocessingPass.isEnabled(postprocessingProps)) { if (PostprocessingPass.isEnabled(postprocessingProps)) {
...@@ -203,7 +207,26 @@ export class DrawPass { ...@@ -203,7 +207,26 @@ export class DrawPass {
} }
} }
if (scene.volumes.renderables.length > 0) {
const target = PostprocessingPass.isEnabled(postprocessingProps)
? this.postprocessing.target : this.colorTarget;
if (!this.packedDepth) {
this.depthTextureOpaque.detachFramebuffer(target.framebuffer, 'depth');
} else {
this.colorTarget.depthRenderbuffer?.detachFramebuffer(target.framebuffer);
}
target.bind();
renderer.renderBlendedVolume(scene.volumes, camera, this.depthTextureOpaque); renderer.renderBlendedVolume(scene.volumes, camera, this.depthTextureOpaque);
if (!this.packedDepth) {
this.depthTextureOpaque.attachFramebuffer(target.framebuffer, 'depth');
} else {
this.colorTarget.depthRenderbuffer?.attachFramebuffer(target.framebuffer);
}
target.bind();
}
} }
renderer.renderBlendedTransparent(scene.primitives, camera, null); renderer.renderBlendedTransparent(scene.primitives, camera, null);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment