Pythom .glb を window 表示する
.glb
(GL Transmission Format Binary)ファイルを Python で ウィンドウ上に表示したい場合、以下のような選択肢があります:
✅ 方法1:pygltflib
+ pythreejs
+ Jupyter Notebook(ブラウザ表示)
- Jupyter環境がある場合、
.glb
を読み込んでブラウザ上で表示可能です。 - ただし、ウィンドウで直接表示というよりはWebベース。
✅ 方法2:pyglet
+ pywavefront
+ OpenGL(ローカルウィンドウ表示)
この方法なら、Python単体でローカルウィンドウ上に .glb
/.gltf
モデルを表示可能です。
ただし .glb
はバイナリ形式のため、pywavefront
では直接扱えません。
→ .glb
→ .gltf
に変換して表示するのが一般的です。
目次
🎯 おすすめの方法(ウィンドウ表示したいならこれ)
ステップ①:blender
で .glb
→ .gltf
変換
.glb
ファイルを .gltf
に変換
(または手動で変換しておく)
ステップ②:Pythonコードで表示
pip install pyglet PyOpenGL PyWavefront
import pyglet import pywavefront # ウィンドウ作成 window = pyglet.window.Window(width=800, height=600, caption="GLTF Viewer") # glTFモデルの読み込み(glbではなくgltfを使う) scene = pywavefront.Wavefront('model.gltf', collect_faces=True) @window.event def on_draw(): window.clear() scene.draw() pyglet.app.run()
⚠
.glb
を読み込むにはpygltflib
やtrimesh
を使う必要がありますが、3D表示は自分で描画処理を書く必要あり。簡単に済ませたいなら.gltf
+pywavefront
が一番楽。
代替案(GLBを直接表示したい場合)
trimesh
+pythreejs
(Jupyterで表示)Blender
のPython APIを使ってGLBを表示vtk
やOpen3D
でウィンドウ表示(Open3Dが割と簡単)
☑ まとめ
方法 | .glb 対応 | ウィンドウ表示 | 難易度 |
---|---|---|---|
pyglet + pywavefront | ×(glTFのみ) | ✅ | ★★☆☆☆ |
trimesh + pyglet | ✅(GLB可) | ✅(頑張れば) | ★★★☆☆ |
Open3D | ✅ | ✅ | ★★★☆☆ |
Jupyter + pythreejs | ✅ | ×(Web表示) | ★☆☆☆☆ |
必要なら .glb
→.gltf
変換のやり方や、Open3Dを使った表示例も書けますよ!どうしますか?