利用Qt Quick 3D将Blender中导出的模型资源添加至Quick3D项目中

#初步接触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运行,效果图如下

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值