一般理解成一个摄影棚,人在里面用照相机给物体拍照,拍的照片显示在画面中。
import QtQuick.Window
import QtQuick3D
import QtQuick
Window {
width: 640
height: 480
visible: true
title: qsTr("Hello World")
View3D {//显示3D的舞台(摄影棚)
id: _view
anchors.fill: parent
environment: SceneEnvironment {//environment设置渲染场景
//SceneEnvironment为场景的渲染方式定义了一组全局属性。
clearColor: "red"//环境颜色
backgroundMode: SceneEnvironment.Color
antialiasingMode: SceneEnvironment.MSAA
antialiasingQuality: SceneEnvironment.High
}
camera: camera
PerspectiveCamera {//定义用于查看三维场景内容的透视摄影机(摄像机)。
id: camera
position: Qt.vector3d(0, -900, 800)//摄像机位置
eulerRotation.x: 45//x轴旋转45度
}
MouseArea {
anchors.fill: parent
onClicked: (mouse)=> {
let ret = _view.pick(mouse.x, mouse.y)
if(ret.objectHit !== null)
ret.objectHit.materials[0].diffuseColor =
Qt.rgba(Math.random(),Math.random(), Math.random(), 1.0)
}
}
DirectionalLight {//场景灯光
eulerRotation: Qt.vector3d(1, 0, 0)
castsShadow: true
brightness: 3
}
Model {//物体(拍照对象)
id: _sphere
source: "#Sphere"//球
z: 300
pickable: true
scale: Qt.vector3d(2, 2, 2)
materials: DefaultMaterial {//定义三维材质材质
diffuseColor: Qt.rgba(0.6, 0.5, 0.2, 1.0)//着色
diffuseLightWrap:0//
}
}
Model {
source: "#Rectangle"
pickable: true
scale: Qt.vector3d(10, 10, 1)
materials: DefaultMaterial {
diffuseColor: Qt.rgba(0.7, 0.2, 0.2, 1.0)
}
}
}
}
在QML中,View3D是用于展示和演示3D场景的组件,它是QtQuick3D部分的一部分。View3D允许开发者在Qt Quick应用程序中嵌入和渲染3D物体和场景。
View3D的作用包括但不限于以下几个方面:
1. 3D场景展示:View3D用于展示3D场景,将渲染的结果显示在窗口或其他绘图表面上。开发者可以通过设置各种属性来控制场景的呈现,如相机视角、背景色、清除模式等。
2. 相机控制:View3D提供了用于控制相机位置和视角的属性和方法。开发者可以通过设置相机的位置、方向、缩放等属性来调整视角,并可以使用动画或交互操作来实现相机的平移、旋转、缩放等动作。
3. 光照与阴影:View3D支持设置光照和阴影的属性以实现逼真的渲染效果。开发者可以设置灯光的位置、颜色、强度等属性,选择光照模型(如兰伯特、漫反射、镜面反射等),以及开启或关闭阴影效果。
4. 材质与纹理:View3D支持设置物体的材质和纹理属性。开发者可以设置物体的颜色、反射、透明度等材质属性,以及为物体添加各种纹理(如贴图、法线贴图、环境贴图等),以实现更真实的外观效果。
5. 动画与交互:View3D支持通过动画和交互来控制和展示3D物体的动态效果。开发者可以使用QML的动画系统来创建物体的平移、旋转、缩放等动画效果,也可以通过交互操作(如鼠标事件、触摸事件等)来实现用户与3D场景的交互。
View3D的属性包括但不限于以下几个常用属性:
1. scene: 设置View3D所使用的3D场景的根实体(Entity)。
2. camera: 设置相机与其参数,包括位置、方向、视场角等。
3. backgroundColor: 设置背景颜色。
4. clearColor: 设置颜色用于清除屏幕帧缓冲。
5. renderTarget: 设置要渲染的目标表面。
6. shadowsEnabled: 设置是否启用阴影效果。
7. shadowMapSize: 设置阴影贴图的大小。
8. environment: 设置场景环境(SceneEnvironment),用于配置光照、雾效等渲染参数。
总结来说,View3D是用于展示和渲染3D场景的组件,可以通过设置属性来控制相机、背景色、材质、光照等,用于实现功能丰富的360度观察和交互式呈现的3D界面。