小白_Unity引擎_详细Camera以及代码设置

  Cemera摄像机:

Unity主要核心组件之一。显示场景中,摄像机照射部分,是向玩家捕获和显示世界的设备。

1.

ClearFlags :清除标记。显示背景内容,默认为天空盒子

  代码设置:

   m_Camera.GetComponent<Camera>().clearFlags = CameraClearFlags.Skybox;

   如果没有指定天空盒子,在屏幕显示默认背景色。
        Solic Color:空白处将显示默认此处设置背景色
        Depth Only:仅深度,该模式用于对象不被裁剪。
        Dont Clear :不清除,该模式不清除任何颜色或深度缓存,但这样每帧渲染的结果都会叠加在下一帧上。

       选Depth Only的效果:

如何实现看到后边的小圆球呢?

再创建一个摄像机Camera2,两个摄像机都设置为Depth Only,小圆球创建一个Layer层 layer1,设置Camera2的CullingMask为层设置为layer1,

并且Camera2的深度比Camera1的深度大。

 原因:每个摄像机赋予不同的深度值。摄像机是从低深度值到高深度值次序绘制,一个深度值为2的摄像机将会在深度为1的摄像机绘制完成后再绘制。

 设置Dont Clear: 不清除任何颜色或深度缓存,但这样每帧渲染的结果都会叠加在下一帧上。

程序运行后,看到这样的效果

第二。Background: 背景颜色(属性)

设置获取背景色代码

1         Color c =   m_Camera.GetComponent<Camera>().backgroundColor;
2        m_Camera.GetComponent<Camera>().backgroundColor = Color.red; //设置背景颜色    
View Code

第三。Culling Mask:剔除遮罩,显示某些层(去掉不显示的层)

    

第四。Projection: 摄像机投射方式

   perspective透视:以3D方式观察物体 特点:近大远小
        Orthographic正交:以2D方式观察物体(没有近大远小效果)

第五。Field of view 视野范围

1      //  public float fieldOfView { get; set; }  属性
2        m_Camera.GetComponent<Camera>().fieldOfView = 12;
3        float num2 =  m_Camera.GetComponent<Camera>().fieldOfView;

第六。Clipping Planes 剪切面。 摄像机渲染的距离

  Near:最近点, Far:最远点

   

 第七。.Viewport Rece: 可控制视窗的偏移量

Vewport Rect: 设置 0-1 ,左下角为原点

第八。Depth:摄像机深度

1   //  摄像机深度(若存在若干摄像机,则渲染数值越小的摄像机画面渲染越早,在最后面
2         m_Camera.GetComponent<Camera>().depth = 12;
3         float num3 =   m_Camera.GetComponent<Camera>().depth         

第九。Rendering Path: 渲染路径。设定摄像机渲染方法

1  //获取渲染路径
2         RenderingPath rp = m_Camera.GetComponent<Camera>().renderingPath;
3         //设置渲染路径
4         m_Camera.GetComponent<Camera>().renderingPath = RenderingPath.DeferredLighting;

 渲染路径四种方式:

Use Player Settings:使用Project Settings>Player中的设置
 Vertex Lit:顶点光照,将所有的对象做为顶点光照对象来渲染
 Forward:快速渲染,摄像机将对所有对象按每种材质一个通道的方式来渲染。
DeferredLighting:延迟光照,先对所有对象进行一次无光照渲染,用屏幕空间大小的Buffer保存几何体的深度、法线以及高光强度,生成的Buffer将用于计算光照,同时生成一张新的光照信息Buffer。最后所有对象再次被渲染,渲染时叠加光照信息BUffer的内容

 第十:Target Texture: 目标贴图纹理

原理::就是将此摄像机摄像的画面影响实时打在一张指定的目标贴图上,

此时,这张贴图存有这个摄像机所摄的实况转播信息了,则此贴图可以随便放在某个Plane地板或者UI界面中

简单制作演示过程:

创建一个贴图纹理 :

 

最后看效果:gif录制不是很清晰。

左侧是Plane。移动摄像机,右下角摄像机摄到的内容和Plane中的一样

 

第十一: Occlusion Culling :是否使用遮罩剔除

m_Camera.GetComponent<Camera>().useOcclusionCulling = true;
 bool b =  m_Camera.GetComponent<Camera>().useOcclusionCulling;

第十二: HDR: 启用摄像机高动态范围渲染,用于启用摄像机的高动态范围渲染功能,因为人眼对的范围的光照强度更为敏感,所有用高动态范围渲染能让场景变得更为真实,光照的变化不会显得太突兀。

  1 m_Camera.GetComponent<Camera>().allowHDR = true; 2 bool b2= m_Camera.GetComponent<Camera>().allowHDR;  

猜你喜欢

转载自www.cnblogs.com/CeasarH/p/9160539.html