0
我想知道如何绘制平面着色的圆柱体。如何画平面着色的三维圆柱体
这是我迄今为止所做的。
void drawCylinder(int numMajor, int numMinor, float height, float radius)
{
double majorStep = height/numMajor;
double minorStep = 2.0 * M_PI/numMinor;
int i, j;
for (i = 0; i < numMajor; ++i) {
float z0 = 0.5 * height - i * majorStep;
float z1 = z0 - majorStep;
glBegin(GL_TRIANGLE_STRIP);
for (j = 0; j <= numMinor; ++j) {
double a = j * minorStep;
float x = radius * cos(a);
float y = radius * sin(a);
glNormal3f(x/radius, y/radius, 0.0);
glTexCoord2f(j/numMinor, i/numMajor);
glVertex3f(x, y, z0);
glTexCoord2f(j/numMinor, (i + 1)/numMajor);
glVertex3f(x, y, z1);
}
glEnd();
}
}
我明白,我知道但是定义一个正常的,这是正常的给我平滑阴影,而不是持平。我可以知道如何让它在OpenGL和GLUT中平坦吗?
是有办法做到这一点不用这种方法,因为这样做会导致问题到我的亮点,平滑阴影以及 – 2013-03-21 11:56:21
你可以打开它和关闭,因为你需要。如果您不想使用它,则需要为面部的所有顶点提供相同的法线。因此,有些顶点需要多次指定,只需使用不同的法线。 – 2013-03-21 12:34:06