浮動小数点数を pack して得た整数を同じサイズの浮動小数点数として保存してはならない
やってしまいました。
ここに vec2
の変数があります。
vec2 v;
各要素の精度を 16 ビットまで落として、一つの 32 ビット整数に pack します。
uint a = packHalf2x16(v);
そのままでは出力できなかったので、同じく 32 ビットの浮動小数点数である float
に変換して書き出します。
float output = uintBitsToFloat(a);
次読んだときにはデータは消えていました。