使用类似glColor4f(0f, 0f, 0f, 0f);
的方法,它将值设置为放入的任何参数。但是,我想要做的只是略微改变颜色。是否有任何现有的OpenGL方法可以将其参数加到或减去现有的颜色?
我能想到的另一种方法是先获取颜色值,然后编辑我想要的颜色,最后用glColor4f()
发送回来。
所以,最后,我想知道是否存在编辑现有RGBA的方法,或者至少检索现有的RGBA。
答案 0 :(得分:2)
嗯,您可以glColor4f
使用glGet
使用GL_CURRENT_COLOR
获取最后一个值集,但我不推荐它; glGet
操作通常对您的表现有害,所以尽量不要经常这样做。
更好的想法是维护发送到glColor4f
的最后一个值的本地副本,以便您拥有数据客户端,而不必从opengl驱动程序请求它。
无法添加或减去我所知道的当前颜色。
编辑:其实我只是抬头看到这个名为glSecondaryColor
的函数可以做你想做的事。您可以提供第二个RBG颜色,然后启用GL_COLOR_SUM,并将这两种颜色相加。