#初步接触Qt Quick 3D,以下内容为博主自己总结,不周之处敬请指正。
步骤一:将.obj/.dae文件转化成.mesh文件
使用Qt自带的转换程序是不错的选择。在Qt安装目录下的./bin目录下有名为“balsam.exe”的应用,如图。

将Blender中的三位模型导出为.obj格式。将.obj文件拖到文件夹中balsam.exe上打开,如图。

此时,在.obj原文件夹中生成一个meshes文件夹和一个原文件同名的.qml文件(初始化了该mesh的使用方法,本例为Cube.qml,meshes文件夹中存放了cube.mesh文件)。

步骤二:新建一个Qt Quick项目

build system选择CMake。

Details中,选择Qt 6.2(我的默认是6.15.x)。

将步骤一中生成的meshes文件夹和.qml文件复制到新建的项目目录中。
步骤三:改写CMakeLists.txt
在项目结构中找到此文件,双击进入

要使用Qt Quick项目中的文件,我们需要将它们添加到项目中。这是在CMakeLists.txt文件中完成的。在qt_add_qml_module宏中。

qt_add_qml_module是一种用于向Qt项目添加QML模块的CMake函数。它的作用是为项目中的一个或多个QML文件生成与之对应的C++代码,并将其打包成一个动态链接库(DLL),使得该QML模块可以在Qt应用程序中进行加载和使用。
在使用qt_add_qml_module函数时,需要指定以下参数:
NAME:QML模块的名称。
VERSION:QML模块的版本号。
SOURCES:包含QML文件的源文件列表。
RESOURCES:包含QML模块所需资源(如图像、音频等)的资源文件列表。
QML_FILES:包含QML文件的列表。如果SOURCES列表中包含了*.qml文件,则无需指定此参数。
URI:QML模块的唯一标识符,用于在QML中引用该模块。
DESTINATION:生成的动态链接库的输出目录。
DOC:QML模块的文档字符串。
PLUGIN_OPTIONAL:指定是否将QML模块作为可选插件。
本例可以改写成如下,将文件添加到QML_FILES和RESOURCES部分,如下所示。
qt_add_qml_module(appuntitled
URI untitled #untitled是项目名称
VERSION 1.0
QML_FILES main.qml Cube.qml
RESOURCES meshes/cube.mesh
)
步骤四:编辑main.qml文件,引入.mesh文件
import QtQuick
import QtQuick3D
Window {
width: 640
height: 480
visible: true
title: qsTr("My Cube")
View3D {
anchors.fill: parent
environment: SceneEnvironment {
clearColor: "#222222"
backgroundMode: SceneEnvironment.Color
}
Model {
id: cube
source: "meshes/cube.mesh"
position: Qt.vector3d(0, 0, 0)
scale: Qt.vector3d(2, 2, 2)
materials: [ DefaultMaterial { diffuseColor: "yellow"; } ]
}
PerspectiveCamera {
position: Qt.vector3d(10, 5, 15)
lookAtNode:cube
}
DirectionalLight {
eulerRotation.x: -20
eulerRotation.y: 20
castsShadow: true
}
}
}
按住Ctrl+r运行,效果图如下
