2

私は OpenGL で 2D ゲームを書いています。クアッドが画面上のどこに到達するかを簡単に知ることができるように、既に正射影を設定しています。問題は、ピクセルをテクスチャ座標に直接マップできるようにしたいので、(gluOrtho2d を使用して) 直交変換もテクスチャに適用したことです。これで、整数と glTexCoord2i を使用してピクセルを直接マップできるようになりました。問題は、グーグル/読み取り/質問の後、glTexCoord2iの動作を(明らかに)誰も本当に知らないことがわかりましたが、私が使用している方法でうまく機能します。私が書いたいくつかのサンプルテストコードは次のとおりです。

glBegin(GL_QUADS);
    glTexCoord2i(16,0);
    glVertex2f(X, Y);
    glTexCoord2i(16,16);
    glVertex2f(X, Y+32);
    glTexCoord2i(32, 16);
    glVertex2f(X+32, Y+32);
    glTexCoord2i(32, 0);
    glVertex2f(X+32, Y);
glEnd();

それで、私がしていることに何か問題がありますか、それとも私がしていることは正しいですか?

4

1 に答える 1

3

について特別なことは何もありません。これは便宜上整数の引数を取るglTexCoord*iの変形の 1 つにすぎませんglTexCoord。値は、他のすべての tex 座標と同じ方法でテクスチャ変換によって変換されます。

テクスチャ座標をピクセルで表現したい場合、コードはまったく問題ないように見えます。

編集: OpenGL コーディングを「次のレベル」に引き上げたい場合は、即時モード レンダリング ( glBegin/ glEnd) を削除することを検討し、代わりに頂点バッファーを構築して で描画する必要がありglDrawArraysます。これははるかに高速です。

于 2010-05-04T06:10:16.757 に答える