2012年06月19日

Snow Leopard の OpenGL

 台風が直撃しそうなので、すでに強い風雨の中を頑張って早めに帰宅したのだが、どうもその時刻が最も強かったような…

 最近見つけた OpenGL の不具合に取り組む。線画を描くときには GL_LIGHTING をオフにし、三次元の物体を描く時にはオンにするのだが、glEnable(GL_LIGHTING) のあとの照明の当たり方がどうもおかしい。この症状が、手元のマシンでは Mac 10.6 でだけ現れ、10.5 や Windows では現れない。対応に困って情報を探しまわったところ、この記事が見つかった。glEnable(GL_LIGHTING) のあとに、次のコードを入れて、GL_LIGHT0 の位置をリセットすればいいらしい。

static GLfloat pos[] = {0, 0, 1, 0}; glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); glLightfv(GL_LIGHT0, GL_POSITION, pos); glPopMatrix();

 確かに動くようにはなったけど、これシステムのバグだよねえ…

Posted at 2012年06月19日 22:49:03
email.png