小游戏平台使用的WEBGL2.0,未支持SSBO
及Compute Shader
等功能。为了在小游戏平台上实现该功能,我们将数据存放在一张纹理Texture中,在进行更新的时候将数据更新至该纹理上;在渲染时从该纹理中采样获取相应的数据使用。
在小游戏上仅支持WEBGL2.0作为backend。
为了适应轻量级小游戏也能使用该功能提高性能,团结的GPU Resident Drawer扩展了对Forward管线的支持。
小游戏场景的使用方法没有特殊的地方,使用设置可以参考GPU Resident Drawer。
在某款重度MMO小游戏上做对比测试,相比于使用SRP Batcher,启用GPU Resident Drawer后,在多种设备上取得可观的功耗收益,如下图所示。
设备 | 处理器 | SRP Batcher | GPU Resident Drawer | 功耗收益 |
---|---|---|---|---|
三星S23–8gen2-S9110 | 骁龙8gen2 | 2837.0mW | 2658.4mW | 178.6mW |
一加Ace3V–7+gen3-PJF110 | 骁龙7+gen3 | 1593.0mW | 1449.8mW | 143.2mW |
IPhone14 | Apple A15 | 2403.4mW | 2348.1mW | 55.3mW |
IPhone11 | Apple A13 | 3122.5mW | 2984.4mW | 138.1mW |