Qt Quick 3D - 搭建一个基本的3D场景

搭建一个基本的3D场景

1.quick3d模块导入

  1.1 需要在.pro中 添加 

 

  1.2 在main.qml中添加

 

 

2.qt creator 加载3d场景

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 {  //定义一个3d场景
        id: view3d
        width: parent.width
        height: parent.height
        anchors.bottom: parent.bottom
        camera: cameraPerspective     //绑定摄像机
        environment: sceneEnvironment //绑定环境

        SceneEnvironment {
            id: sceneEnvironment
            antialiasingMode: SceneEnvironment.MSAA           //这个属性控制渲染场景时应用的抗锯齿模式,具体参数取值,可F1查找帮助文档
            antialiasingQuality: SceneEnvironment.VeryHigh    //这个属性设置场景的抗锯齿级别。行为依赖于使用的antialiasingMode。当antialiasingMode属性设置为NoAA时,这个属性没有作用。
            backgroundMode: SceneEnvironment.Transparent     //该参数可设置 3d场景的背景
        }
        PerspectiveCamera {
            id: cameraPerspective
            x: -0
            y: 23.861
            eulerRotation.z: 0
            eulerRotation.y: -0
            z: 201.37027
            eulerRotation.x: -3.46366
            fieldOfViewOrientation: PerspectiveCamera.Horizontal
            clipNear: 1
            fieldOfView: 43
        }

        DirectionalLight { //灯光
            id: lightDirectional
            x: -1554.672
            y: -254.996
            brightness: 146
            eulerRotation.z: 55.92922
            eulerRotation.y: -61.62584
            eulerRotation.x: -52.99892
            z: -4.38876
        }

        Timer {
            id: timer
            interval: 30
            running: true
            repeat: true
            onTriggered: {
                defaultModel.eulerRotation.y += 1;
            }
        }

        Model {
            id: defaultModel
            source: "#Cube"  //#Cube是qt quick 3d自带的正方体
            materials: [defaultMaterial] //材质设置
            scale: Qt.vector3d(0.1, 0.1, 0.1)
            DefaultMaterial { //定义一个材质(注意一个模型如果不设置材质,啥也看不到)
                id: defaultMaterial
                diffuseColor: "red"
            }
        }
    }
}

以上是一个最简单的3d场景,并加载了一个qt自带的一个Cube,定时器自转的代码

 

3.Qt Designer Studio 加载3d场景

 

 

 

 

代码仓库链接:待上传

 

posted @ 2022-06-07 18:42  helloc14  阅读(433)  评论(0编辑  收藏  举报