Camera

来源:互联网 发布:三体结局 知乎 编辑:程序博客网 时间:2024/05/29 15:35

Untiy3D摄像机

1  Camera存在的意义

拍电影时摄像机所在的位置正是观看电影时观众的视角所在,U3D引擎中的Camera的主要功能也是为了让用户从相机所在的位置对观看所设计的场景.可以使用一个Camera,并通过改变其位置来定义观看者的视角,也可以在一个场景中声明多个Camera,通过切换,来实现多角度观察的效果.

2  组件及其功能介绍

2.1  Transform

同其他游戏对象一样,Transform是必不可少的,因为不论是在二维还是三维,一个物体存在就有其空间位置.坐标是全局时,Camera在空间中的位置,旋转都不与其他游戏对象相关, 而Scale对相机是没用的,如同三角板的角度不能用放大镜放大一般.

2.2  Camera

这个组件地存在说明了一点,当在Hierarchy中创建一个Camera和创建一个空游戏对象并添加这个组件并无实质上的差别.

Clear Flags直译是清除标记,主要用于摄像背景的选择,Skybox指天空盒子, Background主要用于ClearFlags中的S0lid Color.

Culling Mask 用于选择相机所能拍摄到的对象所在的层级,不同的相机有不同的摄像功能,为拍摄的灵活性提供了可能.

projection 指相机拍摄的方式,有发散和平行两种方式.当使用othorgraphic时,可以调Size来改变视角的相对大小.使用perspective时可以改变Field ofView来改变视角的大小.实现从0到180度的视角改变.

相机有一个聚集的空间距离,在Near和Far的范围内可视.ViewPortRect中W和H分别是宽度和高度的比例,决定了相机的拍摄范围,X和Y分别是x轴和y轴开始成像的位置.Depth称为相机的景深,在有多个相机的场景中,Depth数值越大,则越后渲染,即成像最为靠前.

Rendering Path 是相机渲染方法的不同,也就是生成的图象的效果的好与不好,其中Legacy Deferred效果最差,而deferredLighting渲染效果最好.

3.Camera应用实例

3.1 方法

    射线,坐标转换

3.2 层级

    有两个Camera,若想让其中一个相机单独拍摄某一类物体在最前端显示,则无论该类的坐标位置是否靠后,只要该Camera的Deaph数值越大,都能实现前端显示.另外,对于3D工程,由于不用z轴,可以改变Order in Layer来控制渲染的顺序,如果对象较多,还可以利用Sorting Layer来在更高层次进行排序,但Camera在渲染先后上还是起决定作用

0 0
原创粉丝点击