现在游戏的绘图 pipeline 可以从下面的文件中了解
http://intro-to-dxr.cwyman.org/presentations/IntroDXR_RaytracingShaders.pdf
不管是 PC/XSS/XSX/PS5或是 Xbox one/PS4 基本都是差不多的
现在主要在看 GPU 性能的 FLOPs 基本就是这些可程式化 Shader 的
运算能力,不管是那个 shader 都是用同样的逻辑单元去处理。
如果把多边型物件的运算,跟像素的生成分成两个部分来看的话。
前者处理了画面中的 animation 跟顶点这些计算,后者则是靠这些
资讯去生成对应的像素图型,并对像素做后处理。
如果只看这部分那其实这个世代的主机,跟上个世代并没有根本的
差异。或许可以说在 pixel 的后处理上,这个世代加上了 hardware RT
但上个世代并没有。可是以 UE5 的 Lumen 来说是 software RT 并没有
使用 RT 核心去处理。虽然有很多限制但是一样有类似的效果。
所以虽然硬件进步了但是游戏本身并没有太大的差异,因为绘
图的 pipeline 并没有太大的差别。
接下来的游戏画面要有根本的进步,可能会需要走向 UE5 的
处理方式。或是说 primitive/mesh shader 的运作上面。
https://blog.siggraph.org/2021/04/mesh-shaders-release-the-
intrinsic-power-of-a-gpu.html/
以 UE5 来说 Nanite 跟 UE4 的差异是在多边型的规模跟处理上面,
https://docs.unrealengine.com/5.0/en-US/nanite-virtualized-
geometry-in-unreal-engine/
Nanite Mesh 的基本要求是没有不同距离的 LOD ,不管画面的远近,他们
都使用同样细节的多边形跟材质来处理。然后在primitive/mesh shder 的处理
上把超过 pixel 数量的多边型给删除掉。让其后的 pixel shader 不需要去
处理那些过多且不必要的多边型,因为画面无法显示那些多边型。
只到这个部分其实就算是 Xbox one/PS4 不靠 mesh shader 也可以做到。虽
然说可能这样一来在一开始的顶点运算上就会消耗掉太多的资源,后面
的像素处理就会没有足够的资源,分辨率或是 fps 会被牺牲掉。但是并
没有根本上的硬件限制去限制上一代的主机做这样的事。
真正影响上一代主机做这件事的是主机的内存容量,跟硬盘资料的存
取速度,以及资料的压缩/解压缩能力。
UE5 的手册中谈到了
Nanite and Virtual Texturing systems, coupled with fast SSDs,
have lessened concern over runtime budgets of geometry and
textures. The biggest bottleneck now is how to deliver this
data to the user.
Data size on disk is an important factor when considering
how content is delivered — on physical media or downloaded
over the internet — and compression technology can only do
so much. Average end user's internet bandwidth, optical media
sizes, and hard drive sizes have not scaled at the same rate
as hard drive bandwidth and access latency, GPU compute power,
and software technology like Nanite. Pushing that data to users
is proving challenging.
他们文件中提供的例子中在多边型的模型上所须要的容量是低多边型
的十多倍。如果说当游戏的画面要保持着高多边型跟高解析材质的水
准,那就须要很大的内存来存放。很可惜的内存并不是无限的。
所以这时高速的 SSD 跟即时的资料解压缩能力就变得更为重要。因为
游戏引擎需要不断的刷新玩家在接下来几分钟或是几秒钟可以接触到
的东西,以保证游戏本身的顺畅。
这部分是这个世代可以做到,但是上个世代的主机则没有办法的部分。
并不是说 GPU 的运算量有多少就可以改变的地方。
游戏引擎的更新所需要的时间往往是更久的,至今应该还没有游
戏真的这样去开发,所以变成了就算是用 4090 在游戏上面得到的,就
是更高的 fps,或是更多 Deferred Renderer 的效果。可是对用比较低等
级硬件的玩家来说,能玩到的游戏没有根本的差异。因为多边型跟材质
并无太大差异。
另一方面是如果厂商要这样去开发游戏,投入的成本规模跟人力也
会伴随着提升,在当下的市场环境中要看到立即的转变并不现实。