摄像头

要查看 3D 场景的内容,需要摄像头。摄像头定义了将 3D 场景内容投影到 2D 坐标空间的方式,然后可以用于 2D 表面。当场景中存在摄像头时,可以使用它来指定在3D 视图中显示的内容。

"Qt Quick 3D components in Components"

要将摄像头组件添加到您的 UI 中,请执行以下操作之一

  • 组件 > Qt Quick 3D 拖动摄像头组件到 3D 视图或到导航器 > 视景 > 场景
  • 3D 视图中单击右键,并在上下文中选择 创建 > 摄像头

    注意:您只能以这种方式创建 透视摄像头正交摄像头

如果在 组件 中找不到摄像头组件,按照添加和删除模块中所述,将 QtQuick3D 模块添加到项目。

以下组件确定场景中的相机投影

  • 透视摄像头 是标准摄像头类型,由于距离远处的对象看起来较小,因此提供了场景的逼真投影。它使用视野和近截距面和远截距面来指定投影。
  • 正交摄像头 以无透视的方式渲染所有内容。它非常适合渲染 2D 元素,因为您的图像在屏幕上保证是正确大小的,并且您可以使用组件的 z 位置将它们相对于摄像头更靠近或更远离摄像头(z 排序)而不会产生透视误差。
  • 视锥摄像头 通过设置摄像头视锥体顶部和底部或左侧和右侧边缘之间的角度数,来启用对视锥体定义的更精细控制。这在创建非对称视锥体时很有用。
  • 相机自定义提供对创建投影矩阵的完全控制。

您可以在场景中放置相机并设置其面对的方向。相机的默认方向是向前矢量指向+z轴向上,向上方向矢量指向+y轴向上。您可以对相机及其父组件应用变换,以定义您的相机精确的位置和面对的方向。

确定相机投影的第二个部分是定义相机的视角场(即视锥体),它确定了场景的哪些部分是可见的,以及它们如何可见。

您可以在属性视图中编辑相机属性。

"Properties view for Perspective Camera"

设置相机视野

注意:如果您在创建项目时选择Qt 5作为目标 Qt 版本,则相机属性会有所不同。

注意:正交相机没有视野属性。

通过获取一个视锥体(即平行平面的截断),可以得到相机视锥体(即摄像头或眼睛对矩形视口通常会有的视锥体)。该锥体的形状取决于正在模拟的摄像头镜头。通常,它是一个切顶的矩形金字塔。

垂直于观察方向的切视锥体的平面称为近平面远平面。位于近平面之前或远平面之后的部分不会被绘制。

剪切近面剪切远面属性确定近平面和远平面的位置。我们建议您将它们放置得尽可能接近,以优化深度准确性。组件在像素级别而不是元素级别被裁剪。这意味着一个穿过平面的模型可能只会部分渲染。

视野(FOV)属性指定相机视锥体边缘之间的角度数。该值越大,您的场景中的3D感越强。默认情况下,FOV方向属性设置为使用垂直FOV。此值是相机视锥体顶部和底部边缘之间的角度数。

FOV方向属性指定视野的垂直(默认设置)或水平方向。水平视野确定相机视锥体左边和右边边缘之间的角度数。当视野方向设置为垂直时,它会根据场景的纵横比自动计算。您可以将方向设置为水平,以便将FOV值从Maya和Blender等默认使用水平FOV的图形工具中转换过来。

水平放大垂直放大属性确定相机视锥体的水平和垂直放大倍数。

注意:水平放大垂直放大属性在Qt 5中不可用。

视锥体剪裁属性确定是否将被视锥体外部的对象剪裁,这意味着它们不会被传递到渲染器。

注意:视锥体剪裁属性在Qt 5中不可用。

默认值旨在使得任何在相机视野中的物体都被渲染。除了特殊的剪切效果之外,您可能需要调整这些值,以便更好地包含您的内容,以获得更好的环境遮挡效果或使用相机深度缓冲区效果(例如景深效果)的结果。

设置相机以观察对象

将相机设置成观看特定物体可能有用,例如,如果您想创建电影效果或使相机跟随用户控制物体。

设置相机以观察物体

  1. 导航器 中,选择相机。
  2. 属性 > 观看节点,选择相机应观察的物体。

当您将相机设置成观察物体时,相机会自动旋转以指向分配的物体,即使物体或相机移动。旋转仅在x轴和y轴周围发生。

在特定Qt许可证下可用。
了解更多信息。