intBitsToFloat
intBitsToFloat
将整数或整数向量按“位模式”重解释为对应的浮点类型(不做数值转换),常用于在 GPU 端从打包的整型数据还原浮点值。
核心优势
零开销的位级重解释而非数学转换,逐位保持不变;可直接对接 Int32BufferAttribute、uniform(int) 等整型来源,避免 CPU/GPU 往返或精度损失。
常见用途
从整型顶点/实例属性还原浮点参数(如压缩的权重、阈值)
与 floatBitsToInt 配合进行位运算(符号位/掩码/标志位)
从缓冲/纹理中读取以 int 形式存储的 32 位 float 原样还原
通过位重解释获得跨平台一致的随机种子/哈希输入
如何调整
函数本身无可调参数;通过改变输入整型位模式来间接“调整”结果。需确保位宽匹配(32 位);非法位型可能产生 NaN/∞。反向转换请使用 floatBitsToInt。
代码示例
1
2// 场景:JS 端提供一个 Int32BufferAttribute,携带已打包的 32 位 float 位模式
3const encoded = attribute( 'encodedFloatBits', 'int' );
4
5// 在着色器中按位重解释为 float
6const decoded = intBitsToFloat( encoded );
7
8// 用还原的值驱动不透明度或颜色
9material.opacityNode = decoded.saturate();
10// material.colorNode = vec3( decoded.remap( 0.0, 10.0, 0.0, 1.0 ) );
11