这是一个我一直在思考的简单问题。当我第一次进入opengl时,我必须找到一种方法来绘制“瓦片”或一堆三角形,使用一次opengl绘图调用来极大地提高性能。我通过将所有顶点放入数组并绘制数组来做到这一点。出现的一个问题是,每当我滚动磁贴时,我会看到随机放置的像素显示开和关,这取决于我滚动地图的程度。在10x10地图上大约是5-8。现在,我又回到了opengl中,这次我用GL_LINE_LOOP而不是GL_TRiANGLES来绘图。当时我从未想到这一点,但当我使用GL_LINE_LOOP时,我看到的是所有的三角形,但当它完成时(它从左下角到右上角,所以右上角),有一条线连接我结束的地方和我开始的地方。这些随机像素的原因是不是因为这个?还是说这和这件事无关。连接结尾和开头的那条线是因为GL_LINE_LOOP模式而出现的,还是与我创建地图的方式无关而有关系?
发布于 2011-01-16 07:27:22
GL_LINE_LOOP是一种完全不同的绘图模式--不,这不是你在图块上放置像素的原因。在绘制紧凑的瓦片网格时,最有可能的原因是您没有一致地计算顶点。原理是,如果一个顶点由两个相邻的三角形(或四边形、直线等)共享,则该顶点的浮点坐标对于每个绘制调用都必须是100%相同的。如果你这样做,那么你可以保证渲染一个紧密的网格,在平铺之间没有任何间隙。你的问题可能出在别的地方...也许Z打架..。但我的猜测是我在这里提到的第一件事。
https://stackoverflow.com/questions/4702627
复制相似问题