我是OpenGL的新手。我用LWJGL和Slick来使用Java。到目前为止,我可以绘制几个纹理和缓冲区,我可以将屏幕上显示的图像复制到纹理以进行后期处理。 使用glColor3f()我可以使屏幕具有所需的颜色(只是蓝色,只是红色,只显示蓝色和绿色通道等)。使用OpenGL进行纹理颜色处理(在使用Java的LWJGL中)
但是,glColor3f(r,g,b)只是将r,g,b的值乘以当前像素。如果R,G,B是像素的当前值,则对于所有像素,glColor所做的是(R * r,G * g,B * b)。
我想要做的是使用电流值的R,G,B,从而例如我可以交换红色通道用于蓝色频道:
(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);
我该如何做到这一点或类似的东西?
谢谢!