Unity3D(五)渲染管线

渲染管线

图形数据在Gpu上经过运算处理,最后输出到屏幕的过程

  • DrawCall:一帧调用显卡渲染物体的次数

顶点处理

  • 接受顶点模型顶点数据
  • 坐标系转换

图元装配

组装面,连接相连的顶点,绘制三角面

光栅化

计算三角面上的像素,并为后面着色阶段提高合理的插值参数

像素处理

对每个像素区域进行着色
写入到(显卡)缓存中

缓存:

一个存储像素数据的内存块,最重要的缓存是帧缓存与深度缓存

帧缓存

存储每个像素的色彩即渲染后的图像。帧缓存常常在显存中,显卡不断读取并输出到屏幕中

深度缓存Z-buffer

存储像素的深度信息,即物体到摄像机的距离,光栅化时便计算各像素的深度值,如果新的深度值比现有值更近,则像素颜色被写道帧缓存,并替换深度缓存。近的被保存,远的被遮挡就不显示了

优化

性能优化主要三方面

  • CPU Usage CPU的使用。
  • Render 渲染
  • Memory 内存

Occlusion Culling即时遮挡剔除

遮挡剔除:当物体被送进渲染流水线之前,将摄像机视角内看不到的物体进行剔除,从而减少了每帧渲染数据量,提高渲染性能

使用插件Instantoc实现遮挡剔除

  • 原理:随机发射射线碰到了说明不被遮挡
  • 缺点:增加CPU性能
  • 适用场景:场景中物体较为密集

多细节层次(LOD Levels of Detail)

根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配(选择高低中模型),降低非重要物体的面数和细节度。从而获得高效率的渲染运算

原文地址:https://www.cnblogs.com/code-fun/p/13924413.html