你有没有想过,为什么你在手机上玩的游戏那么流畅,画面那么精美?这背后,其实有两大技术流派在默默支撑着——IMR和TBR/TBDR。今天,就让我带你走进TBR游戏的世界,一探究竟!
TBR,一个神秘的“瓦片”世界
TBR,全称Tile-based Rendering,也就是基于瓦片的渲染技术。想象你的手机屏幕就像一块巨大的拼图,而TBR就是那个负责把拼图拆分成一个个小瓦片的“拆图师”。每个瓦片都是一块独立的区域,这样做的目的是为了提高渲染效率,让游戏运行得更流畅。
瓦片分割的艺术
在TBR的世界里,瓦片分割是关键。就像一个画家在画布上划分出一个个小格子一样,TBR将屏幕分割成无数个小瓦片。这些瓦片可以是正方形,也可以是矩形,甚至可以是任意形状。分割得越细,游戏画面就越细腻,但同时也增加了计算量。
Tiler,瓦片世界的守护者
在TBR的世界里,有一个非常重要的角色——Tiler。Tiler负责将屏幕分割成瓦片,并将这些瓦片分配给不同的处理器进行处理。这样,多个处理器可以同时工作,大大提高了渲染效率。
TBR的优缺点
TBR技术有其独特的优势,比如:
1. 提高渲染效率:通过瓦片分割,TBR可以并行处理多个瓦片,从而提高渲染效率。
2. 降低内存占用:由于瓦片分割,每个瓦片的数据量相对较小,从而降低了内存占用。
3. 减少延迟:TBR可以减少内存读写次数,从而降低延迟。
TBR技术也存在一些缺点,比如:
1. 数据传输开销:瓦片分割后,需要将瓦片数据传输到不同的处理器进行处理,这会增加数据传输开销。
2. 复杂度增加:TBR技术的实现相对复杂,需要更多的计算资源。
TBDR,TBR的进阶版
TBDR,全称Tile-based Deferred Rendering,是TBR技术的进阶版。它将TBR与延迟渲染(Deferred Rendering)相结合,进一步提高了渲染效率。
TBDR的工作原理
TBDR的工作原理是这样的:
1. 所有顶点经过顶点变换:将所有顶点变换到新的坐标。
2. 剔除相机外的顶点:剔除掉相机外的顶点,减少计算量。
3. 分块Tiling:将屏幕分割成多个瓦片。
4. 写入内存:将每个瓦片所需的数据写入内存。
5. 栅格化:对每个瓦片进行栅格化处理。
6. HSR:对每个瓦片内的像素进行z轴if()判断,找出不透明最小z值,生成Depth buffer存入L2。
7. 剔除:以Depth buffer为判定值,剔除掉大于z值的所有不透明和透明像素。
8. tag Buffer:对每个像素进行tag处理。
TBR技术为手机游戏带来了流畅的画面和高效的渲染效果。虽然它存在一些缺点,但随着技术的不断发展,这些问题正在逐渐得到解决。未来,TBR技术将会在更多领域得到应用,为我们的生活带来更多精彩。