0

OpenGLを練習しているので、8ビットスタイルのゲームキャラクター(ゼルダからのリンク)を描こうとしています。私は彼の顔から始めました。それは右側の大きな四角で、彼の顔の開始点から 2 ブロック右にある彼の目を描きました... (6 ブロック、一番左の 2 つは目です)

目の上部 (緑のブロックの上のブロック) は濃い緑にする必要があります (コードを参照) が、最初の大きなブロック (顔) の色を採用し続けます。

これが理にかなっているといいのですが...この写真を見てください: 8 ビット文字

色を変え続けるために何が間違っていますか?

RGBカラーを受け入れるには、さらに何かをする必要があると思いますか? glColor3f(29, 137, 59);...

4

1 に答える 1

9

glColor3f浮動小数点引数を受け入れます。これにより、多数がフロートにキャストされるため、29.0f、137.0f、および59.0fになります。与えられた色は0-1の範囲で表され、これらは0-1の範囲に固定され、もちろん白(1.0、1.0、1.0)に見えます。

glColor3ub代わりに使用してください。引数として符号なしバイトを受け入れます。これは0〜255の範囲であり、おそらく最も慣れているものです。整数と短縮形の範囲で定義された整数と短縮形(およびそれらの符号なしの変形)を受け入れる、、、などの他glColor3iの形式があります。これらは、内部で10進バリアントに変換されるだけです(例)。glColor3sglColor3uiglColor3usdecimal = int / INT_MAX

于 2013-01-09T15:21:43.833 に答える