Ios 使用GL_LINE_STRIP绘制三角形轮廓时的奇怪顺序

Ios 使用GL_LINE_STRIP绘制三角形轮廓时的奇怪顺序,ios,opengl-es,terrain,Ios,Opengl Es,Terrain,我正在使用OpenGL为iOS平台开发一个应用程序 目前我在绘制由多个子平面组成的平面(地形)时遇到了一个奇怪的问题,其中每个子平面由两个三角形组成,形成一个矩形。我通过调用GLDraweElements将地形绘制为线框,并提供参数GL_Line_Strip和预先计算的索引。问题是三角形的绘制顺序错误,或者是垂直镜像。它们没有按照我指定的索引顺序绘制,这很混乱 这是生成顶点的简化代码: int pos = 0; for(NSInteger y = - gridSegmentsY / 2; y &

我正在使用OpenGL为iOS平台开发一个应用程序

目前我在绘制由多个子平面组成的平面(地形)时遇到了一个奇怪的问题,其中每个子平面由两个三角形组成,形成一个矩形。我通过调用GLDraweElements将地形绘制为线框,并提供参数GL_Line_Strip和预先计算的索引。问题是三角形的绘制顺序错误,或者是垂直镜像。它们没有按照我指定的索引顺序绘制,这很混乱

这是生成顶点的简化代码:

int pos = 0;
for(NSInteger y = - gridSegmentsY / 2; y < gridSegmentsY / 2; y ++) {
    for(NSInteger x = - gridSegmentsX / 2; x < gridSegmentsX / 2; x ++) {
        vertices[pos++] = x * 5;
        vertices[pos++] = y * 5;
        vertices[pos++] = 0;
    }
}
…我将索引数组中的第一个索引设置为指向当前(x,y),下一个索引设置为(x,y+1)。我对当前条带中的所有x进行此操作,然后处理退化三角形,并对下一条带(y+1)重复此过程

此方法取自

因此,我希望生成的网格绘制如下:

         a----b----c
         |   /|   /|
         |  / |  / |
         | /  | /  |
         |/   |/   |
         d----e----f
         |   /|   /|
         |  / |  / |
         | /  | /  |
         |/   |/   |
         g----h----i
按照说明使用以下方法对其进行喷漆:

glDrawElements(GL_LINE_STRIP, indexCount, GL_UNSIGNED_SHORT, 0);
…因为我希望GL_Line_Strip首先从(a->d)绘制一条线,然后从(d->b)绘制一条线,然后从(b,e)。。。等等(如指数计算中所述)

但实际被描绘的是:

         *----*----*
         |\   |\   |
         | \  | \  |
         |  \ |  \ |
         |   \|   \|
         *----*----*
         |\   |\   |
         | \  | \  |
         |  \ |  \ |
         |   \|   \|
         *----*----*
所以这些三角形不知怎么地画错了顺序,我需要知道为什么。有人知道吗?问题是在于使用GL_Line_Strip还是我的代码中存在缺陷


我的眼睛在(0.0f,0.0f,20.0f)并且看着(0,0,0)。网格从左到右沿x轴和y轴绘制,z=0,因此网格不应翻转或任何操作。

您是否记得解释opengl的0,0是左下角而不是左上角(如核心图形)?坐标系原点和惯用手很重要,并且可以精确地产生您所看到的镜像

glDrawElements(GL_LINE_STRIP, indexCount, GL_UNSIGNED_SHORT, 0);
         *----*----*
         |\   |\   |
         | \  | \  |
         |  \ |  \ |
         |   \|   \|
         *----*----*
         |\   |\   |
         | \  | \  |
         |  \ |  \ |
         |   \|   \|
         *----*----*