问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

《黑神话:悟空》图形评测:9 分,极其优秀的全局光照和几何系统

创作时间:
作者:
@小白创作中心

《黑神话:悟空》图形评测:9 分,极其优秀的全局光照和几何系统

引用
1
来源
1.
http://www.bilibili.com/read/cv37398790/

《黑神话:悟空》是一款使用UE5引擎开发的动作游戏,以其出色的图形表现获得了9分的高评价。游戏采用了UE5的两大突破性技术:Lumen全局光照系统和Nanite几何系统,但在PS5版本上存在一些技术问题。本文将深入解析这些技术在游戏中的应用及其效果。

Lumen光照系统

《黑神话:悟空》是一款真正的光追游戏,虽然提供了英伟达的"全景光线追踪"方案,但即使在全局光照设置为"中"时,游戏也会暗中启动Lumen光追。

Lumen是近年来游戏全局光照技术的集大成者,结合了光线追踪和光栅化方案,并在此基础上进行了创新。

屏幕空间与世界空间的结合

Lumen采用了屏幕空间追踪的反射,并根据屏幕空间向场景内部撒光追探针。为了更好地解决远距离全局光照噪点多的问题,Lumen对世界空间专门撒探针进行单独采样,再与已有的光照信息进行插值,以获得高质量的距离光。

Lumen光追的独特之处

传统实时光追的大致流程是:光线追踪Mesh BVH加速结构-交点几何信息-交点材质信息-(可选多次反弹,回到第一步)-着色。

而Lumen光追的大致流程是:

1.8m以内近距离:光线步进高精度Mesh DF-交点几何信息-采样Surface Cache-交点材质信息-着色-写入Radiance Cache-时域累积/模拟无限反弹

1.8-200m较远距离:体素追踪低精度Global DF-交点几何信息-采样Radiance Cache并注入体素-时域累积/模拟无限反弹

200m以上远距离:光线距离无穷大-采样天空盒

SDF(Signed Distance Field,符号距离场)是一种几何体代理,可以根据原有几何体预先烘焙,光线追踪时只是个索引距离的过程,无需实时像BVH加速结构那样构建,大大节约了性能,但精度较低,且存在一个缺点,将在后面讨论。

Surface Cache和Radiance Cache是Lumen场景的核心。因为SDF只是一个表达距离的函数,光线与它求交并不能获取Material信息,自然就索引不到例如Albedo, Normal, Emissive, Direct Lighting等,于是Lumen会实时为每个物件构造表面缓存(Surface Cache)来使得SDF追踪的过程中有材质信息可用。

Surface Cache可看作一种微型G-Buffer,表现出来的就是下图所示的一堆Card,最后将整合到一个巨大的Texture Atlas里。

Surface Cache可以为Lumen光追提供采样方向的信息。

Lumen光追和传统光追还有一个巨大的不同就是,它并没有Secondary Ray,也就是没有二次反弹。它的间接光照来自于从Surface Cache发射光线,光线与低精度Global DF求交,并在交点处复用上一帧体素光照(涉及2nd-order SH编码)并再写入Radiance Cache,如此往复下去,便做到了无限次反弹的漫反射间接光照。

在重要性采样的方面,Lumen利用G-Buffer里的BRDF数值来调整采样权重,这使得光照贡献更多的地方能分配到较多采样资源,而BRDF等于0的地方则直接不发射光线以节约性能。

我们不难发现,Lumen使用了很多低精度的解决方案,这抓住了漫反射间接光照本身非常低频的特点,就算是使用低精度缓存以及SDF也无伤大雅。

在Lumen的加持下,无论是近距还是远距光照,《黑神话:悟空》的表现都非常优秀。以游戏一开始的场景为例:

近距:

远距:

可惜的是,《黑神话:悟空》的Lumen并没有硬件加速,这使得现代光追GPU并没有得到较完全的性能发挥,这是扣分项。

全景光线追踪

"全景光线追踪"是英伟达自己制造的商业宣传名词,大概意思就是"纯光追",技术上来看就是使用了路径追踪渲染管线,这个问题也不需要过多讨论,因为对我而言讨论起来就是无底洞,我不想在这篇讨论游戏技术的文章里复习渲染方程,蒙特卡洛积分估计等枯燥的学术理论。

符合全景光追的游戏其实早就有了,比如Quake II RTX,Minecraft RTX,它们的光照效果的确令人惊叹,由于路径追踪一直以来都只在离线渲染领域里铺开,之前游戏领域对它的关注少之又少(因为实在是难以实时地跑起来)。直到英伟达提出了它的圈钱战略构想:

不过话说回来,虽然全景光追达到了技术上都是真·影视级的渲染,但由于Lumen实在是太过优秀,导致英伟达全景光追的优势在《黑神话:悟空》里实在不太明显。因此建议显卡性能不高的玩家不要开启全景光追。

Nanite几何管线

Nanite是一个划时代的GPU-Driven的几何处理技术,它与Mesh Shader类似,但是是完全不一样的工程实现。

传统的几何管线需要单独设置几套不同精度的模型来实现LoD切换,而Nanite由于GPU高度掌控几何体的线程组(可以控制线程数量),可以实时通过开关线程来实现全自动LoD(一个线程对应一个基本几何基元,例如顶点)。

同时,GPU-Driven也使得运行几何管线时CPU的负担得到降低。

其次是软光栅,由于现存所有GPU架构中的Raster Engine光栅化小三角形(接近像素大小甚至更小的三角形)的效率都极为低下,并且造成数量恐怖的过度绘制,游戏实现了大三角形/非Nanite几何使用Raster Engine光栅化,小三角形用Compute Shader做软光栅以及小三角形剔除。

说到剔除,Nanite的剔除效率很高。有实例剔除(针对单个Mesh/物件)、层级剔除(剔除Cluster组)和单个Cluster剔除等多管齐下,性能表现优异。

关于粒子、后处理系统,它们的效果同样是很好的,不必多说。

超采样

《黑神话:悟空》提供了TSR,FSR,DLSS,XeSS四种超采样技术。

其中TSR是UE5自己的一个上采样技术,主要是动态分辨率。

其它三个分别为AMD,英伟达和英特尔的GPU架构所服务,所以对于各家显卡而言都建议优先选择自家显卡的上采样技术。

除了AMD FSR在《黑神话:悟空》里的表现是真的太垃圾了,动起来artifact一大堆,尤其是PS5是强制开启FSR上采样,所以FSR的垃圾表现是个扣分项。

"超采样清晰度"这个选项很容易让人误解为锐化选项,建议将其改为"实际渲染比率"会更明了一些。

非Ada架构显卡用户也可以开FSR/TSR进行补帧,建议在原始帧率稳定40 FPS以上时开启,否则手感会变得很差。

漏洞

最后留一个图形问题,什么上采样瑕疵其实都可以不管了,这个应该是最恶劣的,留点心的玩家应该都会发现某些场景(尤其是场景过渡处)会发生巨大的光照变化:

移动一小步后:

这可能是场景可见度系统错误地剔除了几何体,导致了光照错误。由于作者并不熟悉UE5开发,因此不做进一步评价。

结语

虽然仍存在一些图形问题,但是《黑神话:悟空》的总体表现确实是十分优秀的,达到了次世代应有的水平。作为第一款国产3A游戏,它的表现确实对得起玩家的期待。

最后,文章中的图片大多来自第一章,这是因为作者只打到了第一章,打个白毛福瑞就花了几十分钟的时间。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号