0

小さなチップの絵を使って地図を作ります。静的な場合はすべて問題ありませんが、glTranslated を使用して移動すると。それは常にいくつかの小さな震えを持っています。

これを使用して初期化します

glEnable(GL_FLAT);
glEnable(GL_DEPTH_TEST);
glEnable(GL_TEXTURE_2D);
glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_GREATER , 0.5);

これを表示機能で使用します。

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);  
glPushMatrix();
glTranslated(-_viewpos.x, _viewpos.y, 0);
if(_displayFunc)
{
  _displayFunc(this, time0);
}
glPopMatrix();

これで画像をレンダリングします

glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, _texture);
glBegin(GL_QUADS);
glTexCoord2d(0.0, 0.0);glVertex2d(p1.x, p1.y);
glTexCoord2d(0.0, 1.0);glVertex2d(p2.x, p2.y);
glTexCoord2d(1.0, 1.0);glVertex2d(p3.x, p3.y);
glTexCoord2d(1.0, 0.0);glVertex2d(p4.x, p4.y);
glDisable(GL_TEXTURE_2D);
glEnd();

おそらく問題は、座標をintからdoubleに変更すると、ピクセルオフセットがある可能性があることだと思いますか? それを解決する方法は?

4

0 に答える 0