2017-03-27 19 views
0

glcolor4d()に問題があります。データサイズが非常に大きいので私のニーズを満たすには glBlendFuncSeparate(GL_SRC_ALPHA, GL_DST_ALPHA, GL_ONE,GL_ONE_MINUS_SRC_ALPHA); glBlendEquationSeparate(GL_FUNC_ADD, GL_FUNC_ADD); を使用しましたので、パラメータを glColor4d(0.05, 0.05, 0.05, 0.04) (可能な限り小さい)に設定しました。アルファ値とRGBパラメータが0.04などのいくつかの値より低くなると、データはウィンドウに表示されません。 関数の精度には制限がありますか?そして、この問題を解決して、パラメータをできるだけ小さくするにはどうすればよいですか?あなたのお返事をお待ちしています。OpenGL関数のパラメータの精度glColor4d

+2

8ビットのフレームバッファについて言えば、0.05 * 0.04 = 0.002、つまり1/500ですが、最小の非ゼロ値は8ビットで表すことができます1/255≈0.00392です。 –

答えて

0

dバージョンの頂点属性関数のほとんどすべてがまったく役に立たない。

フレームバッファには倍精度浮動小数点がありません。あなたができることは、単精度浮動小数点数を使用することですが、デフォルトではない単精度浮動小数点数を使用する必要があります。だからあなたはおそらくやっていないそのような画像にレンダリングするためにFBOを使う必要があります。一般的なデフォルトのピクセル形式は、ピクセルあたり8ビットです。

これは、固定機能パイプラインが浮動小数点値で動作するかどうかを無視しています。これは、8ビット/ピクセル値に変換する可能性が高くなります(これは、FFPに色が定義されているためです)。

色の精度を高めたい場合は、シェーダを使用する必要があります。

+0

あなたの答えをありがとう。 –