函数 unpackUnorm2x16
的作用是将一个使用 2 个无符号整数表示的 16 位浮点数打包成单个 32 位浮点数。
这个函数主要用于将纹理中的二维模板数据按照一定格式,转化为一个二维采样坐标。
参数名 | 类型 | 描述 |
---|---|---|
value | GLuint | 一个使用 2 个无符号整数表示的 16 位浮点数 |
返回一个使用单个 32 位浮点数表示的 16 位浮点数。
此函数的实现方式为:取 value 的低 16 位作为无符号整数 u,将其转化为浮点数 f,返回 f/65535.0。
vec2 data = vec2(0.123, 0.456);
uvec2 packedData = packUnorm2x16(data);
uint uintData = packedData.x << 16 | packedData.y;
float unpackedData = unpackUnorm2x16(uintData);
packUnorm2x16
函数压缩得到的数据。