如果我们想在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.15Window {width: 640height: 480visible: truetitle: qsTr("Hello World")View3D {id: view3Danchors.fill: parentenvironment: sceneEnvironmentSceneEnvironment {id: sceneEnvironmentantialiasingQuality: SceneEnvironment.HighantialiasingMode: SceneEnvironment.MSAA}Node {id: nodeDirectionalLight {id: directionalLight}PerspectiveCamera {id: cameraz: 15}Model {id: cubeModelsource: "test.mesh"DefaultMaterial {id: cubeMaterialdiffuseColor: "#4aee45"}materials: cubeMaterial}}}
}

Qt Quick 3D系列(一):加载3d模型相关推荐

  1. Qt和OpenGL:使用Open Asset Import Library(ASSIMP)加载3D模型

    Qt和OpenGL:使用Open Asset Import Library(ASSIMP)加载3D模型 翻译自:https://www.ics.com/blog/qt-and-opengl-loadi ...

  2. Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图

    Qt文档阅读笔记-加载HeightMap(高度图)构造3D地形图 QHeightMapSurfaceDataProxy:是Q3DSurface的一个基本代理类. 他是专门加载高度图. 高度图是没有X, ...

  3. qt opengl 加载3d模型(obj格式)

    和一般c++程序加载3d模型一样,解读出数据内容,再用一个常规的着色程序就可以了. 我实现的效果如下,采用的免费模型 实现思路和前面的略有不同,就是把自己生成顶点.纹理.法线的过程变成从文件读取了. ...

  4. babylonjs 分部加载模型_使用 Babylon.js 在 HTML 页面加载 3D 对象

    五一 Windwos Blogs 推了一篇博客, Babylon.js v3.2 发布了.因为一直有想要在自己博客上加载 3D 对象的冲动,这两天正好看到了,就动手研究研究.本人之前也并没有接触过 W ...

  5. 首次使用Cesium加载3D数据成功

    接此: https://blog.csdn.net/bcbobo21cn/article/details/111305160 `代码同前文:加载不同的数据,都不能加载出来: var palaceTil ...

  6. 首次使用Cesium加载3D数据不成功

    接此: https://blog.csdn.net/bcbobo21cn/article/details/110454547 参阅相关教程:Cesium加载3D数据是通过3D Tiles进行: 3D ...

  7. three.js加载3d模型_基于WebGL的3D技术在网页中的运用 ThingJS 前端开发

    Three.js.ThingJS这些引擎库可以加载3D制作软件的模型,大幅度提高了制作效率,改变WebGL开发困难的局面,让Web开发者享受便捷的3D开发服务.三者的难度对比如下: ThingJS(框 ...

  8. threejs加载3D模型例子

    加载3D模型 首先要引入ColladaLoader加载器,Collada是一个3D模型交换方案,即不同的3D模型可以通过Collada进行相互转换,言外之意,threejs可以使用Collada将3D ...

  9. Android加载3D模型的学习笔记

    篇章目标要点 3D模型的使用最早是在游戏领域广泛使用的,随着技术的发展,其他工业领域也在逐步引入3D相关的技术设计.本文是结合初学3D模型的读取和显示总结的心得,本文作为序列的第一篇介绍,重点会阐述3 ...

最新文章

  1. 女博士生爱上中专男,父亲直言自己只能打50分,你怎么看恋人学历差距大?...
  2. 算法工程师特大福利 | 不用买云了!这里GPU计算资源免费送!
  3. 优秀平面设计师必须拥有的设计思维
  4. linux的wc是什么命令,linux中的wc命令
  5. CheckBox in ListView
  6. python输入三个整数、输出最大的数_题目:使用Python编程,输入三个整数x,y,z,请把这三个数由小到大输出...
  7. 张亚勤称云计算进入2.0时代,百度首推端云一体化芯片,开放110+AI能力
  8. tf.GraphKeys,tf.add_to_collection() 与 tf.get_collection()
  9. win10双显卡怎么切换amd和英特尔_win10双显卡怎么切换
  10. Windows Server 2008 Active Directory建置實務(附CD)
  11. windows 安装PyHook3
  12. 变更日志 批准的变更请求 收尾流程 原型法 名义小组 习题
  13. 蜜雪冰城“土”里刨金
  14. 中央民族大学计算机考研2020,2020年中央民族大学856计算机学科专业综合考研复习资料...
  15. C++实现复数矩阵求逆 matlab inv
  16. 计算机桌面设置怎么还原,怎么把电脑桌面还原
  17. 华为有国产芯片的服务器吗,华为、飞腾扛旗,国产服务器芯片有望突破!ARM要替代x86?...
  18. 曝光补偿,白增黑减理论
  19. 考研逻辑整理 - 负判断、联言判断和联言推理
  20. 红蓝攻防演练过程中零失陷经验分享

热门文章

  1. 2015,我的投资理财策略(股权众筹+P2P网贷+活期理财)
  2. Kubernetes使用vSphere存储 vSphere-CSI
  3. dw html设置字体颜色,字体颜色怎么设置-dreamweaver编辑字体大小、颜色样式方法...
  4. 摩托罗拉携一万块钱的新手机重回江湖了
  5. 睿智的目标检测8——yolo3的loss组成详解
  6. 湖南师大教科院民办幼儿园园长规范办园培训班在湖南智慧教育装备展示体验中心参观学习
  7. SQL基础教程MICK版 ···第五章总结
  8. 机器人常用名词解释(不全)
  9. php怎么运行网页_「Dev」 - PHP运行环境
  10. 小米空气净化器有用即将面世