InstantOC

渲染管线

图形数据在GPU上经过运算处理,最后输出到屏幕的过程。
首先CPU判断渲染哪些物体,并将顶点数据等信息交给GPU处理。这里涉及一个绘制调用(Draw Call)的概念,绘制调用就是说每次引擎准备数据并通知GPU的过程。通俗讲,每帧调用显卡渲染物体的次数。
GPU在将物体输出到屏幕的过程会经历以下几个步骤:
1、顶点处理:接受CPU给出的模型顶点数据、坐标系转换;
2、图元装配:组装面;
3、光栅化:计算三角面上的像素,并为后面着色阶段提供合理的插值参数;
4、像素处理:对每个像素区域进行着色,写入到缓存中;
5、缓存:一个存储像素数据的内存块,最重要的缓存是帧缓存和深度缓存。
帧缓存:缓存每个像素的色彩,即渲染后的图像。帧缓存常常在显存中,显卡不断读取并输出到屏幕中。
深度缓存z-buffer:存储像素的深度信息,即物体到摄像机的距离。光栅化时便计算各个像素的深度值,如果新的深度值比现有值更近,则像素颜色被写到帧缓存,并替换深度缓存。

遮挡剔除Occlusion Culling

当物体被送进渲染流水线之前,将摄像机视角内看不到的物体进行剔除,从而减少了每帧渲染数据量,提高渲染性能。
即时遮挡剔除 Instant Occlusion Culling(插件)
步骤:1、创建层
2、为游戏对象指定层(将参与遮挡剔除)与标签(将自动附加IOClod脚本)
3、物体添加碰撞器Colloder组件
4、摄像机附加脚本IOCcam

LOD

多层次细节Levels of Detail
LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。
步骤:1、创建层
2、创建空物体并将模型添加到其中,命名为:Lod_0 Lod_1 Lod_2
3、为父物体指定层与标签
4、父物体或子物体添加碰撞器组件
5、摄像机附加脚本IOCcam