我正在使用GL_QUAD_STRIP
原始图绘制3d球体,它的工作原理除了我不知道如何设置纹理坐标。用于渲染3d球体的纹理坐标
我有一定数量的division
将我的球体划分为相等的纬度和经度数。因此,球体的顶点所使用的划分如下
float x, y, z, dTheta=180/divisions, dLon=360/divisions, degToRad=3.14/180 ;
for(float lat =0 ; lat <=180 ; lat+=dTheta)
{
glBegin(GL_QUAD_STRIP) ;
for(float lon = 0 ; lon <=360; lon+=dLon)
{
x = r*cosf(lat * degToRad) * sinf(lon * degToRad) ;
y = r*sinf(lat * degToRad) * sinf(lon * degToRad) ;
z = r*cosf(lon * degToRad) ;
glNormal3f(x, y, z) ;
glVertex3f(x, y, z) ;
x = r*cosf((lat + dTheta) * degToRad) * sinf(lon * degToRad) ;
y = r*sinf((lat + dTheta) * degToRad) * sinf(lon * degToRad) ;
z = r*cosf(lon * degToRad) ;
glNormal3f(x, y, z) ;
glVertex3f(x, y, z) ;
}
glEnd() ;
}
这没有奏效。它画出了整个棕色的颜色。这是不是所有包装我的抽样图像这是一个检查(国际象棋棋盘布局)图片 – jmishra 2012-04-24 09:47:25
glVertex3f调用需要在glTexCoord2f调用.... – ltjax 2012-04-24 09:52:02
@ltjax doh权利。谢谢。现在修复 – 2012-04-24 09:57:47