我一直在思考的简单问题。当我第一次进入opengl时,我必须找到一种方法来绘制“tile”或一堆带有1个opengl绘制调用的三角形,以大大提高性能。我通过将所有顶点放入数组并绘制数组来实现这一点。发生的一个问题是每当我滚动瓷砖时,我会看到随机放置的像素显示开启和关闭取决于我滚动地图的程度。在10x10地图上大约5-8。现在,我又回到了opengl,这次我使用GL_LINE_LOOP而不是GL_TRiANGLES。当时我从来没有想过,但是当我使用GL_LINE_LOOP时我看到的是所有的三角形,但是当它完成时(它从左下角到右上角,右上角)有一条线连接到我结束的地方和我开始的地方。那些随机像素的原因是由于这个吗?或者这与它无关。连接结尾和开头的那条线是否因GL_LINE_LOOP模式而出现,或者是否与我创建地图的方式无关,并且与此有关?
答案 0 :(得分:1)
GL_LINE_LOOP是一种完全不同的绘图模式 - 这不是你在瓷砖上丢弃像素的原因。 绘制紧密网格物体时丢弃像素的最可能原因是您没有一致地计算顶点。原理是如果顶点由两个相邻的三角形(或四边形,线条等)共享,则该顶点的浮点坐标对于每个绘制调用必须100%相同。如果你这样做,那么你可以保证渲染一个紧密的网格,而不会在瓷砖之间留下任何间隙。 你的问题可能是另一回事......也许Z战斗..但我的猜测是我在这里提到的第一件事。