ここで50行目に
glColor3d(0.0, 1.0, 1.0);
を使っているのですが、なぜか、XYZ軸と全ての三角形が水色になってしまいます。
glColor3d(0.0, 1.0, 1.0);
以下の描画だけにしか色が適用されるのではないのでしょうか?
コード内容を書きます。(プログラム初心者なので見づらいかと思いますが、ご了承ください)
#include <gl/glut.h>
void display(void);
void reshape(int w, int h);
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DEPTH);
glutCreateWindow("DEPTH_TEST");
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glClearColor(0.f, 0.f, 0.f, 1.f);
glutMainLoop();
return 0;
}
void display(void){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);
/* XYZ軸を書く */
glBegin(GL_LINES);
glVertex3d(0.0, 0.0, 0.0);
glVertex3d(100.0, 0.0, 0.0);
glVertex3d(0.0, 0.0, 0.0);
glVertex3d(0.0, 100.0, 0.0);
glVertex3d(0.0, 0.0, 0.0);
glVertex3d(0.0, 0.0, 100.0);
glEnd();
glPushMatrix();
glTranslated(1.0, 1.0, 1.0);
glRotated(30.0, 0.0, 1.0, 0.0);
glBegin(GL_TRIANGLES);
glVertex3d(0.0, 0.5, 0.0);
glVertex3d(-0.5, -0.5, 0.0);
glVertex3d(0.5, -0.5, 0.0);
glEnd();
glPopMatrix();
glPushMatrix();
glRotated(30.0, 0.0, 1.0, 0.0);
glTranslated(1.0, 1.0, 1.0);
glBegin(GL_TRIANGLES);
glColor3d(0.0, 1.0, 1.0);
glVertex3d(0.0, 0.5, 0.0);
glVertex3d(-0.5, -0.5, 0.0);
glVertex3d(0.5, -0.5, 0.0);
glEnd();
glPopMatrix();
glDisable(GL_DEPTH_TEST);
glFinish();
}
void reshape(int w, int h)
{
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(30.0, (double)w /(double) h, 0.1, 200.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(1.0, 2.5, 4.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
}