关于Unity中的摄像机
摄像机是挂载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中的摄像机的更多相关文章
- unity中让摄像机移动到鼠标点击的位置和鼠标控制平移视角
private Vector3 targetVector3; private float movespeed=0.5f; private bool IsOver = true; private Gam ...
- 关于Unity中Camera的Aspect
一直以来对Camera的Aspect和Game窗口的Aspect都是一知半解,某天从一本书中看到了对Camera的API讲解,但是总觉得对Aspect讲解的有问题.于是就认真的思考起了这个问题,还发现 ...
- Unity小知识---第三人称中设置摄像机的简单跟随
第三人称中设置摄像机的简单跟随 private Transform player; private Vector3 offect; private float smooothing = 3f; //插 ...
- 解读Unity中的CG编写Shader系列八(镜面反射)
转自http://www.itnose.net/detail/6117378.html 讨论完漫反射之后,接下来肯定就是镜面反射了 在开始镜面反射shader的coding之前,要扩充一下前面提到的知 ...
- WP8:在Unity中使用OpenXLive
Unity 4.2正式版开始添加了对Windows 8.Windows Phone 8等其他平台的支持,而且开发者可以免费使用Unity引擎来开发游戏了.而作为Windows Phone和Window ...
- 移植UE4的模型操作到Unity中
最近在Unity上要写一个东东,功能差不多就是在Unity编辑器上的旋转,移动这些,在手机上也能比较容易操作最好,原来用Axiom3D写过一个类似的,有许多位置并不好用,刚好在研究UE4的源码,在模型 ...
- Unity中Mesh分解与边缘高亮加上深度检测
一个比较简单的需求,不过遇到些坑,记录下. 房间有多个模型,每个模型可能多个SubMesh,点击后,需要能具体到是那个SubMesh,并且在这个SubMesh上显示边缘高光,以及能个性这单个SubMe ...
- Unity中简单使用Opengl
简介 由于项目特殊需求,需要在unity中使用一些OpenGL的东西来绘制图形(PS:其实就是有一个拖尾算法只有OpenGL版本~~~懒得改了,直接在unity中使用OpenGL算了).所以琢磨咯下如 ...
- Unity教程之再谈Unity中的优化技术
这是从 Unity教程之再谈Unity中的优化技术 这篇文章里提取出来的一部分,这篇文章让我学到了挺多可能我应该知道却还没知道的知识,写的挺好的 优化几何体 这一步主要是为了针对性能瓶颈中的”顶点 ...
随机推荐
- setsockopt之 TCP_KEEPIDLE/TCP_KEEPINTVL/TCP_KEEPCNT
setsockopt之 TCP_KEEPIDLE/TCP_KEEPINTVL/TCP_KEEPCNT /*检测网线非法断开*/ setsockopt(iSockFd, SOL_SOCKET, S ...
- JUC同步器框架AbstractQueuedSynchronizer源码图文分析
JUC同步器框架AbstractQueuedSynchronizer源码图文分析 前提 Doug Lea大神在编写JUC(java.util.concurrent)包的时候引入了java.util.c ...
- Servlet之生命周期【入门版(刚開始学习的人必看)】
6,Servlet的解说 6.1Servlet生命周期 ,继承HttpServlet init方法(初始化Servlet)将来能够做一些初始化工作 service方法(处理请求) 一般不须要重写ser ...
- Global Times 单词(日常收集)
1. 2013-09-09 windfall 英[ˈwɪndfɔ:l] 美[ˈwɪndˌfɔl] n.意外之财:被风吹落的果子:意外的收获 eg:Only half made any attempt ...
- 【五年】Java打怪升级之路
之前写过一篇帖子.就是关于工作经验分享的,近期非常多人私信我.所以博客这边再分享一次 这几年来,我最大的感想就是一句话:多看.多写.多想.多问.多分享.多优化.多运动... 1.[多看] 读万卷书,行 ...
- Mqtt ----心跳机制
心跳机制 Keep Alive指定连接最大空闲时间T,当客户端检测到连接空闲时间超过T时,必须向Broker发送心跳报文PINGREQ,Broker收到心跳请求后返回心跳响应PINGRESP.若Bro ...
- windows 2003 如何实现远程桌面与本地桌面统一
最近在使用XP对2003服务器进行远程管理的时候,发现远程桌面与本地桌面不一致,本身在本地桌面开启的程序例如杀毒软件防火墙之类的,在远程桌面居然看不到,同时在远程桌面开启的程序,跑到服务器本地桌面也看 ...
- Kernel ridge regression(KRR)
作者:桂. 时间:2017-05-23 15:52:51 链接:http://www.cnblogs.com/xingshansi/p/6895710.html 一.理论描述 Kernel ridg ...
- MySQL主从不一致的几种故障总结分析、解决和预防
(1).主从不一致故障,从库宕机,从库启动后重复写入数据报错解决与预防:relay_log_info_repository=TABLE(InnoDB)参数解释说明:若relay_log_info_re ...
- unity5,UI Button too small on device than in Game View解决办法
假设测试设备为iphone5(横屏).下面说明如何使真机上ui显示效果与Game View中一致. 1,首先Game View左上角屏幕规格选 iPhone 5 Wide (16:9),如图: 2,在 ...