我是android上的opengl es新手,我有一个关于为表示圆的纹理生成网格的问题。
左边是所需的网格,右边是我的纹理:
如何生成左侧的网格?然后按以下方式渲染:

triangle1{Centerpoint, WhitePoint, nextpointclockwise(say #1)},
triangle2{Centerpoint, point#1,    nextpointclockwise(say #2)},
triangle3{Centerpoint, point#2,    nextpointclockwise(say #3)}

最佳答案

这将创建一个半径为1的圆的顶点和纹理坐标(但我实际上没有尝试过,因此可能无法工作:)
然后你可以把它们画成三角形

public void MakeCircle2d(int points)
{
    float[] verts=new float[points*2+2];
    float[] txtcord=new float[points*2+2];


    verts[0]=0;
    verts[1]=0;
    txtcord[0]=0.5f;
    txtcord[1]=0.5f;
    int c=2;
    for (int i = 0; i < points; i++)
    {
        float fi = 2*Math.PI*i/points;
        float x = Math.cos(fi + Math.PI) ;
        float y = Math.sin(fi + Math.PI) ;

        verts[c]=x;
        verts[c+1]=y;
        txtcord[c]=x*0.5f+0.5f;//scale the circle to 0.5f radius and plus 0.5f because we want the center of the circle tex cordinates to be at 0.5f,0.5f
        txtcord[c+1]=y*0.5f+0.5f;
        c+=2;
    }
}

10-08 07:24