From 35fd7f6c5af46bffcef786c8173644d181e72c4c Mon Sep 17 00:00:00 2001 From: Michael Herzog Date: Tue, 2 Jun 2026 16:51:20 +0200 Subject: [PATCH] FXAANode: Refactor `ApplyFXAA()`. (#33708) --- examples/jsm/tsl/display/FXAANode.js | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/examples/jsm/tsl/display/FXAANode.js b/examples/jsm/tsl/display/FXAANode.js index 4b3fb7eb78a947..5f17d8c685f317 100644 --- a/examples/jsm/tsl/display/FXAANode.js +++ b/examples/jsm/tsl/display/FXAANode.js @@ -304,26 +304,25 @@ class FXAANode extends TempNode { const ApplyFXAA = Fn( ( [ uv, texSize ] ) => { const luminance = SampleLuminanceNeighborhood( texSize, uv ); - If( ShouldSkipPixel( luminance ), () => { + const finalUv = vec2( uv ).toVar(); - return Sample( uv ); + If( ShouldSkipPixel( luminance ).not(), () => { - } ); + const pixelBlend = DeterminePixelBlendFactor( luminance ); + const edge = DetermineEdge( texSize, luminance ); + const edgeBlend = DetermineEdgeBlendFactor( texSize, luminance, edge, uv ); - const pixelBlend = DeterminePixelBlendFactor( luminance ); - const edge = DetermineEdge( texSize, luminance ); - const edgeBlend = DetermineEdgeBlendFactor( texSize, luminance, edge, uv ); + const finalBlend = max( pixelBlend, edgeBlend ); - const finalBlend = max( pixelBlend, edgeBlend ); - const finalUv = uv.toVar(); + If( edge.isHorizontal, () => { - If( edge.isHorizontal, () => { + finalUv.y.addAssign( edge.pixelStep.mul( finalBlend ) ); - finalUv.y.addAssign( edge.pixelStep.mul( finalBlend ) ); + } ).Else( () => { - } ).Else( () => { + finalUv.x.addAssign( edge.pixelStep.mul( finalBlend ) ); - finalUv.x.addAssign( edge.pixelStep.mul( finalBlend ) ); + } ); } );