私はOpenGLが初めてです。LWJGL と Slick で Java を使用しています。これまでのところ、いくつかのテクスチャを描画でき、バッファーを使用して、画面に表示されている画像を後処理用のテクスチャにコピーできます。glColor3f() を使用して、画面を目的の色にすることができます (青のみ、赤のみ、青と緑のチャネルのみを表示するなど)。
しかし、glColor3f(r, g, b) が行うことは、r、g、b の値を現在のピクセルに乗算することだけです。R、G、B がピクセルの現在の値である場合、glColor が行うことは、すべてのピクセルに対して (R*r、G*g、B*b) です。
私がやりたいことは、現在の値 R、G、B を使用して、たとえば赤のチャンネルを青のチャンネルに交換できるようにすることです。
(ロ、RG)
または、これらの値と新しい値を算術演算に使用します
(R+G*r, (B+g)/5, B*0.2)
私の目的は、グレースケール テクスチャを作成し、すべてのピクセルの色 (R、G、B) を次のように変更することです。
color = (R*0.5 + G*0.5 + B*0.5)/3
functionThatChangesColor(color, color, color);
どうすればこれまたはそれに似たものを達成できますか?
ありがとう!