rtt
rtt
一个强大的节点,它将复杂的“渲染到纹理”(Render to Texture)工作流抽象化,允许你将任何节点网络的输出结果实时渲染成一个可供使用的纹理。
核心优势
它将手动管理渲染目标(FBO)的复杂底层操作完全自动化,并能读取自身上一帧的输出,从而轻松实现 GPU 上的反馈循环和状态模拟(如流体、拖影),极大地降低了高级动态效果的实现门槛。
常见用途
实现后期处理效果,如辉光和景深。
创建反馈循环特效,如墨水扩散、图像拖影和反应扩散图案。
实时生成复杂的程序化纹理,以避免在主渲染中重复进行昂贵计算。
模拟镜子或传送门,通过渲染虚拟相机的视图来创建反射纹理。
如何调整
调整主要集中在分辨率和输入节点逻辑上。降低分辨率(`width`, `height`)可以提升性能但会降低画质。在反馈循环中,改变输入节点的混合因子可以控制拖影的长短或效果的演化速度。在 `options` 中改变纹理 `type`(如使用 `HalfFloatType`)可以支持 HDR 数据,这对于辉光等效果至关重要。
代码示例
1// 1. 定义一个将被渲染到纹理中的图案
2const patternToRender = checker( uv().mul( 10 ) );
3
4// 2. 使用 rtt 将该图案渲染成一个 512x512 的纹理
5const proceduralTexture = rtt( patternToRender, 512, 512 );