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

时间:2012-10-10 15:31:20

标签: android opengl-es

我正在使用opengl编写一款安卓游戏。 我正在使用:

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,所以我没有得到完整的0 ... 255范围。我尝试使用Color.argbcolor = Color.parseColor(theColor),其中Color是一个字符串。 我在一个opengles应用程序中使用它。我有一个类来显示一个颜色矩形。这绝对是正常的,因为渲染了正确的大小矩形,而不是使用大于1的值的颜色。我也使用纹理,一切都很好。 有任何想法吗? 万分感谢

1 个答案:

答案 0 :(得分:5)

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

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