代码之家  ›  专栏  ›  技术社区  ›  Joe Cannatti

OpenGL到OpenGL ES-更改条形图中三角形的颜色

  •  4
  • Joe Cannatti  · 技术社区  · 15 年前

    在OpenGL中使用glbegin()和glend()时,可以在每个glvertex3f()之间设置和更改颜色。在使用顶点数组和gldrawArrays()时,如何重新创建此行为。这里是常规的OpenGL。

    for(angle = 0.0f; angle < (2.0f*GL_PI); angle += (GL_PI/8.0f))
        {
        // Calculate x and y position of the next vertex
        x = 50.0f*sin(angle);
        y = 50.0f*cos(angle);
    
        // Alternate color between red and green
        if((iPivot %2) == 0)
            glColor3f(0.0f, 1.0f, 0.0f);
        else
            glColor3f(1.0f, 0.0f, 0.0f);
    
        // Increment pivot to change color next time
        iPivot++;
    
        // Specify the next vertex for the triangle fan
        glVertex2f(x, y);
        }
    
    1 回复  |  直到 14 年前
        1
  •  6
  •   Nils Pipenbrinck    15 年前

    使用gldrawArrays,您必须启用glvertexpointer来设置顶点数据。

    同样,您也可以为颜色设置客户机内存指针。

    归根结底就是这些电话:

      glEnableClientState (GL_VERTEX_ARRAY);
      glEnableClientState (GL_COLOR_ARRAY); // enables the color-array.
    
      glVertexPointer (...  // set your vertex-coordinates here..
      glColorPointer (...   // set your color-coorinates here..
    
      glDrawArrays (... // draw your triangles
    

    btw-纹理坐标的处理方式相同。只需使用gl_TexCoord_数组和glTexCoordPointer。