python仮想環境無視して、強制的に入れる。
sudo pip3 install pyglet --break-system-packages
ムカつくので、ここに書く。
pygletでMSAA(Multi-Sample Anti-Aliasing)使った。
NVIDIAなら問題ないが・・・
🔧 pyglet + GLSL 120 + MSAA シェーダー テスト開始
----- OpenGL Info -----
GL_VENDOR : NVIDIA Corporation
GL_RENDERER : NVIDIA GeForce RTX 4070 Ti SUPER/PCIe/SSE2
GL_VERSION : 4.6.0 NVIDIA 572.60
GLSL_VERSION: 4.60 NVIDIA
------------------------
🔍 GL_SAMPLES = 4
🔍 GL_SAMPLE_BUFFERS = 1
✅ pyglet.app.run() 開始
これAlder lakeのオンボードグラフィックだとpygletでLINEやSMOOTH_LINE使ってもアンチエイリアスが全然効かない。
$ glxinfo | grep "OpenGL version string"
OpenGL version string: 4.6 (Compatibility Profile) Mesa 24.0.9-0ubuntu0.3
Mesa ver24以降で実行したが・・・
🔧 pyglet + GLSL 120 + MSAA シェーダー テスト開始
----- OpenGL Info -----
GL_VENDOR : Intel
GL_RENDERER : Mesa Intel(R) Graphics (ADL-N)
GL_VERSION : 4.6 (Compatibility Profile) Mesa 24.0.9-0ubuntu0.3
GLSL_VERSION: 4.60
------------------------
🔍 GL_SAMPLES = 4
🔍 GL_SAMPLE_BUFFERS = 1
✅ pyglet.app.run() 開始
自前でGLSL叩いて、ごにょごにょしないとまともにアンチエイリアスも効かない。
openglの低レベルアクセスとかじゃないから、まだ楽だが。
とにかくpygletは何もしてくれないじゃないか!意味なし!!!
ローレベル周りの処理が無くなっただけで、実は30年前とやっていることがあまり変わらない。
それも無理やりLLMで解決させられるのが時代を感じるが、ダルい・・・
ポリゴンドライバとか今なら楽に組めそうだな・・・
たぶんdeepseekが似たようなことやってるんだろうな・・・
結局nvidiaとGLSLがすごい事がわかったし、軽量ゲームエンジンなんてクソということがわかった。
だったら初めからunrealとか使うわ!!クソが!!
もう二度とpygletなんて使わない!
完全に公式サイトのヒーロー画像に騙された。
無理やりpygletでGLSLを書いたら、それなりに綺麗になったが。
✅ じゃあ pyglet
でどうしてもFXAAをやりたいなら?
それでもできますが、以下の全てを自作する必要があります:
必要なこと | 説明 |
---|---|
pyglet.gl で FBO 作成 | OpenGLの glGenFramebuffers() などを自分で呼ぶ |
シェーダー読み込みとリンク | glCreateShader , glCompileShader 等を自前管理 |
テクスチャアタッチして描画 | glBindTexture , glTexImage2D |
フルスクリーンクアッドに FXAA を適用 | FXAA用GLSLを別途書いて適用 |
⛔ これは正直、pygletの利点(シンプルさ)を台無しにするほど面倒です。
といいつつ、godotだと多分動くと思うので、もっと軽量なもので試す。
sudo apt install libgl1 libegl1
sudo apt install libgl-dev libegl-dev
pip install moderngl moderngl-window
pip install PyOpenGL
比較項目 | pyglet | moderngl |
---|---|---|
初出 | 2006年 | 2017年(比較的新しい) |
主な用途 | 2Dゲーム、教育、GUI風の簡単描画 | 本格的なOpenGL描画(GLSL前提) |
API設計 | 古典的OpenGL(glBeginなど) | モダンOpenGL(VBO, VAO, シェーダー) |
GLSL対応 | 限定的(手動) | フルサポート(統合) |
MSAA対応 | 有効化すれば可能 | 自然に対応(samples指定のみ) |
GUI/音対応 | pyglet.media , pyglet.text あり |
❌(描画専門。UIや音は含まない) |
0 件のコメント:
コメントを投稿