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

sup*_*nja 0 android opengl-es

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

colour = Color.rgb(theR,theG,theB);
Run Code Online (Sandbox Code Playgroud)

(所有整数)用于存储矩形的颜色.然后我解析出RGB来渲染矩形:

colorR = Color.red(color);
colorG = Color.green(color);
colorB = Color.blue(color);
Run Code Online (Sandbox Code Playgroud)

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

Tim*_*Tim 5

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

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