PyOpenGL
2008年目標(2008/1/1)になっていたOpenGLの勉強を始めた。3Dは以前DirectXをやっていたことがあったが、あまりに難しくて挫折したことがある・・・今はPCをMacにしてしまったこともあり、DirectXは使えないので代わりにOpenGLを使うことにした。OpenGLはさまざまな言語から使うラッパーがあるのでOpenGLのPythonラッパーであるPyOpenGLを調べている。PythonラッパーといってもOpenGLのコマンド名はほとんどそのまま。たとえば、OpenGLのバイブル(またの名を赤本)に出てくるC言語のhello.cをPythonで書くと下のようになる。
import sys from OpenGL.GL import * from OpenGL.GLUT import * def display(): glClear(GL_COLOR_BUFFER_BIT) # draw white polygon glColor3f(1.0, 1.0, 1.0) glBegin(GL_POLYGON) glVertex3f(0.25, 0.25, 0.0) glVertex3f(0.75, 0.25, 0.0) glVertex3f(0.75, 0.75, 0.0) glVertex3f(0.25, 0.75, 0.0) glEnd() glFlush() def init(): # select clearing color glClearColor(0.0, 0.0, 0.0, 0.0) # initialize viewing values glMatrixMode(GL_PROJECTION) glLoadIdentity() glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0) def main(): glutInit(sys.argv) glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB) glutInitWindowSize(250, 250) glutInitWindowPosition(100, 100) glutCreateWindow("hello") init() glutDisplayFunc(display) glutMainLoop() if __name__ == "__main__": main()
関数名はC言語とまったく同じ!ネットにあるC言語のソースも簡単にPythonに翻訳できる。
- GLUTによる「手抜き」OpenGL入門
- NeHe Productions - Pythonのサンプルコードもある!
あと3次元モデリングツールであるBlenderというソフトの使い方もちょっとずつ勉強を始めた。すごく複雑なソフトでまともなオブジェクトが作れるまでどれくらいかかるのかわからないけれどスライムくらい作れるようになりたいな(笑)3次元のゲームプログラミングはまったく未知の領域なので何だか楽しくなってきた。次元が1個増えるだけでプログラミング方法がこんなに変わるんだなぁ。とりあえずの目標は3次元Boids(Appletあり)!
- 作者: OpenGL策定委員会,松田晃一
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2006/12/19
- メディア: 大型本
- 購入: 2人 クリック: 71回
- この商品を含むブログ (42件) を見る