9 月 2 日,Nvidia 终于发布了大家翘首以盼的 RTX 30 系列(安培架构)的显卡。尤其是 RTX 3070,比起上一代的显卡王者 RTX 2080Ti,在游戏里平均帧率高出 8% 的基础上,价格却低了整整一倍。

虽然通过 Steam 最新的显卡数据 来看,GTX 10 系在 PC 玩家群体中依然是主流,随着下半年游戏潮的到来,《赛博朋克 2077》《看门狗:军团》《消逝的光芒 2》等等支持实时光追的游戏会越来越多;加上即将到来的「双十一」购物季,对于老用户、尤其是坚守在 10 系显卡的用户来说,剁手升级的时间似乎已经到了。

那么什么是实时光线跟踪,传统游戏是怎么打造光照效果的,升级 RTX 显卡能带来什么,RTX 30 系列的实际性能到底如何?在这篇文章中,我们就来对上面这些问题进行梳理。

传统的游戏光照效果是如何实现的

根据初中所学习的生物和物理知识,我们之所以能看见东西是因为光源发出的光在传播中遇到了不同材质的物体,产生了反射、折射、漫反射、散射等光学现象,这些不同的光学效果带来的最后一部分光刺激到了人眼视网膜上的感光细胞,我们才得以看到不同颜色的物体。

所以不同材质的物体从相同角度来看给我们的观感不一样,相同材质从不同角度看过去的感觉也会不一样。在没有光或者光线很暗的时候,我们也很难看清楚东西。

真实环境的光线远比游戏复杂 图片来自 @unsplash

和现实世界不同,传统的游戏世界在重现这种光照效果时更加注重「最终效果」。我们不妨从两个方面来理解传统游戏世界的光照实现方式:

P.S. 我并非专业游戏开发从业者,也对图形学没有深入研究,所以只能简单地介绍下原来游戏里是怎么处理光线的,如果我有哪方面解释错误欢迎大家在评论区指正。

首先,现代 3D 模型实际上都是通过三角形1构成的,这是因为:

  • 三角形是最简单的多边形,少于3个点就不能成为一个面。所以通过三角形可以节约算力。
  • 三角形必然在同一个平面内的,4 个或以上的点的多边形不一定在一个平面内,多余的点可能在这个面之上或者之下。所以通过三角形可以减少差错。
  • 除了从三角形的边看三角形、三角形会变成线段以外,三角形无论从其他角度来看都是三角形。所以通过三角形可以在必要的时候直接忽视。

同时三角形的面数决定了模型的精细程度,模型精度越高,三角形数目也就越多,性能开销也就越大。

由三角形构成的模型,越复杂的模型也越精细

接下来,我们要知道什么是「光栅化」。

由于我们的屏幕是一个二维的平面,但是大部分的游戏模型却都是三维的,为了能让三维的模型正确显示在二维平面上,我们就需要通过一系列的过程去转换它们:

  • 读取模型的顶点,并根据顶点画三角形
  • 将三角形用近似连点描边的方式转化成屏幕上的像素(三维坐标系可以是小数,而屏幕二维坐标只能是整数,这也是模型最后出现锯齿的元凶)
  • 根据算法计算屏幕像素点到底是在三角形内还是三角形外。在三角形内部的,就上色,在三角形外部的,就不上色。
  • 最后判断这个三角形哪些部分被前面其他三角形遮挡了,对于遮挡的部分就不需要上色,来减少不必要的性能开销。
光栅化工作原理

这个整个过程我们就叫它「光栅化」,通过「光栅化」我们就可以完美地将创作者想要呈现的画面呈现出来,同时游戏里的光的实现也是在「光栅化」这个过程里实现的,只需要对三角形内部的像素进行额外的上色步骤即可:

首先模型的三角形都有对应的固有颜色(皮肤有固有的肤色、头发有固有的发色),所以将模型转化到二维像素以后,可以通过每个三角形的颜色为每个屏幕上的像素分配一个初始颜色值。接下来要根据场景里的其他光源来进一步的像素处理来改变像素的颜色,最后还需要根据纹理(皮革有皮革的纹理,布料有不同的材质)对像素做最后的处理,进而生成应用于像素的最终颜色。

我知道这个过程对大多数人来说都很抽象,我换个更生动形象的说法来说,基于光栅化的游戏光线处理,实际上是你看到的画面里所有的物体在自行发光,而不是和生活中一样通过折射、反射等手段传递光线。这也就是我们在上面所说的以渲染「最终效果」为主要手段。

光栅化的优点在于可以足够快,程序员可以预先写好光线的程序来处理小面积的光线,还可以制作光照贴图,在需要的时候和环境再进行渲染呈现(静态光照效果)来减少处理压力;但是缺点也很明显:不够真实,比方说游戏中的物体投影大部分时候都是一整块颜色相同的区域(阴影贴图),但是我们仔细观察生活会发现由于光的复杂性实际上的投影由近到远是越来越浅的。

投影和更接近真实的投影 图片来自 unreal 引擎官网

更多关于光栅化不够真实的更多例子可以看 这里

光线追踪:用更现代的技术再现光线

相比之下,实时光线跟踪可以营造比传统处理方式更加真实的光线,它通过逆向跟踪与假想照相机镜头(或者眼睛)相交的光作为工作原理,来实现对光线的实时追踪。

逆向跟踪远比真实地模拟光线相互作用的效率要高很多,因为大部分的光经过多次反射会逐渐消失,最后也不会进入眼睛,减少不必要的模拟会让最后的计算压力小很多。

通过逆向跟踪实现的实时光线跟踪

实时光线跟踪技术最终的产物大家或多或少也都接触过了,电影院里能看到的不少好莱坞大片,在特效制作过程中其实都会用到光线追踪技术,最终生成以假乱真的特效场景——这背后往往需要以亿为单位的庞大运算量,每一帧的画面都需要高性能计算机花费数小时的运算。而这仅仅是在设计好一切之后的视觉运算,相比于电影提前设计好了场景和环境的光线计算,游戏的随机性显然更大,实时光线跟踪的实现难度自然也更高。

那么如何把光线跟踪引入到游戏中呢?

作为第一个将光线跟踪技术引入的显卡,Nvidia 在 RTX 20 系列中专门设计了几组 RT Core 来加速逆向跟踪光线的过程,比起 GTX 10 系列,RT Core 能够在实时光线跟踪这件事情上拥有更好的性能,表现在游戏中就是,开启实时光线跟踪以后 RTX 20 系列的显卡平均帧数会更高。

具体而言,RTX 在游戏中实时光线跟踪主要有三种不同的实现方式:

  • 阴影
  • 高级反射
  • 全局光照
仅阴影

仅阴影的代表游戏就是《古墓丽影》,这也是实时光线跟踪最简单的实现方式,只需要确定动态光源的数量和位置就可以给游戏带去动态阴影的效果,在任何的表面和环境下都能获得逼真自然的阴影效果。

上:未开启光追;下:开启光追,人物有了更真实的投影
高级反射

高级反射的代表游戏是《战地 5》,光线需要实时跟踪场景里的所有物体才能正确精准地表现出反射效果,所以很多时候会造成很大的计算压力,因此这里往往还会引入传统的反射处理方法:屏幕空间法,只要画面中你能看到的物件不出现、被遮挡或是不可见,就不会产生反射。这也是为什么有些游戏中镜子看不见背后的人的原因。

上:开启光追;下:未开启光追,小汽车更融入环境里了
全局光照

最复杂的实时光线跟踪方式则是实现全局光照,《地铁:离去》和《控制》都利用了实时光线跟踪去实现全局光照。无论是光源、反射还是投影都是实时光线跟踪计算得到的,这可以进一步提高光照的准确度,更好地烘托游戏场景和氛围。

上:未开启光追,下:开启光追;房间内的光照更为准确,给人的感受更为真实

但是实现全局光照的压力真的是太大了:在没有 RT Core 的 GTX 系列的显卡上打开《地铁:离去》的实时光线跟踪,1080Ti 的表现直接从「高刷模式」掉到了「电影级画质」,帧率从 149 掉到了 38。

进一步了解实时光线跟踪技术和传统技术在最后营造的画面上有什么不同。

所以正如前面提到的电影工业里的实时光线跟踪十分考验计算能力一样,即便有 RT Core 这样的计算核心进行加速,在原生分辨率下开启实时光线跟踪也会带来非常严重的帧率下滑;受限于成本, Nvidia 也不可能无限制地堆砌 RT Core 数量(不然就真的没几个人买得起了)。

有没有什么办法在不降低分辨率的情况下仍能获得稳定的帧率呢?

DLSS:让高分辨率光追成为可能

既然高分辨率不能达到稳定的帧率,那不如先降低分辨率渲染,再用算法提升到较高的分辨率,这样不就高分辨率和稳定帧率兼得了嘛。

没错,这其实也是目前大部分游戏机的处理 4K 画面输出的办法。但是用什么算法提升分辨率呢?

图片来自知乎 @一疼 ETN

很多人会想到的第一个方法可能是插值技术。借助插值,我们可以很轻松地将 1080P 画面提升至 4K 分辨率,但简单插值效果并不好,对游戏这种特殊的渲染内容而言,还会带来额外的锯齿。

所以 Nvidia 选择了用深度学习去计算画面,也就是我们看到的 DLSS 技术。

DLSS 的全称是 Deep Learning Super Sampling(深度学习的超采样),它主要通过 RTX 20 系列引入的 Tensor Core 硬件加速了深度学习,来对实时渲染的图片实现非常高质量的超分辨率。

在 RTX 30 系列发布以前,DLSS 2.0 就已经发布了,对比上一代的 DLSS 有如下改进:

  • 4 倍的实时超采样
  • 2 倍的处理速度
  • 通用模型
  • 媲美甚至超越原生分辨率的画面

4 倍的实时超采样,让我们在一个极低的分辨率下就可以获得一个高分辨率,比方说只需要渲染一个 540P 的画面即可生成一个 1080P 的最终画面,大幅度减少了显卡压力。加上全新的算法方式,最后获得甚至可以超越原生 1080P 的画面。

图片来自知乎 @文刀秋二

高达 2 倍的处理速度,主要体现在一段时间内可以处理的帧数会更多了,搭配 4 倍的实时超采样,最后的结果就是渲染的性能会暴涨游戏帧率直线上升。以《控制》为例,4K 分辨率下光追效果全开(全局光照),直接把 2060 的 8 FPS 提升到了 36 FPS,让 PPT 有了可玩性,堪称魔法。

图片来自知乎 @文刀秋二

而使用通用模型可以快速在多个完全不同的场景、引擎和风格的游戏中部署 DLSS,让所有的游戏利用同一个神经网络实现高质量的超采样。

本来在游戏图形领域,性能和画质绝对是成反比的,要想要更好的画质,就一定要牺牲性能。而通过 DLSS 2.0 这种鱼和熊掌兼得的革命性技术,我相信原生分辨率渲染输出很快就会变成过去式,超采样的画面不仅不差,反而可能会更好

左:未开启 DLSS 的原生 1080P,右:开启 DLSS 的 1080P

那 RTX 30 系列显卡怎么买?

在上一代 RTX 20 系列显卡推出以后,我们就已经见识到了游戏实时光线跟踪带来的魅力。而这次更加令人瞩目的是 Nvidia 宣称 RTX 3080 有 2 倍于 RTX 2080 的性能,价格还只需要 700 美元,对比RTX 2080 推出的时候售价高达 800 美元的售价,这根本就是加量反而还降价了。

等等,真有「2 倍性能」那么夸张吗?

RTX 3080 提升了多少?

首先,聊聊所谓的 RTX 3080 对比 RTX 2080 提高了的 2 倍性能这一点,在 LTT 视频中 Nvidia 表示这个 2 倍专指《雷神之锤 2 RTX》和《我的世界 RTX》两个游戏下的性能提高了 2 倍,另外值得一提的是这两个游戏的光追都是全局光照。

那么 RTX 3080 性能到底怎么样:

图片来自 LTT 

在 2K 原生分辨率下进行实时光追,RTX 3080 不仅和定位相同的 RTX 2080 比提升了 20%~75% ,同时也比价格更高的 2080Ti 也快了不少。

而在 4K DLSS 2.0 分辨率下,作为现在「显卡杀手」的微软模拟飞行 2020,RTX 3080 跑出了 41FPS 的优秀成绩,远比 2080 和 2080Ti 强上不少。对于即将入手非公版 3080 的我来说,终于可以安安静静地开飞机了。

图片来自 LTT 
图片来自 LTT

在 4K DLSS 2.0 分辨率下打开实时光追进行游戏,3080 最低也能够保证「电影级帧率」,虽然看起来并不好看,但是和上一代的旗舰对比足够了,况且还有一个能以 8K 分辨率运行游戏的 3090 呢。

关于 RTX 3080 的完整测试可以点击 此处 观看,这里结合 LTT 的视频、超能网的测评以及 TECHPOWERUP 的测评,简单总结下和 RTX 2080 比性能有多少提升:

  • 光线追踪开,DLSS 关:RTX 3080 ≈ 2x RTX 2080 ≈ 1.5x RTX 2080 Ti
  • 光线追踪开,DLSS 开:RTX 3080 ≈ 1.8x RTX 2080 ≈ 1.37x RTX 2080 Ti
  • 光线追踪关 ( 或不支持 ) :RTX 3080 ≈ 1.67x RTX 2080 ≈ 1.34x RTX 2080 Ti

所以,虽然一般情况下 RTX 3080 很难达到 RTX 2080 的两倍,但是它的提升幅度仍然非常可观,跑起游戏来真的是非常强劲,加上今年即将到来的游戏大部分都会支持实时光追技术,看起来 RTX 30 系列非常值得入手。

价格差距那么大,买哪款?

如果你关注 RTX 3080 的非公版首发价格,就会发现同型号首批 30 系显卡的首发价格从 5500 元~7500 元不等,价格差距非常大。

其实不止 RTX 3080,其他显卡也是这样——虽然核心都是 RTX 3080,但是显卡核心周围的板载电容、散热设计等等,都会导致显卡价格出现差距。一般来说,一张显卡的价格受下列几个因素影响:

  • 芯片的基础价格:RTX 3070 核心和 RTX 3080 价格就不一样
  • 芯片体质:更好的体制意味着核心可以更容易 Boost 到更高的频率,意味着可以在部分复杂场景里保持更高的帧率;或是能够保证长期超频使用下的稳定性。
  • 散热设计:更好的散热设计意味着核心可以更容易停留在更高的频率,意味着可以在部分复杂场景里保持更高的帧率。或者在正常情况下保证更静音的体验,有谁会不爱静音呢。
  • 用料做工:电容的用料、电容的多少也会影响到显卡的性能和稳定性,尤其是超频后的稳定性。像是有的适用于 ITX 主板的短卡,因为工艺集成高所以更贵。另外像是这次 3080 非官版系列也有双 8pin 和三 8pin 供电的区别。
  • 外观设计:有些用户喜欢更炫酷的外观,像是显示屏、发光元件,这部分的价格也不便宜;而有些特殊配色要价也不便宜。
  • 品(xing)牌(yang)溢价:部分品牌也是有一定比例的品牌溢价的,当然也确实有很多人愿意埋单。

所以某张显卡到底价值多少,不仅要看纸面数据,还得结合我们看不见的各种因素综合考虑。

价格

预算是第一要义,由于显卡定价的因素过多,关于这个方面我只能说在购买的时候一定在有预算的基础上再有一个购买目标,是更喜欢炫酷的外观还是偏好静音,这样可以快速挑选出合适自己的几张显卡,搭配着拆解或者测评,来决定最后的选择。

另外由于这次产能有限,如果不是真的很急的话,不要急着买有溢价的显卡

尺寸

购买显卡的时候还需要考虑机箱塞不塞的下这个体积的卡,比方说你一个 ITX 机箱一般来说肯定塞不下 ATX 尺寸的显卡的,这个一般在搜索时带上 ITX 这样的关键词就可以避免了。

显卡的厚度也会影响到能不能正常使用,这次 RTX 3080 有的是占据三槽位的,有的是则是两槽位的,三槽位的在一部分主板上可能会挡住另外一个 PCI-E 槽,如果这个 PCI-E 槽有在使用的话,就只能选择购买两槽位的版本。

关于这点可以去主板官方去查询 PCI-E 槽之间的距离与显卡的厚度进行比较。

部分机箱的硬盘盒可能也会限制可安装显卡的长度,这点可以通过机箱说明书或者在机箱官网查询到。而对于购买了品牌机的人群来说,升级显卡的时候需要参照品牌机官网的说明,一般品牌机官网有详细的说明

电源

这次 RTX 30 系列整体功耗属实高了不少,电源到底要多少才比较合适呢?

这里要说个前提,显卡功率不是线性的,也不会像在软件里显示得那么平滑,而是会在短时间里冲到一个非常夸张的值再在短期间内回落。虽然电源能有一定的过载输出的能力,但是长期过载轻则游戏闪退黑屏系统不稳定,重则损伤电源甚至影响到电脑里别的部件,所以电源一定要买够功率才行。

非常夸张的 3090 峰值功率,来自 fcpowerup

我这里引用 fcpowerup 的结果,在处理器是 i9-9900K 的时候,对于 RTX 3080 来说,电源至少需要 750 W;对于 RTX 3090 来说,电源至少需要 950W。满足这一要求即可安全稳定地进行游戏,而不会出现黑屏游戏闪退、电源损耗过大的情况,如果 CPU 等级更高的话还需要用更大的电源。

小结

上面其实已经提到,我这次其实也打算买一块非公版的 RTX 3080。所以文章的最后,我就简单分享一下我的具体选购思路吧,仅供参考。

  • 首先确定不买公版:公版的会把热风往 CPU 散热器那边吹,我用的又是风冷,怕 CPU 散热压力太大,所以我最终选择了非公。
  • 接下来预算:期望预算和公版差不多,大概在 5500~5800 元左右搞定。
  • 同时检查现有的硬件的兼容性:850W 的金牌电源足够了,机箱长度足够,主板空间也足够大。

再去京东把所有的 RTX 3080 显卡和即将上架的显卡的显卡数据列出,顺便看看有没有测评能进一步完善数据无法体现出来的东西。再定一个目标帮助去掉不必要的选择:和公版性能差不多、没有 RGB、安静

最后我选择了影驰 RTX 3080 金属大师,没过多的 RGB,风扇 RGB 可以关闭,整体风格比较硬朗。本来决定等价格回落点就是它了,不过现在听说未来 RTX 3080 还有 20G 显存版,所以我还是等等好了。

以上就是本文的全部内容,希望它能帮助到你。

> 下载少数派 客户端 、关注 少数派公众号 ,给你最接地气的实用干货 🍕

> 实用、好用的 正版软件,少数派为你呈现 🚀