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に設定された色は、シーン全体のために使用される: 私は明らかにのみ後の色を示し、次のコードを、行いました。したがって、オブジェクト1は、独自のカラーセットを既に持っているにもかかわらず、オブジェクト2のカラーでレンダリングされます。
2つのオブジェクトを個別のマテリアルプロパティにして、シーン全体で1つの色ではなく異なる色で表示できるようにするにはどうすればよいですか?
drawSphere()をご覧ください。 – Calvin1602