如果我们想在QML中使用3D且你之前没有三维程序开发的基础,使用Qt Quick 3D是个不错的选择,下面我介绍如何使用Qt Quick 3D加载3d模型。注意:Qt Quick 3D从Qt 5.15之后开始被添加到Qt中,三维模型使用了.mesh格式的模型文件,关于如何将3D场景(如.obj)转换为.mesh,可参考我的博客:Qt Quick 3D中将3D场景(如.obj)转换为.mesh

步骤一:在新工程中添加模块:

import QtQuick3D 1.15

步骤二:切换到Qt Creator的设计师模块(此处是为了介绍可视化开发,手撸代码也是可以的)

选择设计师模式为“3D Preset”,如图:

        此时设计师界面中显示了类似于C4D的三维编辑器,使用滚轮可以缩放,按住Alt后使用鼠标左键可以旋转查看的位置。

步骤三:在左侧的控件选择栏中选择并拖入View3D模块

        View3D模块拖入后自带了一个简单的3D模板,在3D Editor中可看到模板样式,如图:

模板结构如下:

SceneEnvironment:渲染的环境相关设置

Node:3D的节点,类似于quick中的Item。便于对多个控件单一的同一控制

DirectionalLight:光源

PerspectiveCamera:远景相机(显示的3D模型根据相机的远近进行缩放)

Model:模型,用于显示加载3D模型

DefaultMaterial:模型材质设置

 步骤四:加载自定义的3D模型

        在qrc资源中添加模型文件“test.mesh”并修改Model的模型源路径source,该模型由一个.obj转换而成,转换方法为:Qt Quick 3D中将3D场景(如.obj)转换为.mesh,调整镜头位置,运行程序如下:

示例程序github源码:https://github.com/zjgo007/QtQuick3D/tree/master/Show3dModel

下一篇:Qt Quick 3D系列(二):鼠标控制3D模型旋转缩放 

主要QML源码:

import QtQuick 2.15

import QtQuick.Window 2.15

import QtQuick3D 1.15

Window {

width: 640

height: 480

visible: true

title: qsTr("Hello World")

View3D {

id: view3D

anchors.fill: parent

environment: sceneEnvironment

SceneEnvironment {

id: sceneEnvironment

antialiasingQuality: SceneEnvironment.High

antialiasingMode: SceneEnvironment.MSAA

}

Node {

id: node

DirectionalLight {

id: directionalLight

}

PerspectiveCamera {

id: camera

z: 15

}

Model {

id: cubeModel

source: "test.mesh"

DefaultMaterial {

id: cubeMaterial

diffuseColor: "#4aee45"

}

materials: cubeMaterial

}

}

}

}

文章链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: