java - 改变现有颜色 OpenGL 的方法

标签 java opengl rgb lwjgl bytebuffer

使用像 glColor4f(0f, 0f, 0f, 0f); 这样的方法,它将值设置为输入的任何参数。但是,我想做的只是稍微改变一个颜色。是否有任何现有的 OpenGL 方法可以将其参数添加或减去它现有的颜色?

我能想出的唯一其他方法是首先获取它的颜色值,然后按我想要的方式编辑这些值,最后用 glColor4f() 将它们发回。

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

最佳答案

好吧,您可以通过将 glGetGL_CURRENT_COLOR 结合使用来获取使用 glColor4f 设置的最后一个值,但我不推荐这样做; glGet 操作通常对您的性能不利,所以尽量不要经常这样做。

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

没有办法从我知道的当前颜色中添加或减去。

编辑:实际上我只是抬头看到这个函数叫做 glSecondaryColor这可能会做你想做的。您可以提供第二种 RBG 颜色,然后启用 GL_COLOR_SUM,这两种颜色会相加。

关于java - 改变现有颜色 OpenGL 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11060932/

相关文章:

Java AWT 需要 X11,如何使用 xvfb (ubuntu 14.04)

c - glPolygonOffset() 不适用于对象轮廓

c++ - 对象在全屏中变得拉伸(stretch)

objective-c - NSColor RGB颜色计算

algorithm - HSL 到 RGB 颜色转换

java - "light"被视为什么光度值?

java - 如何使用 Java 查找非字母表

java - JTextField无法在if语句java中使用输入

java - 我如何在 jaxb 中解码并在不使用显式模式文件的情况下享受模式验证

opengl - 我在 VRAM 上存储的数据多于实际大小。这怎么可能?