File: DenoiseNode.md | Updated: 11/15/2025
Post processing node for denoising data like raw screen-space ambient occlusion output. Denoise can noticeably improve the quality of ambient occlusion but also add quite some overhead to the post processing setup. It's best to make its usage optional (e.g. via graphic settings).
DenoiseNode is an addon, and must be imported explicitly, see Installation#Addons.
import { denoise } from 'three/addons/tsl/display/DenoiseNode.js';
Constructs a new denoise node.
textureNode | The texture node that represents the input of the effect (e.g. AO).
---|---
depthNode | A node that represents the scene's depth.
normalNode | A node that represents the scene's normals.
camera | The camera the scene is rendered with.
A node that represents the scene's depth.
The depth Phi value.
The index.
The luma Phi value.
The node represents the internal noise texture.
A node that represents the scene's normals. If no normals are passed to the constructor (because MRT is not available), normals can be automatically reconstructed from depth values in the shader.
The normal Phi value.
The radius.
The texture node that represents the input of the effect (e.g. AO).
The updateBeforeType is set to NodeUpdateType.FRAME since the node updates its internal uniforms once per frame in updateBefore().
Default is 'frame'.
Overrides: TempNode#updateBeforeType
This method is used to setup the effect's TSL code.
builder | The current node builder.
---|---
Overrides: TempNode#setup
This method is used to update internal uniforms once per frame.
frame | The current node frame.
---|---
Overrides: TempNode#updateBefore