Qt で .glb
を表示することも バッチリ可能です!
Qt で .glb
を表示することも バッチリ可能です!
しかも Qt 公式が提供するモジュールを使えば、とても簡単に .glb
を3Dで表示できます!
目次
✅ 方法:Qt 3D + QtQuick3D
Qt には .gltf
/ .glb
にネイティブ対応しているモジュールがあります:
主な2つの選択肢:
方法 | 特徴 | Qtバージョン |
---|---|---|
Qt 3D | 柔軟・手動設定が多い | Qt 5.7〜 (保守中) |
QtQuick 3D | 簡単・高機能・QMLベース | Qt 6.x(推奨) |
🚀 Qt 6 + QtQuick3D:最も簡単な .glb
表示方法
🔧 必要条件
- Qt 6.x(Qt 6.2 以降がベスト)
- QtQuick3D モジュールが含まれていること
📄 QMLファイルの例(GLB表示)
import QtQuick import QtQuick.Window import QtQuick3D Window { visible: true width: 800 height: 600 title: qsTr("GLB Viewer - QtQuick3D") View3D { anchors.fill: parent PerspectiveCamera { position: Qt.vector3d(0, 2, 5) lookAt: Qt.vector3d(0, 0, 0) } DirectionalLight { worldDirection: Qt.vector3d(-1, -1, -1) } Model { source: "model.glb" // GLBファイルのパス scale: Qt.vector3d(1, 1, 1) } } }
model.glb
をプロジェクトと同じフォルダに置けばOKです。
🧪 実行方法(Qt Creator)
- 新しい「Qt Quick アプリケーション」プロジェクトを作成
.glb
をプロジェクトに追加- 上記のQMLに差し替え
- 実行すれば
.glb
モデルが回転可能な3Dビューで表示されます
✅ Qt 5.x(Qt 3Dの場合)
やや冗長ですが、Qt3DRender
, Qt3DCore
, Qt3DExtras
を使えば表示可能です。
例:
// Qt3DでViewerを作る(C++で) Qt3DCore::QEntity *rootEntity = new Qt3DCore::QEntity; Qt3DRender::QSceneLoader *loader = new Qt3DRender::QSceneLoader(rootEntity); loader->setSource(QUrl::fromLocalFile("model.glb")); rootEntity->addComponent(loader);
🎯 まとめ:Qtで .glb
を表示するには?
方法 | 簡単さ | 対応 | コメント |
---|---|---|---|
QtQuick 3D | ⭐⭐⭐⭐⭐ | Qt 6.x | 一番簡単・推奨 |
Qt 3D (C++) | ⭐⭐⭐ | Qt 5.x / 6.x | 細かく制御したい方向け |
🧠 補足
.glb
内のアニメーション、ライト、カメラも読み込めます- QtQuick3D は基本的に
.glb
or.gltf
のドラッグ&ドロップでOK - もちろん
.glb
の動的読み込みも可能です(C++からModel::setSource()
)
✅ ご希望あれば
- Qt +
.glb
表示の プロジェクトテンプレート - C++ / QML 両方の スターターコード
.glb
アニメーション再生サンプル
なども提供できます!
QML派ですか?それとも C++で書きたい派?