您的位置:首页 > 移动开发 > Unity3D

相机

2018-02-21 23:34 127 查看
原文链接:相机

在Unity中通过三维空间中排列移动物体构建场景。由于屏幕显示是二维的,需要用一种方式捕获视图并且进行扁平显示。这可以通过相机完成。

相机定义场景空间中的一个视图。这个物体的位置定义了视点,Z轴(前进轴)和Y轴(向上轴)分别定义视图的方向和屏幕的顶端。相机组件也定义了落入视图中区域的大小和形状。设置好这些参数之后,相机会将当前它“看”到的视图显示到屏幕上。相机移动和旋转时,显示的视图也会相应的移动和旋转。

透视相机和正摄像机



透视模式(左)和正射模式(右)下的同一个场景

现实中的相机,或者就是人眼,看到物体的方式,会使物体出现近大远小的现象。著名的透视效果在艺术和计算机图像中广泛使用,对于创建真实场景非常重要。Unity支持透视相机,但是因为一些原因,不想要在渲染视图时使用这种效果。比如,想要创建一张地图或者信息展示,而不是想要看起来和真实世界物体相近的效果。随着距离增加,物体大小不会变小的相机被称为正射的,Unity相机也支持这个选项。显示场景的透视和正射模式被称为相机投影。

视图区域的形状

投影和正射相机都有最远距离的限制。最远距离限制使用垂直于Z轴(前进轴)方向的平面定义。这个平面被称为远裁切平面(far clipping plane),因为与相机的距离超过这个距离的物体会被“裁剪”(不会进行渲染)。相应的有一个距离相机近的近裁切平面(near clipping plane)。可以看到的距离范围在两个平面之间。

没有透视的情况下,不论远近物体显示的大小时一样的。也就是说一个正射相机的视图区块时一个位于两个裁切平面之间的长方体。

使用透视时,随着与相机的距离增大,物体看起来会变小。场景的可视部分的长宽随着距离增加而变大。因此透视相机的视图区块是一个顶点位于相机地基位于远裁切平面的金字塔形状,而不是立方体。由于顶部被近裁切平面截断,因此这个形状不完全是一个金字塔。这种截断的金字塔形状被称为视锥(frustm)。由于它的高度不是常数,视锥使用它的宽度和高度的比值(被称为长宽比 aspec ratio)和顶点处高低面的角度定义(被称为视野 field of view FOV)。详细的解释查看页面理解视锥

相机视图的背景

对于室内场景,相机可能总是完全被建筑物、洞穴或其他结构的内部物体填满。当在室外时,在物体之间将会由大量空白区域没有任何东西。这些背景区域一般表示天空,太空,或者水下场景模糊的深度。

相机不能完全不管背景,必须使用一些东西填充这块空白区域。最简单的方式是在背景上渲染场景之前将背景设置成单色。可以用属性窗口或者脚本将相机的背景属性设置成想要的颜色。一个较复杂的方式是使用一个天空盒,在室外场景下很合适。正如它的名字暗示的,天空盒很像一个内衬了天空图像的“盒子”。相机放置在盒子的中心,可以从所有方向看到天空。相机旋转时能看到天空的不同位置,但是移动时相机仍然在盒子中心(因此相机不能“靠近”天空)。天空盒在场景中所有物体后面渲染,因此他代表了无限远距离的一个视图。最常用的是在标准室外场景表示天空,但是这个盒子实际上是完全包围相机的,甚至是地下。也就是说可以用天空盒来表示场景的一部分(延伸到地平线的地面)或者太空和水下场景的所有方向的视图。

也可以简单地设置光照窗口的天空盒属性来为场景添加一个天空盒。关于创建自己的天空盒的更多细节查看这个页面
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity manual graphics