12、Qt Quick 3D-----基础场景

基础场景

QtQuick3D场景由几个标准元素组成
View3D是表示整个3D场景的顶级QML元素
SceneEnvironment控制场景的渲染方式,包括背景或天空盒的渲染方式
PerspectiveCamera是场景中的摄影机,也可以是OrthographicCamera,甚至是自定义投影矩阵的自定义相机
场景中包含三维空间中对象的模型实例和灯光
 

import QtQuick
import QtQuick.Window
import QtQuick3D

Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")

    View3D{
        anchors.fill: parent
        environment: SceneEnvironment{
            clearColor: "#222222"
            backgroundMode: SceneEnvironment.Color
        }

        Model{
            position:Qt.vector3d(0,0,0)
            scale:Qt.vector3d(1,1.5,1)
            source:"#Cone"
            materials:[
                PrincipledMaterial{baseColor: "yellow"}
            ]
        }

        Model{
            position: Qt.vector3d(80,0,50)
            source:"#Sphere"
            materials: [
                PrincipledMaterial{baseColor: "green"}
            ]
        }

        Model{
            position:Qt.vector3d(-80,0,50)
            source:"#Cube"
            materials: [PrincipledMaterial{baseColor: "white"}]
        }
        Model{
            position:Qt.vector3d(0,-50,0)
            eulerRotation.x:-90
            scale:Qt.vector3d(4,4,4)
            source:"#Rectangle"
            materials: [PrincipledMaterial{baseColor: "red"}]
        }

        DirectionalLight{
            eulerRotation.x:-20
            eulerRotation.y:100

            castsShadow: true
        }
        PointLight{
            position:Qt.vector3d(100,100,100)
            castsShadow: true
        }

        SpotLight{
            position:Qt.vector3d(50,200,50)
            eulerRotation.x:-90
            brightness: 5
            ambientColor: Qt.rgba(0.1,0.1,0.1,1)//环境光
            castsShadow: true //显示阴影
        }

        PerspectiveCamera{
            position: Qt.vector3d(0,200,300)
            Component.onCompleted: lookAt(Qt.vector3d(0,0,0))
        }
    }
}

执行后的效果图

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

weixin_41392061

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

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

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

打赏作者

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

抵扣说明:

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

余额充值