-
-
Notifications
You must be signed in to change notification settings - Fork 35.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Nodes: Add SSAAPassNode
.
#29106
Nodes: Add SSAAPassNode
.
#29106
Conversation
📦 Bundle sizeFull ESM build, minified and gzipped.
🌳 Bundle size after tree-shakingMinimal build including a renderer, camera, empty scene, and dependencies.
|
I added some commits that should bring support. AutoMRT will not work on
Yes, rendering the same scene multiple times in a single frame seems really expensive... |
I've tried to replace const scenePass = ssaaPass( scene, camera );
scenePass.setMRT( mrt( {
output: output,
normal: transformedNormalView
} ) );
scenePassColor = scenePass.getTextureNode( 'output' );
const scenePassNormal = scenePass.getTextureNode( 'normal' );
const scenePassDepth = scenePass.getTextureNode( 'depth' );
postProcessing.outputNode = scenePassColor; // scenePassNormal and scenePassDepth do not work yet |
Side note: I always find it great when engines or games offer SSAA as an option. In games, you normally can't use this type of anti-aliasing during the release. But after some years of hardware progression it's nice if you can enable SSAA when you revisit a game. In this way you have superior anit-aliasing but without the temporal artifacts known from TRAA. |
Regarding the depth: Is it already possible with the node material to write to Edit: It seems it won't work since the blend does not honor the depth buffer... |
We would have to implement it for MRT as well but I assume it won't work without an update, another possibility would be to store the depth in a third MRT texture. |
Maybe we can leave this for later, I think the priority is related to the beauty output and allow other MRT outputs, we already have great progress here. |
Agreed! |
Related issue: -
Description
This ports
SSAARenderPass
toWebGPURenderer
.SSAAPassNode
does not yet support MRT since I'm not sure how to proceed.I guess it's expected to supersample not just beauty but all other attachments as well. However, I'm not sure how to do the accumulation for additional outputs and the depth. The accumulation itself is just a simple copy with an additively blended material (see code in
setup()
). But I did not figure out so far how to apply it to a MRT configuration.We need this bit at a later point for TRAA as well so it would be beneficial to already find a solution for
SSAAPassNode
.