如何在 OpenGL 中枚举顶点

How to enumerate vertices in OpenGL

我是 OpenGL 的新手,我的问题似乎很简单,但我还没有找到合适的信息。
我试图通过围绕 y 轴旋转一个三角形来构建我自己的圆锥体。
我有一些描述三角形的 (x,y) 坐标。据我了解,我必须将它们转换为 (x,y,z),如 (x*cos(alpha), x*sin(alpha),y),其中 alpha[0, 2Pi] 之间,有一些步骤(让它成为 Pi/36
接下来,我必须枚举获得的顶点来告诉OpenGL如何连接它们。
所以,我的问题是如何正确枚举它们。

问题与OpenGL无关; 这个圆锥将没有基础。

首先创建顶点

int density = 10;
float3 vertices[];
vertices.add(float3(0,0,1));
for(int i=0; i<=density; i++) {
    float alpha = i*2*PI/density
    vertices.add(float3(cos(alpha), sin(alpha), 0));
}

然后创建索引和三角形

int indices[];
for(int i=0; i<density; i++) {
    //add triangle
    indices.add(0);
    indices.add(i);
    indices.add(i+1);
}

然后你必须在绘图过程中使用来自 vertices[]indices[] 的数据。