电脑没翻墙怎么用谷歌
距离 2018 年第一代硬件光线追踪 GPU GeForce RTX 2080 Ti 发布已经过去了 4 年,根据目前的最新统计,PC 平台上的光线 个,粗略平均的线 个。
其中的一些大作包括例如· 赛博朋克 2077、古墓丽影之暗影、Far Cry 6、漫威蜘蛛侠重制版、地平线、生化危机村庄、地铁离去等等,其中像地铁离去还出了一个强制要求显卡支持 DXR 特性的增强版。
除了电子游戏娱乐外,还有不少渲染器也都引入了硬件光线追踪加速,例如以往只提供 Intel CPU 优化的工业渲染器 Keyshot 等也都第一时间跟进了,原因很简单,采用硬件光线的确显著提升了渲染性能,节约了时间提高了生产力。
对显卡厂商、游戏玩家以及游戏开发商来说,硬件光线追踪或者说视觉感染力和游戏是相辅相成的关系。
电子游戏是离不开视觉感染力的,硬件光线追踪为更强的渲染效果提供了可能,这不仅是画面渲染,还包括了基于光线追踪的音效处理等对玩家同样有直观体验的特性。
针对 CPU 瓶颈问题,Nvidia 为 GeForce RTX 4000 系列引入了名为 DLSS 3 的新超采样技术,在原来 DLSS 2 空间超分辨率的基础上,引入了基于硬件光流加速的时间超分辨率或者说帧合成(Frame Generation)技术,能在前后两帧之间生成一张画面,在不增加 CPU 开销的情况下实现更平滑的画面过渡效果。在实际测试中,DLSS3 FG 能提升大约 30% 以上的帧率。
由于 FG 插帧需要渲染两帧后才能完成插帧动作,会增加额外的时延,因此 DLSS 3 还结合了 Reflex 低时延技术,用来确保时延不会大幅度增加。
一路下来,你会发现 NVIDIA 在光线追踪部署方面可谓是有板有眼:中路主打光线追踪,然后加上不断升级 DLSS 技术打辅助,面对 AMD 和 Intel 的叠加围攻下依然不落下风,最近的市场份额甚至是不减反增。
以 RTX Remix 为例,这是 NVIDIA 趁着 RTX 4090 发布而推出的一个游戏魔改(Mod)工具集。魔改是游戏社区非常盛行的一种文化,已知的魔改作者数量据闻有数百万,每年下载的游戏魔改模组达到了数十亿次,时下流行的 10 款电竞游戏里就有 9 款有魔改。
要修改游戏的图形是一件非常困难的事情,需要开发出特定的工具,为每个素材重建新艺术作品,NVIDIA 表示,为了开发 Quake II RTX,动用了 NVIDIA 工程师、美工、QA 团队数个月时间才搞定,这还是在获得源代码以及其他开发人员提供的魔改工具前提下实现的,这样的开发强度对市面上浩若烟海的游戏不断重复进行是完全不可行的,而且,按照 PCGamingwiki 提供的资料,在已知的 7500 个游戏里,仅有 28 个是提供了已转换的可修改格式。
到了这一步后,RTX Remix 将资产和场景转换为广泛采用的通用场景描述(USD) 开放式 3D 框架,而这个框架也是构建和操作自定义 3D 管道的NVIDIA Omniverse平台的基础。
当资产从 Omniverse 连接器同步到 Remix 的视口时,魔改团队可以协作改进和替换资产,并可视化每个更改。这个工作流程能够改变魔改社区处理他们其游戏魔改的方式,为模组制作者提供一个统一的工作流程,将他们的知识运用到各种游戏而无需学习大量专有工具。
当开发人员制作好 RTX Remix 魔改包后,就可以轻松地将模组导出分享给其他玩家,玩家下载了魔改包后,扔到游戏目录内启动游戏,RTX Remix runtime 就可以完成剩下的工作——RTX Remix 的 64 位 Vulkan 渲染器替换掉旧的渲染 API 和系统。RTX Remix 还提供了这个 runtime 的编辑器,能够让玩家实时定制各种特效选项,例如修改材质属性、添加体积雾等等。
可以看到,RTX Remix 是一个具有划时代意义的魔改工具,对于许多旧游戏来说可能会因此再度焕发新生,在尤其是游戏开发成本越来越高的当下,为各种重制版打开了一条新的快捷开发途径。
众所周知,光栅化渲染的原理是将场景中的每个三角形拿出来,扔到屏幕空间上,让光栅器查找该三角形在屏幕上对应的像素,然后根据法线、深度缓存、光照、纹理等信息渲染该三角形对应的像素,理论上每个三角形都要进行这样的操作,为了节省渲染资源,人们引入了各种剔除、修剪和隐面消除等技术,减少渲染的三角形。
而光线追踪则是对渲染分辨率的每个像素发射一条或者一束射线,让其击中最接近的三角形,根据击中点的属性,确定是被吸收、折射还是反射(后两种会产生衍生射线),从而产生出倒影、发散、折射等效果,周而复始。
光线追踪本身只是一种渲染技术的通用名词,目前已经发展出了多种实现,例如路径跟踪、分布式光线追踪、双向光线追踪、光子映射等等,都是针对不同应用情境下提出的各具优点和缺点的光线追踪实现,例如双向光线追踪可能比较适合散焦特效,分布式光线追踪比较适合全局光照。
从光学角度看,光线追踪才是正确的物理实现,光栅化渲染虽然也能达到基于物理渲染的效果,但是因为缺乏屏外空间信息,可能需要更多的代码和数据才能接近,否则容易产生各种古怪的现象。
在地铁离去中,屏幕空间倒影(SSR)和光线追踪倒影(RTR)的对比(SSR 里船的倒影随着角度的变化而忽隐忽现,而光线追踪倒影则保持很好的一贯性):
即使是某些宣称是光线追踪的情况,但是由于和真正的光线追踪实现完全不是一回事而存在各种问题,例如Reshade 特效外挂基于屏幕空间实现的伪光线追踪全局光照容易产生忽有忽无的现象(黄色色染随着梯子移出屏幕外后就突然消失了):
既然光线追踪或者说真正的光线追踪能产生更逼真的画面,那么为何在 RTX GPU 之前极少看到呢?
光线追踪产生衍生射线后,会继续反弹射向下一个物体,且反弹的方向可能是随机的,单条射线难以准确计算出整个物体表面的明暗,随之就会产生噪点,为了减少噪点,要嘛就是每个像素发射更多的射线,例如数千条射线,又或者是结合随机算法进行累积,这些办法都会导致计算量几何级上升,而更复杂的场景和模型(例如复杂的透明模型)会让计算量在此基础上再跳若干个几何级。
NVIDIA 在 Volta 世代开始引入的光线追踪就是支持使用张量内核进行降噪处理,可以实现较少的射线实现接近参考目标图的效果。
到了 Turning 世代,NVIDIA 引入了 RTCore 来实现光线追踪求交加速,目前所有的 GPU 硬件光线追踪加速基本上都是类似于 Turing——通过加入求交加速模块来加速光线追踪,所不同的主要是具体的规模和涵盖的加速特性范围(例如 NVIDIA RTCore 和 Intel RTU 还支持遍历、排序,AMD RDNA2 则还有欠缺,RDNA 3 有少量改进)。
上图是分别是参考图、采用 NVIDIA 实时降噪器处理的效果以及输入降噪器的光线追踪渲染画面
目前绝大多数的硬件光线追踪加速游戏都是采用了混合渲染流水线,也就是先用光栅化确定可视性,然后使用光线追踪对屏幕区域中特定的位置进行光线追踪计算,这不失为一种画质与性能的折衷,例如 AMD 的 SSSR 就是针对场景中不同位置使用传统光栅 SSR 和DXR 光线追踪的倒影算法。
经过 4 年的发展,光线追踪加速已经不再陌生,除了折射、倒影、阴影等特效处理外,还有一个重要的应用现在开始逐渐增多,那就是全局光照(Global Illumination,简称 GI)的普遍实现。
NVIDIA 在这方面有较长的积累,例如在 2019 年提出的 DDGI(现在的营销名称为 RTXGI),可以在无噪点的情况下实现实时全动态光线追踪全局光照。AMD 在今年(2022 年)10 月也发布了一篇论文,提出了名为 GI 1.0 的全局光照实现办法,在这篇论文中,虽然 AMD RX 6900XT 光线追踪部分的性能只有 RTX 3080 的一半,但是凭借高速缓存的优势,最终达到了持平的性能。
另一个挑战则是场景光照的丰富性问题,例如目前的光线追踪游戏一般只有两个到十六个主光源,即使是 Quake 2 RTX 中也不过是 100 多个用于光线追踪的光源,NVIDIA 为此提出了 RTXDI 技术(在 2021 年正式采用这个名称,主要基于 NVIDIA 2020 年前提出的 ReSTIR 技术)。
RTXDI 尝试近似经典渲染方程的方式进行计算,经过优化后,每个像素只用两条射线采样,结合 NRD 专门为 RTXDI 优化的 RELAX 降噪器,透过多种重采样技术,就能对百万级数量的光源实施光线追踪,彻底摒弃其他所有阴影技术以及环境遮蔽技术,并且可以和 RTXGI 结合实现更逼真绚丽的渲染效果。
RTXDI 可以在 NVIDIA、AMD 等支持 DXR 和 Vulkan 光线追踪扩展的 GPU 上运行,不仅游戏中可以使用,还有一些开发人员已经提供了支持 Blender 的 RTXDI 渲染引擎,适用性相当广。
说了这么多作为铺垫,接下来我要做一些光线追踪的相关测试了,这部分分为主要是偏底层的测试和实际游戏测试,手头有一片 GeForce RTX 3080 Ti FE 和七彩虹的 iGame GeForce RTX 4080 16GB Ultra W OC,相对于之前的公版测试,我这次主要是要一些延伸性的测试,特别是我的 AMD Ryzen 7 5800X 平台上,启用光线追踪是否下相当于“免费”。
散热器外甲采用波普艺术风格,显卡侧面引人瞩目的是“漫画特效”的Ultra灯组(可以使用 iGame Center 2.0 进行灯光同步设置),在开机后会亮起,内部散热模组采用了 5*6 mm + 2*8 mm 热管,热管和鳍片采用了回流焊高度融为一体,三组双滚珠轴承风扇的扇叶直径均达到 100mm,9 片风扇叶片是利于聚风的环形叶片。
位于顶部的电源接口是12VHPWR(PCIE 5.0)电源接口,随卡提供了一条 3* 8pin PEG 转接线,当然如果可以的话最好电源也采用 ATX 3.0 带 12VHPWR 连接线,这样可以让机箱空间更简洁。
虽然七彩虹iGame GeForce RTX 4080 16GB Ultra W OC 的尺寸比 NVIDIA FE 公版更长(大约是 32.5cm vs 30cm),但是在整体重量上由于采用了三风扇开放式散热设计反而要轻不少,不像公版那样有一大圈金属包围,这样的好处除了散热更好外,对于主板来说也是降低了负担,而用户需要注意的是机箱内部需要有足够的空间。
底层测试的目的是希望尽可能获知硬件的理论性能,特别是像 RTCore 相对较少资料的单元,我们对其细节更是充满好奇。
为了探测 GeForce RTX 4080 的光线追踪底层性能,我这次使用 Matt Pettineo 的 DXR Patht Tracer 进行了简单的对比,测试条件是每像素 16 射线 光源,并且启用了若干常见的渲染效果:
这是一个很简单的场景,但是请注意,我们测试的是一个路径跟踪器,性能和取样数、光照路径长度有较大关系。
前面我们说过,常见的光线追踪渲染实现方式是指从摄像机方向发射射线穿过屏幕像素直到击中场景中某个三角形,这一步被称作求交,在完成求交计算后,光线渲染程序中的 anyhit 代码会根据击中点的属性确定是否产生衍生射线以及选择相应的后续计算。
由于会产生多次的衍生射线碰撞,光线追踪需要进行大量简单而重复的求交测试计算,所以求交测试模块是光线追踪加速单元的最主要组成部分,我们在这里的底层测试就是为了探测出 GPU进行一定特效处理的情况下每秒可以进行的射线求交能力。
如果有看过我之前测试的话,应该也了解到我之前是跑过这个程序的。这次我测试的是 github 上的最新代码版本,使用 VS 2022 和 Vulkan SDK 编译。
虽然程序每个场景跑一遍只需要 60 秒,但是我这次使用的测试脚本是涵盖了每像素 1、2、4、8、16、32 条射线以及一次、两次、四次、八次、十六次、三十二次反弹,一轮跑下来大概需要数个小时。
由于程序渲染的场景相对简单,也不涉及降噪等着色器操作,比较容易体现光线追踪加速环节或者说求交性能上的性能差别。
由于 RTCore 对我们来说还是一个黑匣子,里面好多细节我们都知之甚少,NVIDIA 提供了一个名为 RT TFLOPS 的指标,但是这个东西是根据游戏运算量统计百分比,揉合了 SM 单精度性能、RTCore 等效性能、张量内核性能的东东,纯粹度略显不够。
我还测试了包括其他每周期射线 射线)的情况,在较少采样的情况下,例如每像素一射线的时候,两者的平均性能比值差别会少些——152%,在更多采样的时候,性能比值基本一样。
提升幅度较少的是场景 4,这个场景的特点是没有透明、镜面物体,这意味着衍生射线的数量以及随之而来的复杂着色计算会更少,在每像素 1 条射线的时候,七彩虹iGame GeForce RTX 4080 16GB 是 RTX 3080 Ti 的 142%,相当于两者的 RTCore-Ops 比值。
由于支持提供 RTCore 状态特性信息 Nsight 目前只对企业用户以 NDA 的形式提供,普通人难以接触,故此想进一步准确获知相关细节的正门目前是堵死的,因此这次测试只能根据表面结果做判断。
考虑到测试场景不涉及动态模糊或者其他射线插值计算的情况,因此第三代 RTCore 的每周期三角形求交能力两倍于第二代 RTCore 的特性在这里应该是体现不出来的。
对于涉及较多透明、镜面反射物体的场景,NVIDIA GeForce RTX 3080 Ti 12GB 或者说 Ada 架构可以从较大的高速缓存以及着色器性能显著获益,而对于透明、镜面或者说反弹次数较少的场景,基本上就是两者单元规模和频率乘积的高低区别。
在游戏测试方面,我这次打算精简一下,只选择三款光线追踪游戏,分别是赛博朋克 2077、地铁逃离增强版以及蜘蛛侠重制版,其中赛博朋客 2077 具备光线追踪倒影、阴影计算,地铁离去增强版采用了光线追踪来实现全局光照、倒影、阴影,蜘蛛侠重制版是从主机平台移植过来的,提供了光线追踪倒影特效,上述上个游戏均提供了 DLSS 超分辨率技术,其中蜘蛛侠重制版以正式版的方式提供了 DLSS 3 插帧支持,赛博朋克 2077 以内测版的方式提供了 DLSS 3 插帧支持,地铁逃离增强版提供了 DLSS 2 支持。
地铁:逃离增强版:地铁逃离增强版是一个出色的第一人称单人游戏,采用 4A Engine 开发,是第一个强制要求显卡必须支持 DXR 的游戏。
蜘蛛侠重制版:蜘蛛侠重制版是一个移植自游戏机的第三人称动作游戏,采用 Insomniac 游戏引擎,最新版提供了 DLSS 3 插帧支持。
从测试结果来看,蜘蛛侠重制版在我们的测试平台上遇到了 CPU 性能瓶颈,在 2560x1440 的时候启用光线 倍于插帧之前的性能电脑没翻墙怎么用谷歌。相较之下,4K 光线 插帧是启用插帧之前的 1.48 倍。
赛博朋克 2077:赛博朋克 2077 是一个跨平台游戏,采用的游戏引擎是 REDengine 4,提供了光线追踪倒影、光线追踪阴影等特效支持,我们这里测试的版本是提供了 DLSS 3 插帧支持内测版。
NVIDIA 在 9 月份的时候 已经将赛博朋克 2077 列为 DLSS 3 游戏,但是具体的正式支持时间尚不清楚,可能会和 Overdrive 光线追踪(RTXDI)一同发布?
为了获知更多的细节,我将蜘蛛侠重制版和赛博朋克 2077 的更多 CaoFrameX 细化测试结果整理为下面的两个表格:
上面表格中除了大家常见的平均帧率外,还有低于 1% 的平均帧率、应用时延、GPU 耗电、GPU 每 10 瓦耗电帧率以及 GPU 占用率等指标。
1% 频率低帧率是指按照从最高到最低帧率来排列,然后取位于末尾或者说最慢的 1% 帧率进行平均取得的均值,英文一般称为 1% Low Averags FPS被认为是反映卡顿的最佳指标,这个指标越高游戏流畅性感受就越好。如果你对游戏卡顿比较敏感的话,建议关注一下这个指标。
关于 App Latency 指标,按照作者的介绍(以及presentmon1、presentmon2)的信息, App Latency类似于 NVIDIA Frameview 中的 PCLatency,是指电脑 I/O 端口接收到外部人机设备指令后到显卡完成渲染发送数据到显示器的这段耗时。这个指标完全独立于显示器和人机设备,只考虑电脑系统内的情况,可以最大限度反映电脑内部渲染时延问题,该指标的单位一般是毫秒表示。
但是根据我的实际对比,发现 App Latency 和 PCLatency 还是存在一定差异的,特别是在启用了 DLSS 后:
可以看出,在 DLSS Perf + FG on 的时候,PCLatency 测试结果为 50ms,比 CapFrameX 的 13Ms 高不少。
在启用光线追踪后,单纯启用 DLSS 的线ms,比关闭光线追踪、关闭 DLSS 的时候快 29.4%,改善幅度比平均帧率还高。
从测试结果可以确认蜘蛛侠重制版在 2560x1440 的时候的确更容易受到 CPU 性能影响,在启用 DLSS 2 后 GPU 平均占用率只有 52%,此时耗电为 123 瓦,每 10 瓦帧率为 6.92 fps/10瓦。
启用 DLSS 3 插帧后,耗电会有所提升,达到 161 瓦,增加 30%,但是性能耗电比会显著提升达到 10.42 fps/10瓦,提升了 51%。
帧率从 85.1 fps 提升到了 96.5fps,不过 1% Low Avg 只有 1 fps 的改善,最慢帧时间有较大改善。
根据记录数据,此时 CPU 的耗电是 86 瓦,降低了两瓦,而 CPU 最大使用率从 81% 提升到了 96%,GPU 耗电基本持平——125 瓦。
经过四年的发展,光线追踪在软硬件方面已经有了大幅度的改善,当前的旗舰硬件光线K 分辨率下配合超分辨率、插帧等技术下轻松每秒破百帧,在这样硬件能力下,越来越多游戏和应用开发商纷纷加入到支持硬件光线追踪加速的行列,像 PC 平台上的硬件光线追踪游戏数量就从零增加到 100 款以上。
光线追踪对画面的改善不是体现在纹理、模型的细节上,而是更真实的物理光学体验,例如自然而然的全局光照(RTXGI)、不会忽有忽无的倒影、“接地气”的阴影、缤纷绚丽的夜景(RTXDI)等等。
硬件光栅渲染经过近 30 年的发展,能做的改善已经不多,难以克服的地方是时候交给光线追踪来完成了。
在这次测试中,我们了解了 GeForce RTX 4080 16GB 的峰值光线 GRays,是上一代 Ampere 架构 RTX 3080 Ti 每秒 18.4 GRays 的 1.69 倍,在演示场景测试中一般幅度会在 1.65 倍左右,而在游戏中,这个幅度是 1.35 倍左右,原因和目前游戏基本采用混合渲染流水线有关。在混合渲染流水线中,游戏使用光栅器确定每个三角形在屏幕上的位置,然后根据需求决定是否在这些位置上进行光线追踪渲染。
DLSS 技术是实时光线追踪的最佳伴侣,经过多次版本迭代后,DLSS 的画质有了显著的改善,新加入的插帧技术让需要更高画面流畅体验的玩家多了选择。
对于旗舰级的显卡例如七彩虹 iGame GeForce RTX 4080 Ultra W OC 来说,CPU 的确会在很多游戏中成为瓶颈,但是随着 DLSS 3 插帧技术的推广,即使 CPU 成为瓶颈,也能实现更平滑的画面流畅体验,关闭超线程有时候会带来一定的小惊喜。
当然,如果游戏本身并非电竞类,你可以尝试透过帧率约束将游戏帧率上限 60fps,这并非没有意义,因为帧率更低的话,意味着耗电、风扇噪音更低,同样能带来更好的游戏体验。