追光者NVIDIAGeforceRTX2080Ti图灵架构浅析
消息来源:baojiabao.com 作者: 发布时间:2024-04-29
作者:陈寅初
曾几何时,人们为了在屏幕上能实时显示几个有深度感的方块而欢呼雀跃,1993 年经典游戏 DOOM 问世的时候,游戏业界媒体发表了大量围绕该游戏的报道,除了通关攻略外,对游戏开发人员、游戏技术都进行了全方位的报道,原因无他——这是当时第一个能在个人电脑上以实时三维方式渲染的第一人称网络游戏,在游戏图形史上的地位举足轻重。
自此以后,围绕电脑实时三维渲染图形的技术和应用开始铺天盖地的涌现,CPU 方面首先发力,拥有更强浮点性能以及 SIMD 的 Pentium II 问世,不过 CPU 毕竟主要负责逻辑代码的处理,游戏只是众多任务之一。
因此为了实现更快的实时渲染性能,人们又推出了专门针对游戏图形加速芯片,3Dfx、NVIDIA、ATi、S3 等等众多(还有许多现在已经消失的)显卡厂商都在此时兴风作浪。最终,经过激烈的市场竞争,到了 2002 年的时候,随着 NVIDIA 收购 3dfx,显卡竞争厂商也就剩下两家:NVIDIA 以及 2005 年被 AMD 收购的 ATi。
受制于芯片面积的缘故,人们往图形芯片堆放的功能并非一步到位,对速度追求的优先度总是优先于功能。
例如早期的游戏图形芯片也就是实现了三角形设置、贴图、颜色混合这三个功能,在这之后才是逐渐加上顶点变换(例如 NVIDIA Celsius摄氏,Celsius是架构代号,代表芯片是全球第一枚 GPU NV10,例如采用 NV10 的 GeForce 256)、多采样抗锯齿(例如 NVIDIA Kelvin开尔文)、可编程着色器(例如 NVIDIA Kelvin开尔文)、高级语言通用计算(NVIDIA Tesla特斯拉)、统一架构(NVIDIA Tesla特斯拉)、曲面计算(NVIDIA Fermi费米)等特性。
不过在 GPU 功能、性能不断提升的日子里,业界一直伴随着一种声音:什么时候可以实现光线追踪渲染呢?
现在的游戏绝大多数都是采用名为光栅渲染的技术,而光线追踪则和光栅渲染有不少区别,在过去它都是离线渲染才会使用的渲染技术,不过到了今年,NVIDIA 公司却公布了首款具备专门光线追踪硬件加速的微架构——图灵Turing,这标志着沿用了 20 多年的游戏渲染技术终于迎来了首次真正意义上的革命,人们得以尝试基于物理的实时渲染加速。
看到这里,相信有些人已经有点看不下去了,因为上面引出一堆诸如光栅化渲染、光线追踪的学术名词。好在这些东西解释起来其实并不是很复杂,接下来我会尝试用最短的篇幅来介绍,务求大家看完后能知道基于图灵架构的显卡是否就是自己要买的那块显卡。
光的起源:光栅化与光线追踪
PC 上比较著名的早期三维游戏《德军总部 3D(Wolfenstein 3D)》使用的是名为光线投射(Ray Casting)技术实现的,它的原理是在某种几何尺度限制的前提下进行光线投射和追踪。例如,显示器的分辨率是 320×200 个像素的话,光线投射器只追踪 320 条光线(因为水平像素分辨率只有 320 个)。
在大多数情况下,这种渲染方式的方程并不准确(例如不进行场景光线递归),渲染品质不是很真实(稍微凑近看到的都是斑块),但是速度比较快。除了德军总部 3D 外,Raven 公司的 Shadow Caster、Bethesda 公司的 Arena、前面提到的 id Software 的 Doom 以及卢卡斯公司的 Dark Forces 都采用了 Ray Casting 技术。
光栅化渲染
现在的游戏都采用了名为光栅化(rasterization)的方式进行渲染,在光栅化渲染流水线上,同一时间内都是在画一个三角形。
这个三角形需要先经过计算确定其大小和位置,然后到了光栅器上,由光栅器计算出有哪些像素被其覆盖以及在被覆盖像素上的投影面积。
光栅化渲染的好处是快速,例如渲染大场景的时候,因为理论上每次渲染的时候内存里只要存放一个三角形的信息即可,三角形的属性维护可以在寄存器或者高速缓存里进行,这样能减少内存传输;只需要渲染被当前三角形覆盖的像素即可,如果配合一些隐面消除技术,还可以减少需要渲染的三角形数量。
问题是,光栅化每次都只渲染一个三角形,很多效果其实至少需要两个三角形才能实现,例如把三角形的阴影投射到另一个三角形上、三角形和另一个三角形的倒影、场景中所有三角形的光照反射等等。
光栅化渲染要实现复杂特效来模拟真实世界需要用上许多技巧,而这些技巧有时候会彼此之间存在冲突,需要另外的技巧来避免,这使得光栅化渲染在实现高级特效的时候会相当复杂,使得渲染器的编写、维护成本日益高昂。
光线追踪渲染
这张卡片上的代码可以以光线追踪的渲染方式画出下面的效果:
这里插播一个视频,也许能让你对实时光线追踪能达到的效果有更直观的了解。
光线追踪的方式可以分为正向光线追踪(从场景里的光源发射光线)和逆向光线追踪(从观察者或者说眼部、摄像机灯发射光线)。
现在人们一般所指的光线追踪算法,都是采用逆向光线追踪方式,让光线从“眼部(或者说’相机’)”发射,穿过屏幕上像素栅格进入场景中,直至找到最近的物体,确定与物体的交汇点,这个动作被称作求交。
“眼部”发出的第一条射线被称作主射线(primary ray)
光线追踪的第一次求交和德军总部 3D 采用的光线投射渲染方式是一样的,但是光线投射不会做接下来的反射、折射等光线递归处理。
此时,这条光线可能会被物体吸收、折射、反射,也可能会落入到阴影(交汇点和光源之间存在遮挡物)中,根据物料和光照的等条件,交汇点会被着色器画上相应的颜色。对于存在折射、反射、阴影的情况,需要再从交汇点发射光线,直到遇到吸收表面、或者抵达场景极深处,完成递归。
光线追踪求交后,出现需要遍历场景其余三角形而发射的射线被称作次生射线(Secondary Ray),包括反射射线、折射射线、阴影射线。
此时,该像素的颜色最终确定下来了。
比较有趣的是,虽然我们现在觉得正向光线追踪是最自然的光照原理,但是从诞生时间上来说,逆向光线追踪理论诞生得最早,它可以追溯到公元前五世纪古希腊哲学家恩培多克勒提出的古怪理论。
和当时的许多希腊人一样,恩培多克勒认为万物都是由火、空气、泥土、水构成的,但是他相信希腊爱神阿芙洛狄蒂将人类的眼球独立于四种元素之外,并在其中点燃了火光,这些火光从眼部射出,使得人们有了视觉。
而正向光线追踪是到了公元 11 世纪左右才由阿拉伯科学家海什木提出,他认为我们之所以能看到物体,是因为来自太阳的光线:以直线方式行进的微小颗粒流从物体反射到我们眼中。
由于场景中的光源发出的绝大部分光线不会在观察者看到的光线中占很大比例,因此逆向光线追踪在效率上要比正向光线追踪高很多倍。
光线追踪的目的是要构建出整个场景的可视信息以及光照条件,借此计算出光线和场景中物体相交时光线的反射、折射、吸收、遮挡信息,但是一般来说,它并不怎么考虑漫反射的情况,而且物体表面的属性相对单一。
对于漫反射,人们也会使用辐射度算法实现,当然,这和光线追踪并不矛盾,辐射度可以在光栅化和光线追踪渲染流水线中应用,例如 EA 的游戏战地三就用了辐射度来模拟全局光照。
相对于光栅化渲染速度快但是复杂的特点而言,光线追踪则刚好相反,它的渲染算法比较简单,但是要实现逼真的效果,是需要大量的计算才能实现,与光线追踪的技巧主要是如何实现节省计算资源和减少内存存取上。
上面两张图分别是在 DirectX 12 中的光栅化渲染流水线(简化)和光线追踪流水线,你可以看出两者在输入、前端处理、中段渲染上是很不一样的。
我们在这里说了一大堆看上去比较理论的东西,目的是为了下面的图灵架构介绍可以更简单明了,因为像光栅化这样的渲染框架其实对于许多人来说也是不清楚的,更不要说又冒出了个光线追踪出来,而光线追踪中能加速的部分正是图灵架构的重大革命。
相关文章
- 中兴受美国制裁事件 被罚了20亿美元过程事件始末 中兴被制裁后公司现状
2023-11-02 22:12:46
- B站怎么炸崩了哔哩哔哩服务器今日怎么又炸挂了?技术团队公开早先原因
2023-03-06 19:05:55
- 苹果iPhoneXS/XR手机电池容量续航最强?答案揭晓
2023-02-19 15:09:54
- 华为荣耀两款机型起内讧:荣耀Play官方价格同价同配该如何选?
2023-02-17 23:21:27
- google谷歌原生系统Pixel3 XL/4/5/6 pro手机价格:刘海屏设计顶配版曾卖6900元
2023-02-17 18:58:09
- 科大讯飞同传同声翻译软件造假 浮夸不能只罚酒三杯
2023-02-17 18:46:15
- 华为mate20pro系列手机首发上市日期价格,屏幕和电池参数配置对比
2023-02-17 18:42:49
- 小米MAX4手机上市日期首发价格 骁龙720打造大屏标准
2023-02-17 18:37:22
- 武汉弘芯遣散!结局是总投资1280亿项目烂尾 光刻机抵押换钱
2023-02-16 15:53:18
- 谷歌GoogleDrive网云盘下载改名“GoogleOne” 容量提升价格优惠
2023-02-16 13:34:45
- 巴斯夫将裁员6000人 众化工巨头裁员潮再度引发关注
2023-02-13 16:49:06
- 人手不足 韵达快递客服回应大量包裹派送异常没有收到
2023-02-07 15:25:20
- 资本微念与李子柒销声匿迹谁赢? 微念公司退出子柒文化股东
2023-02-02 09:24:38
- 三星GalaxyS8 S9 S10系统恢复出厂设置一直卡在正在检查更新怎么办
2023-01-24 10:10:02
- 华为Mate50 RS保时捷最新款顶级手机2022多少钱?1.2万元售价外观图片吊打iPhone14
2023-01-06 20:27:09
- 芯片常见的CPU芯片封装方式 QFP和QFN封装的区别?
2022-12-02 17:25:17
- 华为暂缓招聘停止社招了吗?官方回应来了
2022-11-19 11:53:50
- 热血江湖手游:长枪铁甲 刚猛热血 正派枪客全攻略技能介绍大全
2022-11-16 16:59:09
- 东京把玩了尼康微单相机Z7 尼康Z7现在卖多少钱?
2022-10-22 15:21:55
- 苹果iPhone手机灵动岛大热:安卓灵动岛App应用下载安装量超100万次
2022-10-03 22:13:45