int
int
将任意数值输入通过截断小数部分的方式,显式地转换为整数(int)。是执行需要整数的操作(如循环、数组索引)和保证类型安全的核心节点。
核心优势
为严格要求整数输入的着色器函数(如循环计数器、`texelFetch`)保障类型安全,防止编译错误。它能明确开发者的编程意图,并将连续的浮点数(如时间)转换为离散的整数阶梯值,用于创造特定效果。
常见用途
为循环(Loop Node)定义整数计数器
为数据纹理查询(texelFetch)提供整数坐标
从连续变化的值(如时间)创建阶梯式或量化的动画
为数组或存储缓冲区(Storage Buffer)中的元素建立索引
如何调整
它将平滑、连续的输入转变为离散、阶梯式的输出。例如,对一个由 UV 坐标控制的平滑渐变应用 `int()`,会将其变成一系列硬边缘的色带(马赛克效果)。将其应用于平滑移动物体位置的数值,会使物体“跳格”或“瞬移”到新位置,而不是平滑移动。
代码示例
1// 将连续变化的时间转换为整数,以创建阶梯式效果
2const steppedTime = int( timerLocal() );
3
4// steppedTime 的值会每秒跳变一次:0, 1, 2, 3...