Capítulo 855 de 859
WebGPURenderer ships a new node-based post-processing system (RenderPipeline, replacing EffectComposer) built on TSL, designed from the start to support Multiple Render Targets (MRT) and automatic pass combination for better performance than the older WebGLRenderer post-processing stack.
RenderPipeline: the WebGPURenderer equivalent of EffectComposer; effects are represented as composed TSL node graphs rather than a fixed list of Pass objects.pass() (TSL): creates the initial "scene"/"beauty" pass representing the rendered scene, the usual starting point before layering effects like bloom or a dot-screen filter.renderOutput() when you need precise control (e.g. applying FXAA or 3D LUT color grading at a specific point).mrt() TSL function; scene depth is available "for free" without extra MRT configuration if requested.diffuseColor), setting an attachment's texture type to 8-bit cuts memory/bandwidth roughly in half — advanced setups (like SSR) may pack multiple values, such as metalness and roughness, into a single attachment and unpack them with a custom sample() function.scenePass.setMRT(mrt({
output,
normal: packNormalToRGB(normalView),
metalrough: vec2(metalness, roughness),
}));
const normalTexture = scenePass.getTexture("normal");
normalTexture.type = THREE.UnsignedByteType; // RGBA8 instead of default RGBA16
RenderPipeline (TSL node graphs) replaces EffectComposer for WebGPURenderer-based post-processing.renderOutput().WebGLRenderer MRT workflow.EffectComposer-based workflow for WebGLRenderer that this system replaces.