2012-03-04 16 views
1

私は、テクスチャがマッピングされた大きな2D矩形の上に点やその他のプリミティブを描画するシミュレーションプログラムを作成しています。OpenGLで色付きのポリゴンを描画するとテクスチャの色が変わります

問題は、ポリゴンを描画し、glColor3fを使って頂点の色を指定すると、その色が、描いたポリゴンだけでなく、テクスチャの色にも影響するように見えます。赤いポリゴンを描くことはテクスチャ全体に「にじむ」ように見え、すべてが赤く見えます。

私は、ポリゴンを描画する前にglDisable(GL_TEXTURE_2D)を使ってこの問題を解決し、再度有効にしようとしました。しかし、これは何の効果もないようです。

答えて

4

glColor3fは、OpenGLのカラー状態を設定しているときに、呼び出された後に描画するすべての色を変更します。これは、OpenGLが一般的にどのように機能するかです。 (glTranslate/Rotate/ScalefglMultMatrixglLoadIdentity、等彼らはglMatrixModeで設定マトリクスモード状態()によって選択された行列を用いて変換状態を変更するのと同じ方法で動作する)

裏面に色を「リセット」するためにデフォルト、お電話glColor3f(1.0f, 1.0f, 1.0f);

+0

あなたは先生です。ありがとう。 glColor3f(1.0f、1.0f、1.0f)がそれをリセットすることはもちろん、glColor3fがすべてに影響を与えることを私は永遠に思い出しました... –

関連する問題