そろそろPythonでOpenGLを使ってもいいんじゃないかと思い始めて,よいラッパー (Wrapper) を探し始めた.そこで見つけたのがModernGL. ロゴはダサイけど,チラ見した感じ,設計方針に好感が持てた(私のC++での設計方針に似ていた)ので使ってみることにした.
インストール
個人的にconda
で完結させたいと思っていたが,GLFWだけはpip
にした.conda
版のGLFWはなぜかインストールしただけだと動かずひと手間必要そうだったので.
conda create -n moderngl conda activate moderngl conda install -c conda-forge moderngl pip install glfw
ちなみに,ModernGLをconda
でインストールすると,もれなくModernGL-Windowもインストールされる模様.便利.
仕組みとしては,ModernGLがOpenGLを扱っており,ModernGL-WindowがWindow周りを扱っている様子.ModernGL-Window自家製のWindowもあるが,GLUTみたく勝手にメインループを回す模様.フレームの更新を自分でコントロールしたい場合,別途GLFWのようなライブラリが必要,というわけ.
Hello World
ModernGL-Windowのトップページにある以下のコードを動かしてみると,もうOpenGLをコーディングする準備ができていた.
# test.py import moderngl_window as mglw class Test(mglw.WindowConfig): gl_version = (3, 3) def render(self, time, frametime): self.ctx.clear(1.0, 0.0, 0.0, 0.0) Test.run()
以下のように真っ赤なウィンドウが表示されれば成功!