uvec3
uvec3
将三维浮点向量、其他向量或单个数字等数据,转换为一个由三个无符号整数组成的向量 (uvec3)。转换通过截断小数部分完成,是连接连续三维空间与离散体素网格的关键,常用于获取三维网格索引。
核心优势
实现体素或三维网格逻辑。通过将连续的世界坐标转换为离散的 uvec3 整数索引,可以确定一个点在空间中所属的三维单元格,这是实现体素地形、3D 细胞自动机或体积云等高级视觉效果的基础。
常见用途
程序化体素世界生成
体积光或雾效
3D 数据可视化
如何调整
uvec3 的输出由输入值决定,核心行为是“截断”小数(非四舍五入)和“无符号化”(负数输入通常转为 0)。例如 uvec3(9.9, -2.5, 1.1) 会得到 uvec3(9, 0, 1)。构造方式灵活,可组合不同类型,如 uvec3(myVec2, myFloat)。
代码示例
1// 将连续的世界坐标 (vec3) 转换为离散的体素索引
2// 例如 vec3(4.8, 1.1, 2.7) -> uvec3(4, 1, 2)
3const voxelIndex = uvec3( positionWorld );