使用 Color.rgb() 不适用于完整的 0..255 范围



我正在使用opengl编写一个Android游戏。我正在使用:

colour = Color.rgb(theR,theG,theB);

(所有整数)来存储矩形的颜色。然后我解析出 RGB 以呈现矩形:

colorR = Color.red(color);
colorG = Color.green(color);
colorB = Color.blue(color);

例如,对于颜色 53,130,255,这应该会导致蓝色,但在我的应用程序上它会导致白色。如果我使用 1,1,1,我会变白。如果我使用 0,0,0,我会变黑。如果我使用 0,1,0,我会得到绿色等。所以看起来任何超过 1 的值都被视为 1,所以我没有得到完整的 0...255 范围。我尝试使用Color.argbcolor = Color.parseColor(theColor)其中颜色是字符串。我正在一个opengles应用程序中使用它。我有一个类来显示一个矩形的颜色。这绝对可以正常工作,因为渲染了正确大小的矩形,只是不是使用大于 1 的值的颜色。我也使用纹理,一切都显示得很好。有什么想法吗?谢谢一百万

大多数 OpenGL 函数接受颜色作为浮点数,0 表示最小强度,1 表示最大强度。

只需在传递给OpenGL之前将您的RGB值除以255.f,您应该没问题。

最新更新