pypy.com/

Python、Unity、FX自動化などを勉強しています。あと、コーラと車も好きです。そこらへんについて、たまに記事を書きます。

pythonでOpenGLをする

こんにちは。
今回はpythonOpenGLを使ってみたいと思います。

学校の授業でコンピュータグラフィックの授業をとっているのですが、ついでに書いたものをブログに載せていこうと思います。

授業はc++なのですが、c++でブログを書くと資料のものをコピーしてしまいそうな気がするので、pythonで書いていきます。

インストール

まず、OpenGLは標準では入っていないので、ライブラリをインストールします。

人によっては、普通にpipでインストールできるかもしれませんが、僕はそれだと動きませんでした。

なので、下記のページから、自分の環境にあったものをダウンロードします。

Python Extension Packages for Windows - Christoph Gohlke

ダウンロードするのは、
pyOpenGLと
pyOpenGL_accelerate
です。

ダウンロードしたら、

pip install ダウンロードしたファイルのパス

でインストールができると思います。

とりあえず画面を表示してみる

OpenGLのダウンロードが完了したら、とりあえず画面を表示できるか試します。

できない場合は、OpenGLがうまく入っていない可能性が高いと思います。

コードは以下のものを使います。

from OpenGL.GL import *
from OpenGL.GLUT import *

def draw():
    glClearColor(1.0, 1.0, 1.0, 1.0)
    glClear(GL_COLOR_BUFFER_BIT)
    glFlush()

if __name__ == "__main__":
    glutInit(sys.argv)
    glutInitWindowSize(400, 400)
    glutCreateWindow("openGL test")
    glutDisplayFunc(draw)
    glutMainLoop()

特にコメントは入れていませんが、なんとなくわかると思います。

三角形を書いてみる

次に三角形を描いてみます。

以下のような感じで書きました。

from OpenGL.GL import *
from OpenGL.GLUT import *

def draw():
    glClearColor(1.0, 1.0, 1.0, 1.0)
    glClear(GL_COLOR_BUFFER_BIT)

    #三角形
    glColor3f(0.0,0.0,1.0)
    glBegin(GL_LINE_LOOP)
    glVertex2f(-1.0,0.0)
    glVertex2f(0.0,1.0)
    glVertex2f(1.0,0.0)
    glEnd()

    glFlush()

if __name__ == "__main__":
    glutInit(sys.argv)
    glutInitWindowSize(400, 400)
    glutCreateWindow("openGL test")
    glutDisplayFunc(draw)
    glutMainLoop()


実行すると以下のような感じで出力されると思います。


f:id:SaidaTaisei:20200504161440p:plain


うまく三角形が出力されています。

ということで、今回はpythonOpenGLを使う方法について書きました。

授業が進んでいったらどんどん更新していきたいと思います。