骁龙和Qualcomm品牌产品是Qualcomm Technologies, Inc.及/或其子公司的产品。
您开发的手机游戏的光照表现有多真实?不管什么游戏,用户体验的重要一环就是要实现接近真实世界的光照效果,包括反射、折射和阴影等。
Gaijin Entertainment 推出的旗舰 MMO 作品《War Thunder Mobile》是首个利用 Qualcomm Adreno GPU 光线追踪功能的大型手游。光线追踪是一种高级技术,用于在渲染环境中实现无限近似真实世界的光照效果。由于计算成本较高,光线追踪技术以前仅用于 Gaijin 旗下的 PC 和游戏机游戏。但是,正如这个光线追踪视频所示,《War Thunder Mobile》游戏现在在骁龙处理器上使用 Qualcomm Adreno GPU 实现了硬件级光线追踪。
图像左侧开启光线追踪,右侧关闭光线追踪。
在配备Snapdragon 8 Gen 2 移动平台或更高版本的设备上,用户可以看到上图左侧所示的更真实的阴影,确保了更加引人入胜的移动玩家体验。
本文将探讨光线追踪,介绍 Gaijin 如何在游戏中使用这项技术,并阐述如何在您开发的游戏和应用中加以应用。
什么是光线追踪?为何它的计算成本较高?
光线追踪是对光栅化的改进,后者是大多数视频游戏渲染计算机图形的过程。光栅化将三维图形和基元转换为显示像素的二维网格,依赖着色器来表现真实世界的光照,而游戏开发人员必须使用算法来模拟场景中的光照效果。例如,必须模拟与任务没有直接关联的阴影。在移动设备上,开发人员只能使用四个点光源投射阴影,而移动设备的计算资源比电脑及游戏机更加稀缺,因此,很多移动游戏没有阴影。尽管技术已经有所发展,能够更好地估算阴影,但仍然无法进行逼真的模拟。
而使用光线追踪,算法会追踪光线的路径,然后模拟该光线与场景中其他对象的互动(碰撞)。例如,为了在游戏中模拟真实世界的光照和物理效果,它会追踪从摄像机到场景、从光到物体到摄像机或从光直接到摄像机的光线路径。换句话说,如果追踪从位置 x 到位置 y的一条光线,看它是否与某些物体碰撞?该碰撞点是被遮挡还是未被遮挡?此项技术可以实现更真实的反射、折射和阴影等效果。它模仿了人类视觉处理光的落下和出现的方式以及光对颜色感知的影响。
显然,模拟和跟踪场景中的每条光线将造成高昂的计算成本。光线追踪技术已广泛用于电影和娱乐,这些领域计算资源丰富且对实时性能要求不高。大约在 2018 年,硬件上的发展将这些技术带入到 PC 和游戏机游戏,而 GPU 的演变又将这些技术应用到了移动游戏。
移动游戏中的光线追踪
光线追踪可以在现有管道上使用,并不替代标准光栅化,则是提供了额外的功能,简化开发者通常使用技巧实现的表面光。例如,访问像素命中信息可以改善相关特性,比如生成阴影和计算更好的光属性和反射。
在软件方面,主要的图形 API,如 Vulkan、OpenGL、DirectX 和 Metal,都必须更新后才能支持光线追踪。作为移动设备的主要渲染方式,Vulkan 规范使用了各种扩展,例如加速结构、光线追踪管线和光线查询。不再分别定义三角形可见区域并分别着色,而是对屏幕上每个可见像素都生成一条光线。光线可以与不同的表面碰撞并反射、折射(被吸收)或两者兼而有之,单次碰撞生成多个光线,这个计算可以一直进行下去,直到定义的质量和性能满足目标。
在硬件方面,光线追踪还需要对 Adreno GPU 架构进行工程和物理上的改变。
Qualcomm Technologies和 Gaijin 合作
为准备骁龙 8 Gen 2 移动平台的推出,Qualcomm Technologies, Inc.与 Gaijin Entertainment 合作改进《War Thunder Mobile》的移动版本。我们提供了最新的 Adreno GPU 商用设备,以及开发工具和驱动程序更新,以便 Gaijin 启用硬件级光线追踪。
我们的团队定期与 Gaijin 工程师沟通,解答他们有关 API 和软件堆栈的问题,并转达内部团队的回复。Gaijin 很快就将光线追踪应用到游戏中,并在出现稳定版本后发送给我们进行测试。
经过此次合作,《War Thunder Mobile》游戏将从公测第一天开始,就在骁龙移动设备上支持 Qualcomm Technologies 实时硬件级光线追踪。玩家将通过流畅的光线追踪阴影获得高质量的视觉效果,以及逼真的半影、透明度和自阴影等效果。
Gaijin 正在寻求进一步利用光线追踪,以实现更真实的其他光照效果,如反射。尽管他们的主业是 PC 游戏开发,但他们在《War Thunder Mobile》上取得的成功为旗下游戏进入移动领域打开了机遇之门。
轮到您了
您也可以利用 Gaijin 所使用的功能。
我们将Vulkan代码样本框架放在了 GitHub 存储库中,您也可以探索 Adreno GPU 上的 Vulkan 渲染功能。存储库包含一个Vulkan 框架,用于快速创建示例内容和原型,其中包括创建带有 Vulkan 函数和输入系统的 Android APK 所需的构建块,以及其他辅助实用程序。
您可以构建示例项目,演示 Qualcomm Technologies 与 Khronos 开发的某些扩展,还可以将它们作为自己项目的基础,因为它们已经针对移动芯片做了性能优化。下图演示了一个示例中的阴影效果(仅 RayQuery 功能)。
尽管 Gaijin 在游戏中使用光线追踪,但该项技术也适用于其他场景,比如建筑场景和室内设计。例如,您可以在房间中放置虚拟家具,让应用程序检测场景中的光照信息。它可以实时将信息应用于家具,提供更接近真实世界的外观。
即使没有 Vulkan 代码样本框架,您也可以从零开始在应用程序中实现光线追踪。不管您采用哪种方式,都需要一款搭载骁龙 8 Gen 2(或更高版本)移动平台的商用设备,比如三星和小米的设备。
敬请关注
《War Thunder Mobile》 可能是第一个利用硬件级光线追踪的重要手机游戏,但我们相信,它绝不会是最后一个。
我们将很快为 Adreno GPU 添加更多的光线追踪功能,以便在游戏中实现逼真的光照效果。不妨先尝试一下Vulkan 代码样本框架,看看如何改善游戏和应用程序中的光照效果,并试试其他游戏开发工具中的光线追踪技术,例如虚幻引擎 5 Metahumans 框架。
骁龙和 Qualcomm 品牌产品是Qualcomm Technologies, Inc.和/或其子公司的产品。