Draw Sphere - порядок вершин

Я хотел бы нарисовать сферу в чистом OpenGL ES 2.0 без каких-либо движков. Я пишу следующий код:

 int GenerateSphere (int Slices, float radius, GLfloat **vertices, GLfloat **colors) {
 srand(time(NULL));
 int i=0, j = 0;
 int Parallels = Slices ;
 float tempColor = 0.0f;    
 int VerticesCount = ( Parallels + 1 ) * ( Slices + 1 );
 float angleStep = (2.0f * M_PI) / ((float) Slices);

 // Allocate memory for buffers
 if ( vertices != NULL ) {
    *vertices = malloc ( sizeof(GLfloat) * 3 * VerticesCount );
 }
 if ( colors != NULL) {
    *colors = malloc( sizeof(GLfloat) * 4 * VerticesCount);
 }

 for ( i = 0; i < Parallels+1; i++ ) {
     for ( j = 0; j < Slices+1 ; j++ ) {

         int vertex = ( i * (Slices + 1) + j ) * 3;

         (*vertices)[vertex + 0] = radius * sinf ( angleStep * (float)i ) *
                    sinf ( angleStep * (float)j );
         (*vertices)[vertex + 1] = radius * cosf ( angleStep * (float)i );
         (*vertices)[vertex + 2] = radius * sinf ( angleStep * (float)i ) *
                        cosf ( angleStep * (float)j );
         if ( colors ) {
                int colorIndex = ( i * (Slices + 1) + j ) * 4;
                tempColor = (float)(rand()%100)/100.0f;

                (*colors)[colorIndex + 0] =  0.0f;
                (*colors)[colorIndex + 1] =  0.0f;
                (*colors)[colorIndex + 2] =  0.0f;
                (*colors)[colorIndex + (rand()%4)] = tempColor;
                (*colors)[colorIndex + 3] =  1.0f;
            }
        }
    }
    return VerticesCount;
}

Я рисую это с использованием следующего кода:

glDrawArrays(GL_TRIANGLE_STRIP, 0, userData->numVertices);

Где userData-> numVertices - VerticesCount из функции GenerateSphere. Но на экране рисует ряд треугольников, это не сферное приближение! Я думаю, мне нужно нумеровать вершины и использовать функцию OpenGL ES 2.0 glDrawElements () (с массивом, содержащим число вершин). Но серия треугольников, нарисованных на экране, не является сферным приближением. Как нарисовать сферу в приближении? Как указать порядок вершин (индексы в терминах OpenGL ES 2.0)?

Ответы на вопрос(2)

Ваш ответ на вопрос