2

のような方法glColor4f(0f, 0f, 0f, 0f);では、入力したパラメータに値を設定します。ただし、私がやりたいのは、色を少しだけ変更することです。既存の色にパラメータを追加または削除する既存のOpenGLメソッドはありますか?

私が思いつくことができるこれを行う他の唯一の方法は、最初にその色の値を取得し、次にそれらを私が望む方法で編集し、最後にそれらをで送り返すことglColor4f()です。

最後に、既存のRGBAを編集する方法があるのか​​、少なくとも既存のRGBAを取得する方法があるのか​​を知りたいと思います。

4

1 に答える 1

2

glColor4fを使用glGetすると、で設定された最後の値を取得できますが、GL_CURRENT_COLORお勧めしません。glGet操作は一般的にパフォーマンスに悪影響を与えるため、あまり頻繁に行わないようにしてください。

最後に送信した値のローカルコピーを保持してglColor4f、openglドライバーからデータを要求するのではなく、クライアント側でデータを取得できるようにすることをお勧めします。

私が知っている現在の色を足したり引いたりする方法はありません。

編集:実際に私はちょうど調べて、glSecondaryColorあなたが望むことをするかもしれないと呼ばれるこの関数を見ました。2番目のRBGカラーを指定してから、GL_COLOR_SUMを有効にすると、2つのカラーが一緒に追加されます。

于 2012-06-16T05:01:08.253 に答える