decrement
decrement
一个函数节点,用于模拟后缀自减运算符 (a--)。它返回输入变量的当前值,然后将其值减 1,是实现迭代和状态管理的基础工具。
核心优势
将一个常用的、多步骤的操作(先取值,后减一)抽象为单个可复用函数。这使得着色器逻辑更清晰、可读性更高且不易出错,尤其是在实现循环或有状态的算法时,为处理有副作用的函数提供了清晰的模式。
常见用途
在自定义循环结构(如 while 循环)中管理计数器。
在光线步进(Ray Marching)算法中作为步数限制器和迭代计数器。
为程序化动画或状态机创建倒计时器。
在多遍渲染效果(Multi-pass Effects)中计算处理遍数。
如何调整
该节点本身行为固定,其视觉效果通过改变传入的可变节点(通常是 VarNode)的“初始值”来间接调整。例如,在光线步进中,若颜色亮度取决于剩余步数,将计数器的初始值从 10 提高到 20,将使较早击中的物体显得更亮,因为 `decrement` 在迭代初期返回的值会更高。
代码示例
1// myCounter 是一个可变节点, 例如 VarNode(10)
2const previousValue = decrement( myCounter );
3
4// 此刻, previousValue 的值为 10, 但 myCounter 的内部值已变为 9。