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 が文字列である場所を使用してみColor.argbました。color = Color.parseColor(theColor)これをopenglesアプリで使用しています。色の長方形を表示するクラスがあります。正しいサイズの長方形がレンダリングされるため、これは間違いなく正常に機能します。1 を超える値を使用する色ではありません。テクスチャも使用し、すべて正常に表示されます。何か案は?どうもありがとう

4

1 に答える 1

7

ほとんどの OpenGL 関数は、色を float として受け入れます。0 が最小強度、1 が最大強度です。

OpenGL に渡す前に、RGB 値を 255.f で割るだけで問題ありません。

于 2012-10-10T15:32:59.337 に答える