我正在使用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.argb
和color = Color.parseColor(theColor)
,其中Color是一个字符串。
我在一个opengles应用程序中使用它。我有一个类来显示一个颜色矩形。这绝对是正常的,因为渲染了正确的大小矩形,而不是使用大于1的值的颜色。我也使用纹理,一切都很好。
有任何想法吗?
万分感谢
答案 0 :(得分:5)
大多数OpenGL函数接受颜色作为浮点数,0表示最小强度,1表示最大强度。
在传递给OpenGL之前,只需将你的RGB值除以255.f即可。你应该没问题。