-1
簡単な光で十二面体を回転しようとしています。矢印キーでオブジェクトを回転させたOpenGLライト
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glLightf(GL_LIGHT1, GL_CONSTANT_ATTENUATION, 1.5f);
glLightf(GL_LIGHT1, GL_LINEAR_ATTENUATION, 0.75f);
glLightf(GL_LIGHT1, GL_QUADRATIC_ATTENUATION, 0.4);
GLfloat black[] = { 0, 0, 0, 1 };
GLfloat blue[] = { 0, 1, 1, 1 };
glLightfv(GL_LIGHT1, GL_AMBIENT, black);
glLightfv(GL_LIGHT1, GL_DIFFUSE, blue);
glLightfv(GL_LIGHT1, GL_SPECULAR, blue);
glEnable(GL_LIGHT1);
glEnable(GL_LIGHTING);
glTranslatef(0, 0, -50);
glRotatef(angle, 0, 1.0, 0);
glutSolidDodecahedron();
angle
変更:
表示機能のコードはこれです。しかし、いくつかの角度のために、絵はこのような奇妙に見える:
後ろにいた顔が透明であるようです。何故ですか?このオブジェクトを正しく印刷するにはどうしたらいいですか?
それでも同じように見えます...なぜオブジェクトの背面が前面に黒く表示されますか?私は黒い顔をまったく見る必要はありません。私はオブジェクトと私の後ろの光をまっすぐに見ています... – nrofis
あなたの明確な色は何ですか?また、裏面のカリングが有効になっていますか?これが当てはまる場合、おそらくオブジェクトのポリゴンは、前面を外面の代わりに内面として定義する巻き線順序を持っています。多分 'glDisable(GL_CULL_FACE);'を試してみてください。 –
ええと、私は背面のカリングを有効にするのを忘れてしまったようです...「glEnable(GL_CULL_FACE)」を追加した後、うまく動作します。ありがとうございました! – nrofis