velocity
velocity
提供逐像素的屏幕空间速度矢量,是实现运动模糊和时间抗锯齿(TAA)等高级后期处理效果的基础。
核心优势
极大地简化了高级动态效果的开发。开发者无需手动追踪和计算复杂的逐帧矩阵变换,即可直接在 TSL 中获取由渲染器自动算好的、用于表现动态的核心数据。
常见用途
后期处理运动模糊
时间抗锯齿(TAA)
调试和可视化运动
如何调整
该节点本身没有参数。其效果通过两种方式调整:1. 改变场景中物体或摄像机的实际移动速度。2. 在着色器中对其输出向量进行数学运算(如 `velocity.mul(2.0)`)来艺术性地增强或减弱运动感。
代码示例
1// velocity 节点输出一个 vec2,代表屏幕空间的运动矢量
2const motion = velocity.xy;
3
4// 将范围偏移并缩放到 [0, 1] 以便作为颜色显示
5const vizColor = motion.mul(0.5).add(0.5);
6
7// 将水平运动 (x) 映射到红色通道
8// 将垂直运动 (y) 映射到绿色通道
9return vec3(vizColor.x, vizColor.y, 0);