プリミティブを使用して3D球を描画してGL_QUAD_STRIP
いますが、テクスチャ座標の設定方法がわからない場合を除いて機能します。
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() ;
}