From c8dc325db72c1ad1cf567bfab77ea749dd12cd20 Mon Sep 17 00:00:00 2001 From: Mugen87 Date: Tue, 16 Jul 2024 11:12:01 +0200 Subject: [PATCH] DenoiseNode: Retain unprocessed input values. --- src/nodes/display/DenoiseNode.js | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/nodes/display/DenoiseNode.js b/src/nodes/display/DenoiseNode.js index 432c2238492418..be744ae1deb76d 100644 --- a/src/nodes/display/DenoiseNode.js +++ b/src/nodes/display/DenoiseNode.js @@ -84,15 +84,19 @@ class DenoiseNode extends TempNode { } ); - const denoise = tslFn( () => { + const denoise = tslFn( ( [ uvNode ] ) => { const depth = sampleDepth( uvNode ); const viewNormal = sampleNormal( uvNode ).rgb.normalize(); - depth.greaterThanEqual( 1.0 ).discard(); - dot( viewNormal, viewNormal ).equal( 0.0 ).discard(); - const texel = sampleTexture( uvNode ); + + If( depth.greaterThanEqual( 1.0 ).or( dot( viewNormal, viewNormal ).equal( 0.0 ) ), () => { + + return texel; + + } ); + const center = vec3( texel.rgb ); const viewPosition = getViewPosition( uvNode, depth ); @@ -132,10 +136,21 @@ class DenoiseNode extends TempNode { return vec4( denoised, 1.0 ); + } ).setLayout( { + name: 'denoise', + type: 'vec4', + inputs: [ + { name: 'uv', type: 'vec2' } + ] + } ); + + const output = tslFn( () => { + + return denoise( uvNode ); } ); - const outputNode = denoise(); + const outputNode = output(); return outputNode;