GLSL 内置函数

floatBitsToUint()

按原始位模式将浮点数解释成无符号整数。

示例版本:GLSL ES 3.00 / WebGL 2示例阶段:片段

函数签名

genUType floatBitsToUint(genType x)

genType 表示 float / vec2 / vec3 / vec4; genUType 表示 uint / uvec2 / uvec3 / uvec4;同名占位符须使用相同类型。

参数

x
输入值或左侧向量

返回值

逐分量返回保存输入浮点位模式的无符号整数。

在线示例

修改右侧代码,左侧预览会实时更新。

floatBitsToUint 做什么

按原始位模式将浮点数解释成无符号整数。

看懂预览

floatBitsToUint(1.0)==1065353216u 检查的是 1.0 的编码,不是数值。把右侧改为 1u,结果会变为 false,背景颜色随之改变。

核心调用

float(floatBitsToUint(1.0)==1065353216u);

用 highp 浮点输入解释位模式,不能期望它等于截断整数。

修改实验

把结果表达式换成 floatBitsToUint(-1.0)==3212836864u。这个无符号整数保留负数的符号位,背景统一显示条件成立的颜色。

规范

GLSL ES 3.00 built-in functions, chapter 8

相关函数