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 は基本的に
.glbor.gltfのドラッグ&ドロップでOK - もちろん
.glbの動的読み込みも可能です(C++からModel::setSource())
✅ ご希望あれば
- Qt +
.glb表示の プロジェクトテンプレート - C++ / QML 両方の スターターコード
.glbアニメーション再生サンプル
なども提供できます!
QML派ですか?それとも C++で書きたい派?
