总觉得生成立方体数据麻烦,想了个办法,差强人意。不知道有没有更好的。。。思考中。
GLfloat face[6][4][3];
for(int i=0;i<=7;i++)
{
face[i/4][i%4][0]=1-2*(i/2%2); //前后
face[i/4][i%4][1]=1-2*((i+1)/2%2);
face[i/4][i%4][2]=1-2*(i/4);
face[i/4+2][i%4][0]=1-2*(i/2%2);//上下
face[i/4+2][i%4][1]=1-2*(i/4);
face[i/4+2][i%4][2]=1-2*((i+1)/2%2);
face[i/4+4][i%4][0]=1-2*(i/4); //右左
face[i/4+4][i%4][1]=1-2*(i/2%2);
face[i/4+4][i%4][2]=1-2*((i+1)/2%2);
}
glBegin(GL_QUADS);
for(i=0;i<=23;i++)
{
if(i%4==0)
{
glNormal3f(i==16?1:i==20?-1:0,i==8?1:i==12?-1:0,i==0?1:i==4?-1:0);
}
glTexCoord2f(i/2%2, (i+1)/2%2);
glVertex3fv(face[i/4][i%4]);
}
glEnd();