2011-08-16 7 views
2

浮動小数点は32ビットですか、それは私がそれを提供するものなのか、それともhighp浮動小数点の精度ですか?均一なmat4の浮動小数点値の精度はどのくらいですか?

+0

これはあなたの頂点シェーダーまたはフラグメントシェーダーにありますか? OpenGL ES 2.0では、フラグメントシェーダでこの精度を定義する必要があるため、指定したlowp、mediump、またはhighp修飾子によって指定されます(そうでない場合は、シェーダのコンパイルエラーが発生すると思います)。 –

答えて

2

highpを絶対に使用する必要がある場合は、シェーダで指定します。

uniform highp mat4 m; 

glGetShaderPrecisionFormatで使用可能な精度をテストすることもできます。使用されているものがデフォルトであるかどうかは、ハードウェアごとに、また異なるシェーダステージでも異なります。

+0

私が理解していないのは、デフォルトで32ビットが一様な4x4行列の浮動小数点数を定義するために使用される場合です。これは私がAPIを渡す値がfloat32なので、私が望むことです。もし私が仕様を見ると、私はlowp、mediump、highpについての話しか見ることができないので、私がそれより精度が低くなってしまったら、私は不思議です。 – Xavier

+0

はい、ハードウェアが浮動小数点精度をどのように実装するかによって精度が失われる可能性があります。 highp、mediump、およびmediump修飾子はすべて、必要な最小精度の範囲を指定します。ハードウェアがこの精度をどのように実装するかは、マシンによって異なります。 –

関連する問題