摄像机是挂载Camera组件的能把3D世界物体拍摄成2D画面显示到屏幕上面的节点,角度不一样,位置不一样,拍摄出来的东西就不一样。

Clear Flags:没有物体的时候,摄像机拍摄出的屏幕要绘制什么东西。sky box天空盒,soild color蓝色背景,dont clear不做任何处理(黑色)等选项。一般选择sky box天空盒。

Culling Mask:哪些物体是可以被摄像机拍出来的,哪些物体是不可以拍的,分类是用层来区别的,可以勾选哪些层不显示,然后把不想显示的物体放在那个层。

Projection:摄像机的投影类型,Perspective叫做透视投影,就是默认的那个椎体。这个模式下,近的物体在画面中比较大, 远的物体在画面中比较小。Orthographic叫做正交摄像机,是一个立方体投射,远近物体在画面中一样大,不适合3D场景,适合做界面2DUI

      视椎:在near和far的范围内,加一个视角和一个有宽高比(可以在Game视图的菜单栏调节比例)的窗口,则在这个总范围内的物体才被摄像机绘制,之外的不会被绘制。视角越大,摄像机离宽口越近,显示的游戏画面越多,视角越小,摄像机离宽口越远。

      显示的游戏画面越少,一般视角调为60度。

Clipping  Planes:裁剪平面,Near表示拍摄到的最近的距离,Far表示拍摄到的最远的距离,以米为单位,超出或小于的相机不绘制。

Viewport Rect:视口显示的大小比例,就是摄像机拍摄到的画面在游戏Game视图的显示比例,一般是不去改的,除非想做两个显示画面的时候,像直播的右下角有人头像。

        方法是再创建一个摄像机节点,如果不做调整,这时候新的摄像机会覆盖旧的摄像机,Game视图也会被新的摄像头拍摄的东西覆盖,这时候,调节其中一个摄像头的Viewport Rect,两个摄像机就可以同时把拍摄到的画面显示在Game视图。

Depth:摄像机绘制的顺序,Depth小的先绘制,大的后绘制。所以在有两个摄像机同时存在的情况下,Depth较大的那个摄像机所拍摄的画面会被Depth较小的摄像机所拍摄的画面覆盖。

Target Display:一台电脑可以接多台显示器,Display1到Display8分别表示1到8的显示器。选择哪一个Display就绘制到哪个对应的显示器上。

Occlusion Culling:遮挡剔除的开关,如果一个近的大物体挡住了远的许多小物体,那么远的小物体就没有必要绘制,可以提高游戏性能,但是正常情况下是先绘制远的物体,所以必须打开遮挡剔除,Unity才会帮我们做剔除。

          复杂模型都是由很多子节点构成的,这些子节点之间有遮挡剔除,而且只有带Mesh的子节点才有。如果没有分很多子节点,要么模型绘制的时候要么全绘制,要么不绘制,非常不好。

注:遮挡剔除:绘制物体根据的是Zorder(Z轴顺序),先绘制远的物体,再绘制近的物体。坐标系是摄像机坐标系,这样近的物体就可以叠加在远的物体上。

使用正交投影做2DUI的步骤,是NGUI,UGUI的底层原理

1.首先创建一个正交摄像机,自己点挂载一个UI节点,移动到Game视图以外。

2.正交摄像机只显示UI层的物体,也就是UI节点所在的那个层,Depth2。

3.把透视摄像机背景设置为Dont clear

4.把透视摄像机的显示的层中,去除UI层,Depth1。

5.这时候就同时显示透视界面的画面和UI画面

透视投影的绘制流水线

1.把完全不在视椎内的物体排除掉,叫视椎裁剪。剔除掉不在摄像机中的物体。

2.把模型的世界坐标转化为摄像机坐标,摄像机坐标系是以摄像机为原点,x,y,z轴在点击摄像机节点的时候都会显示。

3.把以摄像机为原点的物体的摄像机3D坐标转为2D坐标。使用的是相似三角形,以Z/Z1为比例

正交投影的绘制流水线

1.没有相似三角形变化,直接多长就多长,所以远的近的一样长。

关于Unity中的摄像机的更多相关文章

  1. unity中让摄像机移动到鼠标点击的位置和鼠标控制平移视角

    private Vector3 targetVector3; private float movespeed=0.5f; private bool IsOver = true; private Gam ...

  2. 关于Unity中Camera的Aspect

    一直以来对Camera的Aspect和Game窗口的Aspect都是一知半解,某天从一本书中看到了对Camera的API讲解,但是总觉得对Aspect讲解的有问题.于是就认真的思考起了这个问题,还发现 ...

  3. Unity小知识---第三人称中设置摄像机的简单跟随

    第三人称中设置摄像机的简单跟随 private Transform player; private Vector3 offect; private float smooothing = 3f; //插 ...

  4. 解读Unity中的CG编写Shader系列八(镜面反射)

    转自http://www.itnose.net/detail/6117378.html 讨论完漫反射之后,接下来肯定就是镜面反射了 在开始镜面反射shader的coding之前,要扩充一下前面提到的知 ...

  5. WP8:在Unity中使用OpenXLive

    Unity 4.2正式版开始添加了对Windows 8.Windows Phone 8等其他平台的支持,而且开发者可以免费使用Unity引擎来开发游戏了.而作为Windows Phone和Window ...

  6. 移植UE4的模型操作到Unity中

    最近在Unity上要写一个东东,功能差不多就是在Unity编辑器上的旋转,移动这些,在手机上也能比较容易操作最好,原来用Axiom3D写过一个类似的,有许多位置并不好用,刚好在研究UE4的源码,在模型 ...

  7. Unity中Mesh分解与边缘高亮加上深度检测

    一个比较简单的需求,不过遇到些坑,记录下. 房间有多个模型,每个模型可能多个SubMesh,点击后,需要能具体到是那个SubMesh,并且在这个SubMesh上显示边缘高光,以及能个性这单个SubMe ...

  8. Unity中简单使用Opengl

    简介 由于项目特殊需求,需要在unity中使用一些OpenGL的东西来绘制图形(PS:其实就是有一个拖尾算法只有OpenGL版本~~~懒得改了,直接在unity中使用OpenGL算了).所以琢磨咯下如 ...

  9. Unity教程之再谈Unity中的优化技术

    这是从 Unity教程之再谈Unity中的优化技术 这篇文章里提取出来的一部分,这篇文章让我学到了挺多可能我应该知道却还没知道的知识,写的挺好的 优化几何体   这一步主要是为了针对性能瓶颈中的”顶点 ...

随机推荐

  1. Cleaner ITweenPath Source

    iTweenPath.cs [pyg language="csharp" s="monokai" ] //Slight additions for a clea ...

  2. Linux mkdir 如何递归创建目录?

    mkdir 如何递归创建目录? mkdir –vp 目录1/目录2/目录3   详细介绍: linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目 ...

  3. CentOS 6.2下二进制安装 MySQL 5.6

    在CentOS 6.2上 二进制方式安装 MySQL5.6二进制包 可以参考这篇文章: http://www.cnblogs.com/xiaoit/p/3988640.html 一路配置下来很顺利.. ...

  4. SQLSERVER中的 CEILING函数和 FLOOR函数

    SQLSERVER中的 CEILING函数和 FLOOR函数 --SQLSERVER中的 CEILING函数和 FLOOR函数 --ceiling函数返回大于或等于所给数字表达式的最小整数. --fl ...

  5. 从chrome商店直接下载crx文件

      从chrome商店直接下载crx文件 CreateTime--2018年5月21日17点18分 Author:Marydon 1.前提 需要知道你所下载的插件的id 查看方法: 第一步:打开扩展程 ...

  6. ubuntu——printk()函数总结,关于日志文件

    我们在使用printk()函数中使用日志级别为的是使编程人员在编程过程中自定义地进行信息的输出,更加容易地掌握系统当前的状况. 对程序的调试起到了很重要的作用. (下文中的日志级别和控制台日志控制级别 ...

  7. 深入理解JavaScript系列(转载)

    深入理解JavaScript系列 深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 深入理解JavaScript系列(2):揭秘命名函数表达式 深入理解JavaSc ...

  8. 转:【微信小程序】 微信小程序-拍照或选择图片并上传文件

    调用拍照API:https://mp.weixin.qq.com/debug/wxadoc/dev/api/media-picture.html?t=20161222#wxchooseimageobj ...

  9. 【Redis】redis 五种数据结构详解(string,list,set,zset,hash)

    redis 五种数据结构详解(string,list,set,zset,hash) Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存 ...

  10. PHP-流的概念与详细用法

    Stream是PHP开发里最容易被忽视的函数系列(SPL系列,Stream系列,pack函数,封装协议)之一,但其是个很有用也很重要的函数.Stream可以翻译为“流”,在Java里,流是一个很重要的 ...