これで、openGL で作成したオブジェクトのコレクションができました。それぞれに独自の色があり、テクスチャが適用されているものもあります。私がやりたいのは、特定の色が画面に届かないようにすることですが、それでも変更できるようにすることです。どの色が実際にペイントされるかチェリーピックする方法はありますか?
カメラの前に半透明の平面を置いてみましたが、他の色が通過するのを止めることはできません。むしろ、それらとブレンドするだけです。
理想的には、次のように動作します。
赤い物体 + 赤いスクリーン = 赤い物体
青い物体 + 赤いスクリーン = グレー/黒/白の物体
紫色の物体 + 赤い画面 = 赤い物体
-編集-
これを実行しようとしていることを明確にするために、すべてのオブジェクトの RGB 値を同じままにしたいと考えています。ただし、画面にペイントする前に、オブジェクトに実際の変更を加えずに、色の値の一部を「ゼロ」にしたいと考えています。
したがって、RGB [255,150,200] を持つオブジェクトが赤のフィルターを通過すると、RGB 値 [255,0,0]、緑のフィルター [0,150,0]、青のフィルター [0,0,200] を持つオブジェクトとしてペイントされます。