我是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);
我該如何做到這一點或類似的東西?
謝謝!