IMR
Immediate Mode Rendering(即时渲染),是 PC 和主机 GPU 使用的渲染方式
IMR下的渲染示意图
每次渲染,都要读写Frame Buffer和Depth Buffer
IMR优化
IMR需要大量的带宽和功耗,优化方式是L1、L2 Cache大缓存,不适用于移动GPU
硬件和内存交互的数据流
TBR
TBR (Tile-Based Rendering)分块渲染
核心思想:将帧缓冲分割为一小块一小块,然后逐块进行渲染
TBR是基于Tile(块)的绘制,不能每次来一个物体就提交一次,TBR的处理流程:
几何处理阶段
图下侧表示当前提交的三角形,图下侧显示的是,场景中的每个三角形,被Binned到4x3模式的Frame Buffer中,每一个只显示影响这个Tile的三角形
Rasterization 光栅化
光栅化也是基于Tile进行的,光栅化会等所有三角形完成几何处理才进入本阶段,从图元列表取出三角形列表,然后根据列表对当前tile的所有三角形进行光栅化以及顶点属性的插值。
着色
硬件和内存交互的数据流
TBDR
TBDR (Tile-Based Deferred Rendering)在硬件层面上增加HSR (隐藏面消除)解决了Overdraw问题
TBDR是PVR的专利,通过硬件增加HSR和Tag Buffer实现DR,解决过渡渲染的问题。
过渡渲染
红色方体和绿色球体其实只需要进行部分渲染,但是过度渲染是把重叠的部分进行了多次渲染