2025年5月10日土曜日

pygletのインスト

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 件のコメント:

コメントを投稿

あいうえお