一起养成写作习惯!这是我参与「掘金日新计划 4 月更文挑战」的第 13 天,点击查看活动详情。
博客首页:何名取 的个人主页 – 文章 – 掘金 ()
欢迎关注点赞收藏⭐️留言
❤️期待一起交流!
作者水平很有限,如果发现错误,求告知,多谢!
有问题可艺术漆私信交流!!!github中文官网网页
航母艺术活动模型
前言
昨天看到人民海军航母宣传片,震艺术设计撼之际不由得心生向往。今天在网上疯狂的找航母的资料看,突然联想到QML也可以做出3D效果,就抱着尝试的心去搞了一波,取得了一些小成果送给小伙伴们。模艺术字型不是我自己画的,我可没这艺术天赋,是在网上找的资源。找到模型后将其进行了处理,并将其QtQuick3D绘制到窗口上进行动态展示。

素材制作
获取到的模型giti无法直艺术设计接使用,需要先进行加工。
- 找到Qt安装目录下./bin/balsam.exe。Qt艺术字体转换器在线转换器5.15以后的版本各个编译环境的文件目录是分开的,在此处要注意运行时选择的编译器套件是哪个,就在这里选用哪个文件目录下的balsam.exe。比如我在本次项目中选用的套件是MinGW-32bit,使用balsam.exe的时候也要使用相应的编译环境目录下的balsam.exe。
![]() |
![]() |
---|
- 将航母模型的.obj文件拖到balsam.exe上完成git教程处理。拖动后gitlab会自动在源.obj文件的目录下生成两个文件,分别是meshes文件夹和对应的github中文官网网页.qml文件。

- 将得到的megitlabshes文件夹和.qml文件一同复制到自己创建的工程目录下。meshes文件夹中的所有文件是QtQuick3D所需的模型文件,对应的.qml文件则可以直接作为代码中的模型子类进行使用。

3D展示
设计思路
添加模块
本节主要使用QtQuick3D的来进行实现,在.qml文件中艺术签名设计导入相应的模块。
import QtQuick3D 1.15
除了要导入QtQuick3D模块,还需要将上面素材制作得到的模型文件与.qml添加到工程中。整个工程的文件目录如下:

创建根结点
首先创建根结点,航母模型的创建和github相机的创建都在根艺术字结点中进行。根结点中包括光源、模型和相机。
Node { id: standAloneScene //! [rootnode] }
创建光源
在本节中选用自然光,将ambientColorgit命令属性设置为全1即可。
DirectionalLight { ambientColor: Qt.rgba(1.0, 1.0, 1.0, 1.0) }
创建航母模型
上述的素材制作中得到的.qml文件中实现了航母的模型绘制,艺术签名在此处可以直接进行使用。使用PrinciplegitidMaterial类艺术赏析型将模型进行金属化渲染。
Hm2{ id:liap y: -100 scale: Qt.vector3d(50, 50, 50) PrincipledMaterial { baseColor: "#41cd52" metalness: 0.75 roughness: 0.1 specularAmount: 1.0 indexOfRefraction: 2.5 opacity: 1.0 } PropertyAnimation on eulerRotation.y { loops: Animation.Infinite duration: 5000 to: 0 from: -360 } }
scale: Qt.vector3d(50, 50, 50)//x、y、z表示将3D模型艺术签名的x、y、z刻度值设置为50。
创建相机gitee
在这里我们创建了三个相机giti来观察航母模型,分别是左侧正交相机,顶部正交相艺术签名设计机和正面正交相机。相当于使用了三视图的方式去观察模型,将其展示在视图中。
// Stationary orthographic camera viewing from the top OrthographicCamera { id: cameraOrthographicTop y: 600 eulerRotation.x: -90 } // Stationary orthographic camera viewing from the front OrthographicCamera { id: cameraOrthographicFront z: 600 } // Stationary orthographic camera viewing from left OrthographicCamera { id: cameraOrthographicLeft x: -600 eulerRotation.y: -90 }
创建视图
整个模型视图使用四个区域来进行模型的展示。
- 左上区域,展示航母正面视角。
- 右上区域,展示航母三视角相交的旋转效果。
- 左下区域,展示航母顶部视角。
- 右下区域艺术,展示航母左侧视角。
由于航母的展示采用旋艺术漆转效果,左上区域和右下区域可能会艺术漆产生相似的画面,这是因为从正面旋转90就是左侧面。
此处只展示左上区域部分的代码。区域由Rectangle作为基础,包含背景图Git片、3D模型和文字标签。
//! [views] // The views Rectangle { id: topLeft anchors.top: parent.top anchors.left: parent.left width: parent.width * 0.5 height: parent.height * 0.5 color: "SkyBlue" border.color: "black" Image{ anchors.fill: parent source: "qrc:/bg1.png" fillMode: Image.PreserveAspectCrop } View3D { id: topLeftView anchors.fill: parent importScene: standAloneScene camera: cameraOrthographicFront } Label { text: "Front" anchors.top: parent.top anchors.left: parent.left anchors.margins: 10 color: "#222840" font.pointSize: 14 } } //! [views]
效果展示

感谢❤️
gitee.com/heyufeng471…
评论(0)