Pygletによる「手抜き」OpenGL入門
その昔、研究のためにコンピュータ・シミュレーションをよく行っていたので、計算過程や結果の可視化をどうするかあれこれ試している中で、 和歌山大学の床井浩平先生による GLUTによる『手抜き』OpenGL入門 に随分と助けられたものです。 その後、OpenGLのバージョンも上がり、よく使われる言語もCからPythonに変わってきたので、 これからOpenGLを使ったコンピュータ・グラフィックスに入門したい方に向けて、 簡単な導入編を書いてみることにしました。タイトルの「手抜き」は、床井先生へのオマージュのつもりです。
Matplotlib等を使って(静的な)グラフや図形がプロットできれば十分な方は、このページの内容はほとんど参考にならないでしょう。 一方、大量のデータ点をプロットしたり、図形をアニメーションで動かしたり、3次元プロットをぐりぐり回したりしたい方にとっては、役に立つ内容が含まれているはずです。
2024年夏 早川美徳
目次
- (パート1)準備と2次元図形の描画
- (パート2)3次元図形の描画
- (パート3)質感の表現
- (パート4)モデルのインポート
- (パート5)シェーダーの活用
- (パート6)三次元テクスチャー
- (パート7)大きいサイズのデータの可視化
サンプルコード集
「Pythonで学ぶコンピュテーショナル・シンキングとデータ科学」に掲載されているPygletのコードの例です。
- ローレンツ・アトラクタの表示:lorenz-attractor.py (掲載ページ)
- 群れのシミュレーション:こちらのページ中に掲載
- チューリング・パターンのシミュレーション:turing-pyglet2.py (掲載ページ)
- KdV方程式のシミュレーション:kdv-eq-pyglet2.py (掲載ページ)
- セルオートマトンのシミュレーション:こちらのページ中に掲載
- 2次元イジング模型のシミュレーション:こちらのページ中に掲載
- 2次元拡散律速凝集モデルのシミュレーション:dla-2d.py (掲載ページ)
本入門編のコードやデータは GitHubリポジトリ にまとめて置いてあります。
リンク
- pyglet Documentation
- pygle GitHub repository
- GLUTによる「手抜き」OpenGL入門
- 和歌山大学床井研究室ブログ
- OpenGL Wiki(Khronos Group)
- 多面体データ(筑波大学・三谷先生)