Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
opengl中的二维地图渲染_Opengl - Fatal编程技术网

opengl中的二维地图渲染

opengl中的二维地图渲染,opengl,Opengl,我用一些小芯片画了一张地图。 当它静止时,一切正常。但当我使用GLP移动它时。 它总是有点发抖 我用这个来初始化 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); g

我用一些小芯片画了一张地图。 当它静止时,一切正常。但当我使用GLP移动它时。 它总是有点发抖

我用这个来初始化

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时, 它可能有像素偏移?
如何解决这个问题?

能否请您提供投影矩阵代码,以及颤抖的屏幕截图?可能是GLTEX参数GL_NEAREST/GL_线性问题(取决于“小抖动”的确切含义),或者是浮点精度问题。我想我经常只是截短在引擎盖下漂浮。