做手游和做端游,确实是截然不同的两种体验,因为手机和电脑的物理结构上就已经完全不同了。这里做个简短的笔记,简单地介绍一下二者的GPU差异:
物理架构上:

可以看到,手机的GPU小得多,核心数量也少得多,功耗更低,且往往作为SoC的一部分,与其他的处理器全部放在一个chip上(也就是芯片上)------这意味着手机并没有像电脑那样的独立显存,且GPU的带宽也大大减小,这就导致了手机的GPU对性能要求高得多------因为物理上就比电脑的差得多。手机的GPU和电脑的GPU的优化目标也是往往有所不同:手机追求的是低功耗,而电脑追求更高的性能。
这里既然聊到了IMR和TBR两种渲染方式,我们不妨来展开说说二者的差异:

IMR架构下,每次深度测试、颜色混合等操作都需要访问片外主内存,这是最大的性能瓶颈和耗电来源。而TBR架构通过使用一块专用的片上缓存(On-Chip Buffer) 来存储当前处理的图块的所有数据(颜色、深度等),使绝大部分操作在芯片内部完成,仅在处理完一个图块后,才将结果写回主内存。这种设计极大地降低了访问高功耗主内存的频率。(访问主内存(DRAM)确实是手机功耗的主要来源之一)
当我们讨论PC的GPU时或者是图像渲染时,我们往往会讨论到OpenGL,但是非常可惜,OpenGL并不能在移动端上使用,好在我们有专门针对移动端的引擎:

当然,还有更好的选择:

vulkan看起来是最好的选择,但是显然目前我还不会,暂时就不多提了。