Unity-InstantO组件(剔除)
1、本篇目录结构


2、渲染管线
1)概念:
图形数据在GPU上经过运算处理,最后输出到屏幕的过程。
2)拓展
cpu:中央处理器,相当于人的大脑,Gpu:做渲染的。

举例: 屏幕上需要放置一个小车
游戏
先判断视锥以内的物体,和color mask,需要渲染的,cpu判断,选取
图形API
发布的具体平台:window px ,移动 OpenGl
交给GPU
cpu调用 图形API,就是调的GPU,的API接口,以便来调用GPU
定点处理(CPU)
接受模型 顶点数据 ,也就是顶点的坐标位置,uv,法线等。。。
坐标的转换
图元装配
组装面:连接相邻的节点,绘制三角面。
光栅化
计算三角形上的像素,并为后面的着色阶段提供合理的插值参数。
像素处理
对每个像素区域进行着色。
写入缓存中。
缓存
一个存储像素数据的内存块,最重要的缓存时 帧缓存 和 深度缓存。
帧缓存:存储每个像素的色彩,即渲染后的图像。帧缓存常常在显存中,显卡不断读取并输出到屏幕中。
深度缓存 z-buffer:存储像素的深度信息,即物体到摄像机的距离。光栅化时 便计算各像素的深度值,如果新的像素的深度值比现有记录的值更近,则像素写入帧缓存,并替换深度缓存。
然后显卡从缓存中拿数据,做显示。
3)DrawCall
概念:每次引擎准备数据并通知Gpu的过程。通俗的将,每帧需要在屏幕上渲染物体的次数。
引擎中,光越多,dc越大。
引擎观察方向:引擎下方 stats -> Batche

3、即时遮挡剔除:Instant Occlusion Culling(一个插件)
遮挡剔除:当物体被送进渲染流水线之前,将摄像机机视角之内看不到的物体进行剔除,从而减少每帧渲染数据量,提高渲染性能。

下载插件后,把插件拖拽到Project面板中
优:对重叠的物体,能降低性能消耗
缺点:因为计算是通过cpu,有可能会增加cpu的消耗,降低性能
适用:情况不同,如果是密集的有遮挡的情况,可以适用。
如果不密集的物体,没必要用
用法:
1)将插件拖拽到Camero中,如图:

将 1 IOCcam 的位置 拖拽到 2 Camero 摄像机上,然后再设置3位置的细节内容。
2)首先要设置新的tab标签 Ioc,layer要设置 IocLayer

3)绑定刚体:然后给需要用到剔除插件的模型物体,绑定刚体。也就是下图中的3位置。
绑定刚体的原因:Ioc会向视锥内发射若干射线,如果打到物体上,证明物体没有被遮挡,打到物体的过程,其实时打到刚体上了。

4)camero 中ico组件的相关属性,要设置成下面的属性

上图对应数字的属性说明
1:2)步骤中设置的layer层级
2:2)步骤中设置的tab层级
3: Samples 采样 :视锥内 每帧 发出射线的数量,一般设置为150左右,并且越小越好。
4、5:对应摄像机的对应属性

6:延迟隐藏
7:简易勾选,性能优化
5)点击运行
属性精讲


LOD (多细节层次)
1)定义
LOD技术指 根据物理模型的节点在 显示环境中所处的位置和重要度,决定物体的渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。
2)实现原理:
多种精度的模型,根据到摄像头的距离,显示不同精度的模型。(如果选用这个组件,那么会增加模型数量,有些付费的组件,会好,自动产生模型)
举例:
距离1米,显示精模
距离40米,显示中模
距离80米,显示粗模
3)优化方向
优化的是三角形渲染数量的方向,会节省一定的cpu消耗,注意:Drawcall并不会有优化。
4)使用
前面步骤仿照上面oc的方式,
后面步骤
1、3中类型的模型,放到一个父类中,然后模型要分别取名 Lod_0,Lod_1,Lod_2

3、20以内显示精模,20-40显示中膜,40以上先粗模。

5)优缺点
Hierarchy 面板中,物体越多,占用的内存越大。
缺点:内存占用增加,cpu增加距离判断,(当前插件问题:美工的工作量增加)
优点:CPU,GPU的工作量,都会相应减少
6)使用场景:
场景中存在高面模型,会有远近的变化
性能分析

cpu的使用
渲染GPU
内存


浙公网安备 33010602011771号