Capítulo 414 de 859

Chapter 414: FSR1Node

Core Idea

Post processing node for applying AMD FidelityFX Super Resolution 1 (FSR 1).

Combines two passes:

  • EASU (Edge-Adaptive Spatial Upsampling): Uses 12 texture samples in a cross pattern to detect local edge direction, then shapes an approximate Lanczos2 kernel into an ellipse aligned with the detected edge.
  • RCAS (Robust Contrast-Adaptive Sharpening): Uses a 5-tap cross pattern to apply contrast-aware sharpening that is automatically limited per-pixel to avoid artifacts.

Note: Only use FSR 1 if your application is fragment-shader bound and cannot afford to render at full resolution. FSR 1 adds its own overhead, so simply shaded scenes will render faster at native resolution without it. Besides, FSR 1 should always be used with an anti-aliased source image.

Reference: https://gpuopen.com/fidelityfx-superresolution/.

Key Concepts

  • denoise : Node.<bool>: Whether to attenuate RCAS sharpening in noisy areas.
  • sharpness : Node.<float>: RCAS sharpening strength. 0 = maximum, 2 = none.
  • textureNode : TextureNode: The texture node that represents the input of the effect.
  • updateBeforeType : string: The updateBeforeType is set to NodeUpdateType.FRAME since the node renders its effect once per frame in updateBefore().

Code Examples

import { fsr1 } from 'three/addons/tsl/display/fsr1/FSR1Node.js';
  • What it demonstrates: Typical usage of FSR1Node.

Reference Tables

Constructor

Signature
new FSR1Node( textureNode : TextureNode, sharpness : Node.<float>, denoise : Node.<bool> )

Properties

PropertyDescription
.denoise : Node.<bool>Whether to attenuate RCAS sharpening in noisy areas.
.sharpness : Node.<float>RCAS sharpening strength. 0 = maximum, 2 = none.
.textureNode : TextureNodeThe texture node that represents the input of the effect.
.updateBeforeType : stringThe updateBeforeType is set to NodeUpdateType.FRAME since the node renders its effect once per frame in updateBefore().

Methods

MethodDescription
.dispose()Frees internal resources. This method should be called when the effect is no longer required.
.getTextureNode() : PassTextureNodeReturns the result of the effect as a texture node.
.setSize( width : number, height : number )Sets the output size of the effect.
.setup( builder : NodeBuilder ) : PassTextureNodeThis method is used to setup the effect's TSL code.
.updateBefore( frame : NodeFrame )This method is used to render the effect once per frame.

Key Takeaways

  1. FSR1Node extends: EventDispatcher → Node → TempNode
  2. Most relevant properties: denoise, sharpness, textureNode, updateBeforeType.
  3. Key methods: dispose, getTextureNode, setSize, setup.

Connects To