0

您能否提交一个代码来绘制一个基本的线框球体而不对其进行纹理化。我找到了很多例子,但他们使用了 3 种缓冲区,如法线、纹理和顶点。是否有任何简单的综合方法可以使用 GL_TRIANGLE_FAN 或 GL_TRIANGLE_STRIP 并且仅使用顶点和片段着色器来绘制球体。

谢谢!

4

1 回答 1

0
void DrawSphere(GLdouble radius, int longitudeSubdiv, int latitudeSubdiv)
{
// issue corresponding GL command
    //glPolygonMode(GL_BACK,GL_FILL);

    //gluSphere(m_quadrObj,radius,longitudeSubdiv,latitudeSubdiv);
    float color1[3] = {1.0,0.0,0.0};
    float shininess = 64.0f;
    float specularColor[] = {1.0, 1.0f, 1.0f, 1.0f};
    glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, shininess); // range 0 ~ 128
    glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specularColor);

    glPushMatrix();
    glTranslatef(1,1,1);// *
    glColor3fv(color1);

    gluSphere(m_quadrObj,radius,longitudeSubdiv,latitudeSubdiv);

    glPopMatrix();
    //glColor3fv(color2);

}
于 2014-06-08T06:14:01.063 回答