Genesis-3D学习手册——15.摄像机

来源:互联网 发布:mac chrome 网银插件 编辑:程序博客网 时间:2024/04/29 07:36

摄像机

相机即玩家在游戏里的眼睛,将游戏世界所见呈现出来的一个必要部件。想要游戏能够呈现到屏幕上,你至少需要一个相机,当然要调整好角度、裁剪面,否则就成了井底蛙看到的会很狭隘。为了达到更好的体验效果,可以编写脚本在游戏运行期间控制相机,这里Genesis已经为大家准备好了一个可用的FreeActor.cs脚本,具体参数可在脚本中调整。

相机对于将你的游戏显示给玩家是必不可少的。它们可以被定制、被脚本化、或被父子化以实现几乎任何可以想象的效果。对于一个益智游戏,你要保持相机处于静态显示全部视角。对于第一人称射击游戏,你应该将相机作为玩家角色的子对象,并将其放置在与角色的眼睛等高水平上。对于一个赛车游戏,你可能更希望让相机跟随玩家的车辆。


 

投影方式切换摄像机的投射方式      透视透视模式,采用完全透视的方式渲染      正交正交模式,采用正交模式的方式渲染,也就是没有透视感的方式均匀渲染视野摄像机的角度参数决定视野范围,这里指沿着摄像机本地坐标Y轴的张角,范围在1-179之间深度图是否渲染深度图。前向渲染中关闭深度图能够提高渲染效率,如关闭深度图请确保深度图不被使用(如动态阴影,高级水效,后处理等),否者可能导致渲染效果异常。裁剪面摄像机的裁剪面决定摄像机开始渲染和结束渲染的位置      近裁剪面近裁剪面,开始渲染的位置(摄像机相对的距离)      远裁剪面远裁剪面,结束渲染的位置(摄像机相对的距离) 剔除掩码没有选择的层中的游戏对象不显示 

剪裁平面

近裁剪面和远裁剪面,剪裁平面的这两个属性决定了相机的视野开始和结束的地方。这两个平面垂直于相机的方向,并且由相机的位置来确定。近平面是开始渲染的最近位置,远平面则是最远位置。 注意,近裁剪面和远裁剪面剪裁平面连同相机视野的轮廓平面一起构成的区域俗称相机锥。Genesis确保在渲染你的对象时,那些完全在这个锥形区域外的对象则不显示。

透视

透视模式,主要用于3D游戏,模拟真实世界视觉感受的相机模式。


正交

用正交标记一个相机将从相机视角中移除透视效果,这主要用于等轴游戏或2D游戏。 此模式下,对象显示出来的大小与距离无关。


创建一个大尺寸或者小尺寸的感觉

从图形的角度看,在Unity中距离的单位是任意的并且不符合真实世界中的测量。虽然这样设计起来会很灵活和方便,但是在转换物体预期的大小方面会变得麻烦。例如,一辆玩具车和一个完全尺寸的车看起来是不一样的,即使它是一个经过精确缩放的真实的模型。

对象的尺寸的印象中最主要的元素是基于对象的长度角度改变的方式。例如,如果从车的前面看玩具车,它距离后面的距离将会很小。由于距离很短,视角影响将会相对比较小。所以前面跟后面的大小就会没什么太大区别。然而,如果是一个完全尺寸的车,车的前面相对于摄像机而言会比后面远很多,并且视角影响也会变得很明显。

如果你想让一个对象看起来相对小一些,角度线应该偏离其深度,并略微高一些。你可以通过使用一个相对狭窄的视野来达到这种效果,该视野比默认的角度小60度,并且让相机拉远来弥补增加的屏幕大小。相反,如果你想让一个对象看起来大一些,你需要使用一个广阔的可视区并将相机拉进。当这些视角改变在其他明显的技术(像从高于正常的高视点俯视一个"小"对象这种情况)上有效时,结果可能会很有说服力。

了解视锥体

视锥体指的是一个金字塔被沿着平行于底面切去顶端的立体形状。这个形状是可以被看见和被摄像机渲染的区域。下面通过实验来说明为什么是这种情况。

想象一下,用一根笔直的棒子的一个端点对着相片拍照。如果这根棒子是垂直与摄像机的镜头,且是在相片的中间位置,那么将仅能看到一个点。其余部分都被遮盖住了。如果你把它向上移动,低的部分会被看见,你还能向下调整角度再次遮盖住。如果你继续向上移动棒子,并且向上的角度调的更大,直到端点完全到达照片的顶部边缘。这时候,这个世界空间的任何被棒子描绘的线都会被看见。


把棒子向左,或向右,或向下,或任何平行和垂直的组合旋转90°,简单的"隐藏"棒子的角度取决于他离屏幕两个轴的距离。 这个实验的意思是相机影像中,在世界空间里实际上是在一条线上的很多个点,沿着这条线,只有一个点可以被看到。在那个位置之后的任何东西都被遮盖了。

在影像的边缘被称为对应影像角落的偏离线。如果被描绘的那些线向相机的后方转,他们最终将汇聚在一个点上。在Genesis中 这个点恰好位于被称为视图中心的变换位置上。在视图中,屏幕中顶部的中心和底部的中心汇聚的线的夹角,被称为视野(通常缩写成FOV)。

如上所述, 任何超出影像边缘的偏离先之外的东西都是看不见的。渲染还有另外两个限制条件。近裁剪面和远裁剪面是与相机的XY平面平行的,并且每个裁剪面离中心线有一定的距离。任何在近裁剪面的之内和超出远裁剪面之外的物体都不会被渲染。


影像偏离线夹角和两个裁剪面之内的部分被称为截棱锥 - 视锥体。

提示

 相机可以像其它对象一样被实例化、父子化和脚本化。

 为提供赛车游戏的速度感,请使用高视野范围。

 如果你添加一个刚体组件,相机可以用于物理模拟。

 正交相机可以很好地用于制作3D用户界面。

 Genesis为你提供了FreeActor.cs脚本帮助你转换游戏中的视角。

0 0