为了对齐 iOS 上小游戏对MetalAPI的支持,在团结1.8.0中,我们推出了安卓上小游戏对Vulkan API的支持。与 Metal 类似,Vulkan 在支持更多渲染能力的同时,显著优化了功耗和帧耗时。
我们同样使用 Vulkan 在 Android 小游戏平台制作了演示 Demo,和 Metal Demo 使用了相同的场景与效果,详见小游戏 Metal 支持上线,提供接近原生图形 API 的特性与功能篇。
注:Vulkan Demo 的工程文件已经上传至 Git 仓库,欢迎广大开发者前往下载并体验。
https://cnb.cool/tuanjie/MiniGame/Tuanjie_MiniGame_Vulkan_Demo
什么是 Vulkan 小游戏?
团结引擎 Vulkan 小游戏,在图形渲染中创新地使用了现代图形接口 Vulkan 来替代传统的 WebGL。在小游戏领域中属于开创性的技术突破。
Vulkan 图形接口是跨平台图形接口 OpenGL 的后继者,带着 “精确控制 GPU” 的历史使命出生,到现在已经经历了十年的沉淀和更新。在安卓平台上更是已经成为了重度原生移动端游戏的首选。
而 Vulkan 小游戏的目标,在于将小游戏渲染性能无限提升至接近安卓原生游戏的水平,让小游戏可以获得媲美原生移动端手游的画面表现。
更稳定的 FPS
内部测试的几款 Vulkan 小游戏都获得了惊人的 20% 帧耗时降低,带来了更稳定的 FPS。
相较于传统的安卓 WebGL 小游戏,团结引擎 Vulkan 小游戏会额外启用一个 worker 线程,用于提交 GPU 指令,可以有效分担主线程压力。
而在 JS 和 Native 交互的层面,Vulkan 小游戏也进行了进一步的优化,努力将胶水层带来的开销降至最低。
更低的功耗
仅仅将 WebGL 小游戏切换至 Vulkan 小游戏,就可以带来平均5%~10%的功耗降低。更低的功耗也就意味着更少的发热,也会显著影响用户的游戏时长。
我们在某款重度 MMO 小游戏上对 Vulkan 渲染和 WebGL 渲染进行了多轮对比测试,整理测试数据如下:
更多的图形特性
从长远来看,这将是 Vulkan 小游戏最大的优势。
相比 WebGL 小游戏,Vulkan 小游戏具备支持所有的安卓 GPU 原生特性的潜力。在解锁更强大的现代渲染特性的同时,也提供了深度优化图形管线的可能性。
Compute Shader:支持在 GPU 上进行并行数据计算,适用于复杂的模拟或特效处理。
VFX:支持实现更复杂、运行更高效的视觉特效。
Indirect Draw:实现更高效的渲染调度。
Vulkan 的图形支持特性与 Metal 基本一致。
*详细内容可参考,小游戏 Metal 支持上线,提供接近原生图形 API 的特性与功能篇
快速上手
将 WebGL 小游戏切换至 Vulkan 对开发者来说几乎是无感的,仅仅修改一个选项即可。
在Project Settings->Player中,选择MiniGame平台页签。在Graphics APIs列表中添加Vulkan并移除其他 API,即可启用 Vulkan 渲染。
平台支持
Unity Connect
宿主 SDK
cn.tuanjie.minihost版本(≥1.0.15)Unity Connect 安卓版本(≥2.6.8)
*当前 Vulkan API 支持平台较少,后续会逐渐增加。
⚠️注意事项
目前暂不支持 Vulkan 与 WebGL 同包,如果需要 WebGL 版本则需单独打包;
如使用了 AssetBundle ,则启用 Vulkan 后需重新构建 AssetBundle ,以确保资源格式正确;
Vulkan 暂不支持 Async Compute 和 Autoconnect FrameDebugger 功能;
启用 Vulkan 渲染后,打包小游戏时会强制开启多线程模式,该模式可以显著减少帧耗时,但也会带来少许内存增长。
未来展望
当前, 小游戏平台 Vulkan 图形 API 仍处于实验阶段,欢迎开发者参与体验;未来,团结引擎小游戏平台的图形 API 支持(包括 Metal、Vulkan)将会不断强化,为开发者带来更高性能与更高能效的小游戏开发体验。
Unity 官方微信
第一时间了解Unity引擎动向,学习进阶开发技能
每一个“点赞”、“在看”,都是我们前进的动力
热门跟贴