0

我正在使用 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.argb其中color = Color.parseColor(theColor)颜色是一个字符串。我在 opengles 应用程序中使用它。我有一个类来显示一个颜色的矩形。这绝对可以正常工作,因为渲染了正确大小的矩形,而不是使用高于 1 的值的颜色。我也使用纹理,一切都显示正常。有任何想法吗?太感谢了

4

1 回答 1

7

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

在传递给 OpenGL 之前,只需将 RGB 值除以 255.f 就可以了。

于 2012-10-10T15:32:59.337 回答