1

ポリゴンのマテリアルを変更しようとしていますが、うまくいきません。理由はわかりません。

ポリゴンは GL_AMBIENT、GL_DIFFUSE、GL_SPECULAR、および GL_SHININESS の影響を受けません。

GLfloat mat_ambient[] = { 1, 0.5, 0, 1.0 };
GLfloat mat_diffuse[] = { 0.4, 0.2, 0, 1.0 };
GLfloat mat_specular[] = { 0.774597, 0.774597, 0.774597, 1.0 };
GLfloat mat_shine = 0.6;

glMaterialfv (GL_FRONT, GL_AMBIENT, mat_ambient);
glMaterialfv (GL_FRONT, GL_DIFFUSE, mat_diffuse);
glMaterialfv (GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialf (GL_FRONT, GL_SHININESS, mat_shine * 128);


glPushMatrix();
glTranslatef(axeX, axeY, 0);
glRotatef(angle, 0, 0, 1);

glBegin(GL_POLYGON);

    glNormal3f(0,0,1);
    glVertex3f (-0.25, 0.5, 1.0);

    glVertex3f (-0.5, 0.25, 1.0);

    glVertex3f (-0.5, -0.25, 1.0);

    glVertex3f (-0.25, -0.5, 1.0);

    glVertex3f (0.25, -0.5, 1.0);

    glVertex3f (0.5, -0.25, 1.0);

    glVertex3f (0.5, 0.25, 1.0);

    glVertex3f (0.25, 0.5, 1.0);

glEnd();
glPopMatrix();
4

1 に答える 1

0

glEnable(GL_COLOR_MATERIAL)ananthanonline が示唆するように、照明が設定されていることを確認してください。

編集:

申し訳ありませんが、必要になるかもしれません。 glDisable(GL_COLOR_MATERIAL)

有効にすると、頂点ごとのカラーリングが指定されます。考えてみても、頂点の色を指定していないので効果がないかもしれません。

ライトの設置方法を教えていただけますか?スペキュラー/ディフューズなどのライトに指定した色は何ですか?

于 2012-04-23T21:43:10.513 に答える