色を設定した後にレンダリングされるものはすべて同じ色を使用し、フレームにまたがってリセットされません。glColor4fを使用した後にOpenGLで色をリセットする方法
誰かが使用後に色の設定をオフにする方法を提案できますか?
色を設定した後にレンダリングされるものはすべて同じ色を使用し、フレームにまたがってリセットされません。glColor4fを使用した後にOpenGLで色をリセットする方法
誰かが使用後に色の設定をオフにする方法を提案できますか?
OpenGLは状態マシンです。一度色を設定すると戻すことはできません。使用できるメカニズムの1つはglPushAttrib
とglPopAttrib
です。 glPushAttrib(GL_CURRENT_BIT)
は色と他のいくつかのものを保存し、glPopAttrib()
は復元します。
あなたは何をしたいのか別のメカニズムを使用する必要があるかもしれません。常に状態を保存して復元することは、費用のかかる方法です。
「オフにする」とは、「白に戻って戻ってください」という場合は、状態をglColor3f(1,1,1)に戻すだけです。これを行うことができるopenglにはたくさんの呼び出しがありますので、必要に応じてこれを変更してください。
いくつかの選択肢を提案できますか?私がインターネット上で利用可能ないくつかの例を見ることは良いことです。あなたは私をどんなリンクにでも導かせることができますか?前もって感謝します。 – Rikki
色を復元する必要はありません。変更したいときは、glColor *を呼び出すだけです。それを保持する必要がある場合は、クライアントに浮動小数点配列(例えば、RAMメモリ)を持たせることで可能です。 GLfloat master_color [4]; master_color [0] = x; master_color [1] = y; master_color [2] = z; master_color [3] = w; glColor *(...); /*描画*/ glColor4fv(master_color);/*リストア* / –