uint
uint
将浮点数或布尔值等其他类型的数据转换为无符号整数 (uint)。此操作通过截断(丢弃)小数部分来实现,是执行位运算、数组索引或任何要求整数输入的着色器操作的基础。
核心优势
解锁 GLSL 中整数独有的运算功能,例如位移(leftShift)、与(and)、或(or)等位运算,这对于实现数据打包、状态标记和高级程序化效果等技巧至关重要。
常见用途
使用位运算打包数据
计算数组或纹理数组的索引
实现基于整数数学的程序化图案
如何调整
uint 节点本身没有参数可调。其输出效果通过调整输入节点来控制。例如,在将一个 0 到 1 范围的连续信号(如 uv().x)输入 uint 之前,先乘以一个系数(如 10),可以将平滑的渐变转换为 10 个离散的整数阶梯,系数越大,阶梯越密集。
代码示例
1// 将浮点值转换为 uint 以便进行整数运算
2const myUint = uint( myFloatNode );
3
4// 对其执行位运算 (这是浮点数无法做到的)
5const result = myUint.leftShift( uint( 1 ) );