当前所在位置: 首页 > 宏观 >

环球即时看!Counter-Strike 2 图形渲染解读 (上)

2023-03-26 00:12:01来源:哔哩哔哩

最近总算是等来起源 2 的 CS2 beta了,随之而来的最大变化,图形肯定算一个。作为快被 s&box (不算 HLA)的 起源2开发工具 hang detected 了快 100 小时的人,并且本人爱好还是计算机图形学,还是出来对这次的 CS2 图形发表下看法。为了能写得让玩家们和入门起源开发萌新能看懂,就不科普一些难啃的图形概念(简单的是有的),不把什么 渲染方程,双向反射分布函数 这类东西搬上来吹水了。

这里也插句题外话,起源 2 的资源管理系统和起源1相比有长足进步。从游戏加载时间这一点就能看出来,我的 三星980 (PCIe 3.0) 基本上 5 秒内进 de_dust 2 图。(主要是印象有点深刻就写下来了)

·更加现代化的图形 API


(资料图片仅供参考)

起源 2 原生支持 DirectX 11 和 Vulkan API,意味着支持的着色特性比以往多得多。众所周知,起源 1 的着色器模型标准还停留在 SM 3.0 时代 (DirectX 9.0c)。并且由于 DirectX 11 支持多线程队列的调度,Vulkan 具有更接近硬件抽象层的特性等,它们都能够让游戏绘制指令的处理相较于起源 1 得到大幅优化,对于今天吞吐量极高的 CPU, 显卡 来说无疑是很好的。

这次图形 API 的改进,更多体现出来的是帧数上的提升。(谁叫起源1这么拉呢)

·基于物理的渲染 (PBR)

起源 2 引擎原生支持基于物理的渲染 (PBR),这使得材质观感上升了多个层次。起源 1 因为年代久远并不默认支持 PBR,除非魔改底层。(如 Apex)

起源 2 的全 PBR 流程带来的直接好处就是画质观感的提升。起源1仅支持简单的凹凸贴图,只能让纹理看上去更有立体感,但是质感不能体现出来。而起源2完美解决了这个问题。

实际体现在游戏里就是 金属看上去更像金属,泥巴看上去更像泥巴了。而不是起源1那样 金属 和 泥巴 的光泽看起来像一个东西。当然目前CS2的很多地图并没有大量使用 PBR 材质(以后也不一定会),起源 2 该方面的优势并不能体现。

关于起源 2 引擎该特性更完美的体现,可参考 半条命:爱丽克斯 的最高画质渲染。

·更好的全局光照(GI)效果

这里指的是 静态 的全局光照,因为 V 社游戏绝大多数都无需实时的大规模光照变换,于是起源的全局光照就干脆全部靠离线烘焙来实现。起源引擎一直有一个叫做 “VRAD” 的光照编译器,负责利用辐射度 (Radiosity) 算法计算漫反射的传递,以此来预计算全局光照。

详见:VRAD - Valve Developer Community (valvesoftware.com) 

起源 2 使用的是最新的 VRAD 3,对算法进行进一步优化,且采样率非常高,效果优异。

起源 2 的烘焙效果和起源 1 相比有很大提升,反映到 CS2 上则是光影观感的巨大提升。

但是注意它没有任何一点实时的元素,所以一动起来就会露馅。

这里补充:

全局光照 = 直接光照 + 间接光照 (衍生光线反弹)

游戏的层次感,氛围感(例如傍晚的太阳光充满整个房间,显得十分温暖,柔和),多来自系统计算间接光照的多次反弹到终点的颜色。

V 社在起源 2 的光照编译方面的算法做出了部分优化,压低计算过程中产生的一些artifact.

现在很多大厂的游戏都拿 实时光线追踪 来做 间接光照 了,这也是一种趋势。但是V社不跟进显然也是有原因的,因为他们家的游戏完全不需要。并且还能把这方面的压力转移到开发者而不是玩家身上,毕竟不是谁都拥有一块 RTX 显卡。

但是 VRAD 一直到起源 2 以来都仅支持 CPU 编译,个人认为这是非常脑瘫的。因为 V 社在一篇技术论文里透露,他们自己一直有一台大型计算机来跑离线光追,也不照顾下我们下面这些人的情绪。

但好在有泄露代码表示,VRAD 3 可能今后将支持硬件光线追踪求交加速。对于以后 CS2 的地图制作者们来说无疑是件大好事。

·新瓶装老酒——基于前向管线的渲染

没错,V社还是那么地热衷于前向渲染 (Forward Rendering) 

其实起源 2 已经提供了对 延迟渲染 (Deferred Rendering) 的支持,但是基本上没有人用,所以鲜有人知。

但是前向渲染某种意义上来说也确实对 CS2 来说是件好事。因为开启 MSAA 的开销比延迟管道的小得多。

要是 CS2 搞个延迟渲染,如果 TAA 的 Neighbouring clamp 没做好的话,真不敢想象习惯低分辨率 CSGO 玩家开 TAA 时那种 ghosting 糊得到处乱飞的感人场面。对于 CS 这样画面对竞技性必须影响较小的游戏来说,MSAA 抗锯齿是一种最优解。而前向渲染很容易处理 MSAA.

当然 V 社也设置了 FSR 2 的支持,也是一种时域上的算法,但是比 TAA 锐利。

其次,就是 V 社一直以来引以为傲的着色器渲染。前向管道因为场景物体是一个个画出来的,很容易针对多个对象设置多个 shader,以此堆砌真实感。(不过这个对 CS2 应该没啥用,主要是 HLA)

起源 2 的前向管道实际上是一种 Tile-Based Forward 的管道,算是对时代的一种妥协吧。本人看来既不前向也不延迟,很尴尬,本人对它的评价其实不怎么样。

这次就先到这里,下一章会进行进一步延伸,并且会解释一部分画质设置。

关键词:

上一篇:上海爷叔愁到失眠!家里的现金积了十几个蛇皮袋!根本搬不出去,多家银行婉拒……_新要闻
下一篇:最后一页