使用像 glColor4f(0f, 0f, 0f, 0f);
这样的方法,它将值设置为输入的任何参数。但是,我想做的只是稍微改变一个颜色。是否有任何现有的 OpenGL 方法可以将其参数添加或减去它现有的颜色?
我能想出的唯一其他方法是首先获取它的颜色值,然后按我想要的方式编辑这些值,最后用 glColor4f()
将它们发回。
所以,最后,我想知道是否有一种方法可以编辑现有的 RGBA,或者至少可以检索现有的 RGBA。
最佳答案
好吧,您可以通过将 glGet
与 GL_CURRENT_COLOR
结合使用来获取使用 glColor4f
设置的最后一个值,但我不推荐这样做; glGet
操作通常对您的性能不利,所以尽量不要经常这样做。
一个更好的主意是维护您发送到 glColor4f
的最后一个值的本地副本,这样您就可以在客户端拥有数据,而不必从 opengl 驱动程序请求它。
没有办法从我知道的当前颜色中添加或减去。
编辑:实际上我只是抬头看到这个函数叫做 glSecondaryColor
这可能会做你想做的。您可以提供第二种 RBG 颜色,然后启用 GL_COLOR_SUM,这两种颜色会相加。
关于java - 改变现有颜色 OpenGL 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11060932/