OpenGL에서 그려진 여러 객체에 대해 개별 재료 특성을 사용하려면 어떻게해야합니까? 렌더링 할 때OpenGL에서 다른 객체에 대한 별도의 재료 특성 설정
//************** Object 1 **************
glEnable(GL_COLOR_MATERIAL);
glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
glColor4f(149.0/255.0, 78.0/255.0, 22.0/255.0, 1.0);
float mat_specular[] = {0.992157, 0.941176, 0.807843, 1.0};
float shininess = 10;
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialf(GL_FRONT, GL_SHININESS, shininess);
glPushMatrix();
glTranslatef(0, 3.0, 0);
drawSphere(0.1, 0.1, 0.1);
glRotatef(10, 1, 0, 0);
glDisable(GL_COLOR_MATERIAL);
//************** Object 2 *****************
glEnable(GL_COLOR_MATERIAL);
glColorMaterial(GL_FRONT, GL_DIFFUSE);
glColor4f(48.0/255.0, 48.0/255.0, 48.0/255.0, 1.0);
float mat_specular_2[] = {0.992157, 0.941176, 0.807843, 1.0};
float shininess_2 = 10;
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular_2);
glMaterialf(GL_FRONT, GL_SHININESS, shininess_2);
glPushMatrix();
glTranslatef(-0.6, 0.2, 1.6/2.0);
drawSphere(0.1, 0.1, 0.1);
glPopMatrix();
glDisable(GL_COLOR_MATERIAL);
, 오브젝트 2에 설정된 색상이 전체 장면에 사용됩니다 : 나는 분명히에만 후에 색상을 보여줍니다 다음 코드를했다. 따라서 Object 1은 이미 자체 색상 세트가 있음에도 불구하고 Object 2의 색상으로 렌더링됩니다.
전체 물체에서 단 하나의 색상 대신 다른 색상으로 표시 될 수 있도록 2 개의 물체가 개별 재질 속성을 가질 수 있습니까?
drawSphere()를 (를) 볼 수 있습니까? – Calvin1602