Qt Quick 3D

img

随着 Qt6 的推出,Qt Quick 3D 逐渐稳定和好用起来

之前很多朋友都是把 Qt3D 当成 Qt 的 3D 解决方案的,

现在有了 Qt Quick 3D,很推荐切换到这个新模块来

目前这个模块只提供了 QML 的接口(虽说晚一些会提供 C++ API)

以前我一直很排斥使用 Qt Quick / QML,但最近项目上用到了

试用后感觉特别棒,用 QML 搭建一个运动的 3D 场景真的太简单了

img

img

上图是 three.js 做的卡通城市,我们用 Qt Quick 3D 可以很容易地实现同样效果

img

使用 Qt Quick 3D 的话最低需要 Qt 5.15 的版本

我们先创建一个空的 Qt Quick 工程,名字叫 demo

img

然后修改 pro 并新建 qml.qrc 资源文件

main.cpp 如下

新建 main.qml 加入 qml.qrc

新建 scene3d.qml 加入 qml.qrc

此时,可以用设计模式打开 scene3d.qml 文件,用 3D 界面修改 qml

img

操作方式很简单,按住 Alt 键 后拖动鼠标左键,可以移动视角

按住 Alt 键后拖动鼠标中键,可以整体平移

按住 Alt 键后拖动鼠标右键 或者 滚动鼠标滚轮,可以放大缩小视角

img

通过左侧的 Assets 选项,可以将 3D 模型(比如 fbx 格式)导入工程中,

QtCreator 会自动调用 Qt 安装目录下的 balsam.exe 工具

生成 qml 代码文件 和 mesh、png 资源文件

img

3D素材是从网上下载的 Unity3D 的 SimplePoly City - Low Poly Assets.unitypackage

通过 Export FBX 插件导出的 fbx 文件,素材文件我传到了百度网盘

提取码:wedv

img

import 后,我们把 asset_imports\Quick3DAssets\Building_Chicken_Shop 目录下的

maps、meshes 文件夹 及 Building_Chicken_Shop.qml 拷贝到 scene3d.qml 同级目录

然后修改下 scene3d.qml 的代码,编译后就能看到窗口中的 3D 模型了

通过 QQ3D 显示 3D 模型

img

同理,我们若修改下模型,添加下动画和鼠标控制,就能做出各式各样的 3D 界面了

img

Qt Quick 3D 就是这样,能让我们开发 3D 界面更加灵活和便捷

上图的代码我也一并传到百度网盘了

提取码: 8edb

 

希望能有越来越多的人喜欢上 Qt Quick 3D

 

To be continued ....