Qt Quick 3D系列(一):加载3d模型

       如果我们想在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
            }
        }
    }
}

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵喵叫的猴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值