Version: 6000.3
语言: 中文
相机视图简介
计算远距离视锥体的大小

使相机透视倾斜

默认情况下,视锥体围绕相机在场景中创建特定视点图像的组件。输出要么绘制到屏幕上,要么作为纹理捕获。更多信息
请参阅术语表
的中心线,但不一定是。您可以使视锥体倾斜,这意味着一侧与中心线的角度小于另一侧。

这使得图像一侧的透视看起来更加浓缩,给人的印象是观看者非常靠近该边缘可见的物体。如何使用这一点的一个例子是赛车游戏;如果视锥体的底部边缘被压平,则在观看者看来它们离道路更近,从而突出了速度感。

斜视锥体,其中底部与摄像机中心线的角度小于顶部。
斜视锥体,其中底部与摄像机中心线的角度小于顶部。

设置视锥体倾斜度

尽管 摄像机(Camera) 组件没有专门用于设置视锥体倾斜度的功能,但你可以通过启用摄像机的 物理摄像机(Physical Camera) 属性并应用镜头移位,或者添加脚本来更改摄像机的投影矩阵来实现。

注意:在内置渲染管线(Render Pipeline) 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息
请参阅术语表
,使用斜视锥体的摄像机只能使用 前向(Forward)渲染路径渲染管道用于渲染图形的技术。选择不同的渲染路径会影响照明和着色的计算方式。某些渲染路径比其他路径更适合不同的平台和硬件。更多信息
请参阅术语表
.如果您的相机设置为使用延迟着色(Deferred Shading) 内置渲染管线中的渲染路径,对可能影响游戏对象的光源数量没有限制。所有光源都是按像素计算的,这意味着它们都与法线贴图等正确交互。此外,所有光源都可以有饼干和阴影。更多信息
请参阅术语表
渲染路径,并使其视锥体倾斜,Unity 强制该摄像机使用前向渲染一种渲染路径,用于在一个或多个通道中渲染每个对象,具体取决于影响对象的光源。光源本身也因前向渲染而异,具体取决于其设置和强度。更多信息
请参阅术语表
路径。

使用镜头移位设置视锥体倾斜度

启用摄像机的 物理摄像机(Physical Camera) 属性以显示 镜头移位(Lens Shift) 选项。您可以使用这些按钮沿 X 轴和 Y 轴偏移摄像机的焦点中心,从而最大限度地减少渲染图像的失真。

移动透镜会减小与移动方向相反的一侧的视锥体角度。例如,当你向上移动镜头时,视锥体底部与摄像机中心线之间的角度会变小。

通常,摄像机的视锥体是对称的(左),这意味着中心线两侧的角度相等。移动透镜(右)使视锥体倾斜,这意味着一侧的角度比另一侧的角度小。
通常,摄像机的视锥体是对称的(左),这意味着中心线两侧的角度相等。移动透镜(右)使视锥体倾斜,这意味着一侧的角度比另一侧的角度小。

有关物理摄像机选项的更多信息,请参阅有关物理摄像机的文档。

使用脚本设置视锥体倾斜度

以下脚本示例演示了如何通过更改摄像机的投影矩阵来快速实现斜视锥体。请注意,您只能在游戏运行 Play 模式时看到脚本的效果。

using UnityEngine;
using System.Collections;

public class ExampleScript : MonoBehaviour {
    void SetObliqueness(float horizObl, float vertObl) {
        Matrix4x4 mat  = Camera.main.projectionMatrix;
        mat[0, 2] = horizObl;
        mat[1, 2] = vertObl;
        Camera.main.projectionMatrix = mat;
    }
}

C# 脚本示例

无需了解投影矩阵的工作原理即可利用这一点。horizObl 和 vertObl 值分别设置水平和垂直倾斜的量。值为零表示没有倾斜。正值将视锥体向右或向上移动,从而使左侧或底部变平。负值向左或向下移动,从而使视锥体的右侧或顶部变平。如果将此脚本添加到摄像机并将游戏切换到场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
游戏运行时查看;摄像机视锥体的线框描述将随着你改变 horizObl 和 vertObl 的值而改变inspector一个 Unity 窗口,显示有关当前所选游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
请参阅术语表
.任一变量中的值为 1 或 –1 表示视锥体的一侧与中心线完全平坦。尽管很少需要使用此范围之外的值,但这是可能的。

其他资源

相机视图简介
计算远距离视锥体的大小