GLSL シェーダーを使用してテクスチャを比較しています。私のアルゴリズムのステップの 1 つで、(シェーダーを使用して) ピクセル値を合計するか、それらの平均を計算してから CPU に読み込みます。次のようになります (シェーダーは 1x1 testure で実行され、計算は R チャネルのみ、texture2 サイズは 1x500):
uniform sampler2D texture2;
void main()
{
float sumR = 0.0;
float step = 1.f / 500.f;
for(int i = 0; i<500; i++)
{
vec2 pos = gl_TexCoord[0].st;
sumR += (texture2D(texture2, vec2(pos.x, i * step))).r;
}
gl_FragColor.r = sumR;
}
私の問題は次のとおりです。このような大きな数を 32 ビット (1 チャネルのみ 8 ビット) の 1 ピクセルに格納する方法は? または、浮動小数点数をピクセル単位で正確に格納および読み取る方法は?