unity学习笔记(性能优化)
渲染管线
> 图形数据在GPU上经过运算处理,最后输出到屏幕的过程。
绘制调用Draw Call:
每次引擎准备数据并通知GPU的过程。通俗讲,每帧调用显卡渲染物体的次数。
> 顶点处理
- 接收模型顶点数据。
- 坐标系转换。
> 图元装配
- 组装面:连接相邻的顶点,绘制为三角面
> 光栅化
- 计算三角面上的像素,并为后面着色阶段提供合理的插值参数。
> 像素处理
- 对每个像素区域进行着色。
- 写入到缓存中。
> 缓存
- 一个存储像素数据的内存块,最重要的缓存是帧缓存与深度缓存。
- 帧缓存:存储每个像素的色彩,即渲染后的图像。帧缓存常常在显存中,显卡不断读取并输入到屏幕中。
- 深度缓存 z-buffer:存储像素的深度信息,即物体到摄像机的距离。光栅化时便计算各像素的深度值,如果新的深度值比现有值更近,则像素颜色被写到帧缓存,并替换深度缓存。
Occlusion Culling(遮挡剔除)
即时遮挡剔除
- 即使遮挡剔除 Instant Occlusion Culling
- 遮挡剔除:当物体被送进渲染流水线之前,将摄像机视角内看不到的物体进行剔除,从而减少了每帧渲染数据量,提高渲染性能。
LOD(多细节层次)
多细节层次
- 多细节层次 Levels of Detail
LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。