改变现有颜色OpenGL的方法

时间:2012-06-16 04:55:17

标签: java opengl rgb lwjgl bytebuffer

使用类似glColor4f(0f, 0f, 0f, 0f);的方法,它将值设置为放入的任何参数。但是,我想要做的只是略微改变颜色。是否有任何现有的OpenGL方法可以将其参数加到或减去现有的颜色?

我能想到的另一种方法是先获取颜色值,然后编辑我想要的颜色,最后用glColor4f()发送回来。

所以,最后,我想知道是否存在编辑现有RGBA的方法,或者至少检索现有的RGBA。

1 个答案:

答案 0 :(得分:2)

嗯,您可以glColor4f使用glGet使用GL_CURRENT_COLOR获取最后一个值集,但我不推荐它; glGet操作通常对您的表现有害,所以尽量不要经常这样做。

更好的想法是维护发送到glColor4f的最后一个值的本地副本,以便您拥有数据客户端,而不必从opengl驱动程序请求它。

无法添加或减去我所知道的当前颜色。

编辑:其实我只是抬头看到这个名为glSecondaryColor的函数可以做你想做的事。您可以提供第二个RBG颜色,然后启用GL_COLOR_SUM,并将这两种颜色相加。