uint packUnorm2x16(vec2 value)
packUnorm2x16
是一个GLSL的内置函数,用于将双精度浮点数向量value
中的两个值以无符号16位整数(即[0, 2^16-1]范围内的整数)的形式打包成一个32位无符号整数返回。
这个函数会将每个输入值从[0, 1]的范围中线性映射到[0, 2^16-1]的范围内。
value
:类型为vec2
的双精度浮点数向量,其中包含要打包的两个值。uint
vec2 color = vec2(0.5, 0.75);
uint packedValue = packUnorm2x16(color);
color
是一个vec2
类型的双精度浮点数向量,包含两个值(0.5和0.75)。packedValue
是一个32位无符号整数,值为32767
(即16进制的0x7FFF
)和49151
(即16进制的0xBFFF
)所打包成的值,即为0x7FFF
0xBFFF
(即16进制的0x7FFFBFFF
)。vec2 color = vec2(1.0, 0.0);
uint packedValue = packUnorm2x16(color);
color
是一个vec2
类型的双精度浮点数向量,包含两个值(1.0和0.0)。packedValue
是一个32位无符号整数,值为65535
(即16进制的0xFFFF
)和0
所打包成的值,即为0xFFFF
0x0000
(即16进制的0xFFFF0000
)。