移动端GPU架构

IMR:即时渲染模式,来个DC立刻渲染,渲染的时候需要访问显存的RT,这种速度是最快的,但带宽高。

TBR:把渲染的屏幕分层多个小格,渲染指令来了之后可以执行VertexShader,光栅化得到片元信息后会在这个像素对应的片元队列上排队,等到切换RT的时候才一次性渲染所有片元,渲染Tile的时候把Tile对应的Buffer复制到高速缓存,这样就不用频繁访问显存,当渲染结束后把数据写回显存。这样速度比IMR慢,但是带宽低,适合移动平台。因为所有渲染的片元需要建立一个队列,当片元太多的时候就不够空间了,而在手游通常不会暂用太多空间,也能用。

TBDR:D是Defer的意思,在TBR存储的队列中,其实已经知道了片元的深度了,所以可以用硬件做ealy-z,或者叫HSR(Hidden Surface Removal,隐藏面消除),假如渲染的是不透明物体,则队列上总是只有最前面那个片元,其他的和TBR类似。

现在Unity可以使用可编程渲染管线,对于RT的loadop和storeop要选择合适的参数,减少带宽,同时合理安排渲染顺序,减少RT的切换。

 

Reference:

https://www.expreview.com/24705-3.html

https://blog.csdn.net/leonwei/article/details/79298381

https://blog.csdn.net/yanjinzha/article/details/69951421

你可能感兴趣的:(图形学)