Qt 3D相关的几个类的介绍

Qt 3D相关的几个类的介绍

View3D

提供了一个可以在其上渲染3D场景的2D表面。这个表面是一个Qt Quick项目,可以放置在Qt Quick场景中。有两种方法定义View3D中可视化的3D场景:如果你直接定义基于节点层次结构的项目的为View3D的子项目,那么这将成为View3D的隐式场景。通过使用importScene属性并将其设置为您想要可视化的场景的根节点,也可以引用现有的场景。这个节点不一定是View3D的祖先,你可以有多个View3Ds来导入相同的场景。这在View3D示例中得到了演示。如果View3D都有子节点,并且同时设置了importScene属性,那么这两个场景都会被渲染,就好像它们是同一场景中的兄弟一样。要控制场景的渲染方式,可以设置环境属性。SceneEnvironment类型有许多可以调整的视觉属性,如背景颜色,色调映射,抗锯齿等等。此外,为了在View3D中渲染任何东西,场景需要一个摄像机。如果场景中只有一个摄像头,那么这个会自动被选中。否则,可以使用camera属性来选择相机。摄像机决定场景的哪些部分是可见的,以及它们如何投射到2D表面上。默认情况下,3D场景将首先被渲染到屏幕外的缓冲区,然后在完成时与Qt Quick场景的其余部分合成。这提供了最大程度的兼容性,但可能对某些图形硬件产生性能影响。如果是这种情况,renderMode属性可以用来切换View3D如何被渲染到窗口中。

SceneEnvironment

定义了一组全局属性,用于显示场景

PerspectiveCamera

Camera定义了如何将3D场景的内容投影到2D表面上,比如View3D。一个场景需要至少一个摄像机来可视化它的内容。
它可以像场景中的任何其他空间节点一样定位和旋转摄像机。节点的位置和方向决定了摄像机在场景中的位置和它所面对的方向。相机的默认方向是沿着负Z轴的前向矢量和沿着正Y轴的上向矢量。

DirectionalLight

定向光从无限远的无法识别的光源向一个方向发出光。这与现实生活中阳光的作用方式相似。定向光具有无限的范围并且不会减弱。

SequentialAnimation

SequentialAnimation和ParallelAnimation类型允许多个动画一起运行。在SequentialAnimation中定义的动画一个接一个地运行,而在ParallelAnimation中定义的动画是同时运行的。

PointLight

点光可以描述为一个球体,从光的中心向各个方向发出强度相等的光。这与灯泡发光的方式类似。

SpotLight

聚光灯以锥形的形式向一个方向发射光,这是由圆锥角属性定义的。当接近圆锥角时,光强度减弱。光强度开始减弱的角度定义为innerConeAngle。两个角都有度数定义。
在innerConeAngle内部,聚光灯的行为与点光类似。在那里,光强按平方反比定律衰减。然而,淡出(和范围)可以通过constantFade, linearFade和quadraticFade属性来控制。光衰减用i计算。

猜你喜欢

转载自blog.csdn.net/tianlang3659/article/details/116457030