Gregory Igehy

Dancing at hemisphere coordinate

Notes of Encoding floats to RGBA at GLSL

GLSL で float <-> RGBA8 変換する例

R8 フォーマットに整数を読み書きする場合

//////////////////////////////////////////////////
//
//
// 書き込み
//
//////////////////////////////////////////////////
uint  i_value  = 37;
// 最大値は 255
float f_value  = ( 37 / 255.0 );
// 0.0-1.0 の範囲に収める
gl_FragColor.r = f_value;


//////////////////////////////////////////////////
//
// 読み込み
//
//////////////////////////////////////////////////
float f_value  = texture( MY_TEXTURE, uv ).r;
// uint の値は 37
uint  i_value  = f_value * 255.0;