所以,我有一组我在 openGL 中制作的对象。它们每个都有自己的颜色,其中一些还应用了纹理。我想要做的是阻止某些颜色到达屏幕,但仍然能够改变它。有没有办法挑选出实际涂上的颜色?
我尝试在相机前放置一个半透明的平面,但它并不能阻止其他颜色通过——相反,它只是与它们混合。
理想情况下,它是这样工作的:
红色物体 + 红色屏幕 = 红色物体
蓝色对象 + 红色屏幕 = 灰色/黑色/白色对象
紫色物体 + 红色屏幕 = 红色物体
-编辑-
为了澄清我想要做的事情:我想让所有对象的 RGB 值保持不变。但是,在将它们绘制到屏幕上之前,我想在不对对象进行任何实际更改的情况下将某些颜色值“归零”。
因此,RGB [255,150,200] 通过红色滤镜的对象将被绘制为具有 RGB 值 [255,0,0]、绿色滤镜 [0,150,0] 和蓝色滤镜 [0,0,200]。