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を使った表示例も書けますよ!どうしますか?
