4
私はパラメータとしてGLuintテクスチャを取得するメソッドを持っていて、その一部をレンダリングしたいとします。たとえば、タイルセットについて考えてみましょう。レベルをロードするときにタイルセットをロードして、そのタイルセット(タイル)をレンダリングできるようにしたいと考えています。C++ Opengl画像の一部をレンダリングする
描画するタイルセットのピクセル座標に何らかの形で高さ、幅、posXとposYを定義できるとすれば最適です。
私は今何時間も努力してきましたが、どんな助けにも感謝します。
私は現在、テクスチャを描画する方法の簡易版:あなたはこのglTexCoord
機能を使用してください
void Render::draw(GLuint texture, float posX, float posY, float sizeX, float sizeY) {
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glAlphaFunc(GL_GREATER,0.1f);
glBindTexture(GL_TEXTURE_2D, texture);
glPushMatrix();
glTranslatef(posX,posY,0);
glBegin(GL_QUADS);
//Bottom-left vertex (corner)
glTexCoord2i(0, 0);
glVertex2f(-sizeX,-sizeY);
//Bottom-right vertex (corner)
glTexCoord2i(1, 0);
glVertex2f(sizeX,-sizeY);
//Top-right vertex (corner)
glTexCoord2i(1, 1);
glVertex2f(sizeX,sizeY);
//Top-left vertex (corner)
glTexCoord2i(0, 1);
glVertex2f(-sizeX,sizeY);
glEnd();
glPopMatrix();
glDisable(GL_BLEND);
}
ええ、それらの値は0から1までですが、代わりにピクセル座標を使用して位置を定義する方法はわかりますか? – Sane
私はそれをついに見つけました!興味のある人のために私はその解決策を見つけました:http://www.gamedev.net/topic/559980-opengl-and-2d-tiles/ – Sane