2011-01-27 24 views
1

OpenGLのテクスチャオブジェクトに色を適用すると、実際に描画する色を決定するために、glColorの色とテクスチャデータの色が乗算されると思います。これは明るい色のテクスチャにはすべて上質で良いですが、暗いテクスチャを色付けしようとすると問題が発生します。黒色のテクスチャを持っていて、それを赤色にしようとすると、それはまだ黒っぽい色合いに変わります。 glColorを設定するときに、暗いテクスチャの色を大幅に明るくするためのハックやテクニックを知っている人はいますか?OpenGlの非常に暗いテクスチャの色付け

答えて

0

まずテクスチャを明るくしてから、いつものように色づけします。テクスチャを明るくする

、二つの基本的な技術は、以下のとおりです。

  • 添加剤増白:すべてのテクセルに一定の値を追加します。
  • 乗法ブライトニング:すべてのテクセルに1より大きい値を掛けます。明るさを+ 10%にするには、1.1を掛けます。
1

あなたが記述したcomportmentは基本的なGL_MODULATEビヘイビアです。単純な乗算です。

どのプラットフォーム、またはGLのバージョンに応じて、あなたは、あなたが利用できる検討することもできています:

  • 使用シェーダ、それはあなたがあなたのテクスチャ画像上のほとんどすべての操作を行うことができます

  • GL_MODULATEを置き換えるために、他のより完全なTexEnvモードを使用してください。私はあなたに合っているかどうかはわかりませんが、十分な創造性をもってone of thoseがあなたに合っているかもしれません。私は、TexEnvの周りにたくさんの拡張があったことを覚えていると思います。それは役に立つかもしれません。

0

ガンマ補正がここで役割を果たすかもしれません。赤色の黒色の照明はまだ黒色で、それは意図通りです。しかし、「黒っぽい」(黒ではない)ものが「ほとんど黒」と表示された場合、これは何かが間違っていることを示唆しています。

テクスチャを含む画像は、多くの場合、そのように設定されたモニタを持っているため、sRGBとして保存されることが多いため、画面に表示されるとほとんどの人に最適です。不運にも、あなたが値で数学をするなら、それはもはや真実ではありません!

EXT_texture_sRGBがサポートされている場合(バージョン2.1のコア)、テクスチャの読み込み時にそれぞれの "S"定数を使用するようにしてください。それ以外の場合は、シェーダで手作業で数学を行うこともできます。

=====>useful gamma literature

関連する問題