Skip to content

Conversation

@RenaudRohlinger
Copy link
Collaborator

Implemented a temporal node that can be use in the postprocessing pipeline. I took the opportunity to create a new gpu postprocessing demo. It's called AfterImageNode to be aligned with the legacy name AfterimagePass.

Example on how to use it with the afterImage method:

postProcessing = new PostProcessing( renderer );

const scenePass = pass( scene, camera );
const scenePassColor = scenePass.getTextureNode();

combinedPass = scenePassColor;
combinedPass = combinedPass.afterImage( params.damp );

postProcessing.outputNode = combinedPass;

Demo:
https://raw.githack.com/renaudrohlinger/three.js/node-temporal/examples/webgpu_postprocessing_afterimage.html
image

@Mugen87
Copy link
Collaborator

Mugen87 commented Dec 27, 2023

It's called AfterImageNode to be aligned with the legacy name AfterimagePass.

This is a good policy since it allows to offer replacement nodes for existing pass classes.

@sunag sunag merged commit e852478 into mrdoob:dev Dec 27, 2023
@Methuselah96 Methuselah96 mentioned this pull request Jan 15, 2024
45 tasks
AdaRoseCannon pushed a commit to AdaRoseCannon/three.js that referenced this pull request Jan 15, 2024
…mrdoob#27451)

* init afterimage node

* init value

* cleanup

---------
export { default as ViewportDepthTextureNode, viewportDepthTexture } from './display/ViewportDepthTextureNode.js';
export { default as ViewportDepthNode, viewZToOrthographicDepth, orthographicDepthToViewZ, viewZToPerspectiveDepth, perspectiveDepthToViewZ, depth, depthTexture, depthPixel } from './display/ViewportDepthNode.js';
export { default as GaussianBlurNode, gaussianBlur } from './display/GaussianBlurNode.js';
export { default as AfterImageNode, afterImage } from './display/AfterImageNode.js';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sunag Maybe we can create a new directory for postprocessing nodes (GaussianBlur, AfterImage), like postprocessing/?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting, filters seem to sound better to me, I don't think they should be for exclusive use in post-processing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants