前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >和我一起去追光

和我一起去追光

作者头像
Peter Lu
发布2022-09-01 17:13:32
5710
发布2022-09-01 17:13:32
举报
文章被收录于专栏:LETLET

Eric Haines是英伟达的工程师(Distinguished Engineer),也是’ Real Time Rendering’第四版的作者,以及‘Ray Tracing Gems’第一版的主编。Ray Tracing Essentials系列是他推出了关于光线追踪的系列视频,共分为7期:

  • 基本概念
  • 栅格化与光线追踪的对比
  • 光线追踪的硬件支持
  • 光线追踪渲染管线
  • 光线追踪效果
  • 渲染方程
  • 降噪

Part 1:基本概念

“Ray Tracing is the technology of the future, and it always will be!”

本系列首先介绍了光线追踪的基本概念,Ray Casting的两种类型以及光线追踪的基本成像原理。

Classical Ray Tracing

然后介绍了Ray Tracing发展过程中主要的贡献和相关算法的解释,一共包括三个主要的光线追踪算法:

  • Classical Ray Tracing
  • Stochastic Ray Tracing
  • Path Tracing (渲染方程,the rendering equation)

详细内容可浏览如下视频:一起看光线追踪(1):基本概念

Part 2 栅格化与光线追踪的对比

“The brute-force approach which is already ridiculously expensive.”

本篇首先对比了光线追踪和栅格化之间的区别,阐述了两者在渲染中相似但又不同的渲染顺序,然后介绍了Bounding volume Hierarchy(BVH)这种光线追踪中广泛应用的加速结构,最后针对基本问题,主要操作,性能,加速结构,缺点等方面,给出了栅格化和光线追踪之间的不同。

Rasterization vs Ray Tracing

文末,作者也给出了自己的观点,两者各有利弊,可以相互结合,形成一种Hybrid的渲染方式,栅格化可以用来渲染底图,而光线追踪则可以用来加强光影等细节效果。

详细内容可浏览如下视频:一起看光线追踪(2):栅格化与光线追踪的对比

Part 3 光线追踪的硬件支持

"Computers will be fast"

这一期,Eric主要讨论了光线追踪涉及到的GPU硬件相关的内容。

首先,Eric给出了自己的观点,尽管随着硬件性能的提升,但渲染的性能始终是恒定的,就好比Windows系统下打开一个窗口永远都需要五秒钟。接着,解释了渲染为何‘embarrassingly parallel’,也分享了他切身经历的渲染性能的发展史,最后也探讨了摩尔定律已经结束了这个不争的事实。

面对现状,现代硬件的发展则侧重于专项功能的优化方案,如上图,在传统的Shader&Compute的基础下,新一代的GPU提供了专门的Tensor Core以及RT Core。这些大大提高了计算性能和光线追踪下的硬件加速能力。

Eric详细介绍了GPU中的RT Core部分,它提供了Ray Tracing的硬件加速能力,侧重于射线与三角形的求交能能力。

同时,现代显卡也极大地提高了内存容量,高到512GB,而通常电影级别的复杂场景的内存需求在50GB左右,这样,可以满足一般应用中将整个场景都放在显卡中提供硬件加速的能力。

最后,现在的显卡更易于调优,方便我们不断地发现瓶颈,优化性能。如上图是性能对比的截图,当我们分别借助Tensor Core和RT Core时,在计算和渲染方面,性能得到了极大的提升。

最后,Eric通过Star Wars Reflections这个Demo,该Demo是NV联合微软的DXR,以及UE渲染引擎而成,最开始采用4块显卡来支撑,而在图灵卡问世后,只需要1块显卡。大家可以亲身感受GPU下光线追踪带来的视觉体验。

详细内容可浏览如下视频:一起看光线追踪(3):光线追踪的硬件支持

Part 4 光线追踪渲染管线

"GPUs are the only type of parallel processor that has ever seen widespread success… because developers generally don’t know they are parallel!"

Matt Pharr: On to the next thing

本篇主要介绍光线追踪的渲染管线。

作者首先给出了栅格化和Ray Tracing渲染管线的对比,详细阐述Vulkan和DXR中光线追踪中的五种shader类型:

  • Ray Generation
  • Intersection
  • Miss
  • Closest-hit
  • Any-hit

接着,Eric阐述了光线追踪的整个流程,以及Any-hit在处理透明物体时的作用。

最后,视频介绍了光线追踪在游戏行业中的价值,比如反射,阴影和全局光照,在其他行业中的烘培,效果比对以及一些非主流应用(比如碰撞检测)等。

详细内容可浏览如下视频:一起看光线追踪(4):光线追踪渲染管线

Part 5 光线追踪效果

"Is it the real life? Is this just fantasy?"

本篇主要讨论光线追踪的渲染效果。

Eric分享了其在康奈尔大学读书时Cornel Box场景的产生过程,基于该场景,解释了软阴影,全局光照,Glossy等效果,作者给出如上图片,让大家来查找图中对应的渲染效果。

接着,Eric又介绍了环境光遮盖,体积光以及光蚀caustics现象,并以自己的经历来解释,为什么caustics is dangerous

详细内容可浏览如下视频:一起看光线追踪(5):光线追踪效果

Part 6 渲染方程

“The ‘Muse’ is not an artistic mystery, but a mathematical equation.”

本篇终于讲到了渲染方程,Eric首先解释了该方程的主要参数,分解该方程并分别解释其中的含义。然后,作者解释了如何通过路径追踪算法求解渲染方程,基于材质的不同,讨论了重要性采样的不同。

最后指出,我们不仅要考虑材质,也需要考虑光源,这样的采样才是最优解,而另一个Eric的论文提出了Multiple IS(多重重要性采样)算法,可以用于优化该算法。

详细内容可浏览如下视频:一起看光线追踪(6):渲染方程

Part 7 降噪

"The world is noisy and messy. You need to deal with the noise and uncertainty."

本篇主要讨论了目前的降噪技术以及该技术的重大意义。

首先,Eric介绍了不同的每像素采样数(SPP)下不同的渲染质量,同时指出,渲染的效果和采样数的根号正相关,这解释了随着采样数越多,受益越不明显的结论。巨大的计算量无法满足实时渲染的性能要求,因此,我们需要一种重建技术,能够提高画质,而降噪就是其中重要的一种方式。

接着,Eric通过一些不同的场景,介绍了降噪技术在高性能下带来的效果显著提升,并给出不同场景下降噪的一些基本策略和算法思路,最后,对比了传统的降噪算法和神经网络训练下的降噪结果。

接着,Eric给出了真实效果,降噪技术以及传统的阴影技术下的渲染效果,其中,降噪技术和真实效果非常接近,而传统的阴影技术则会产生彼得潘问题。

最后,Eric通过一段视频,展现了降噪技术的效果,并强调了,正是得益于降噪技术,能够让光线追踪比想象中更早地进入应用领域,因此,降噪技术是实时光线追踪的重要环节。

最后,作为该系列的最后一期,Eric也表达了对光线追踪的热爱,并给出了他最后的一个quote:

“Ray tracing is simple enough to fit on a business card, yet complicated enough to consume an entire career.”

详细内容可浏览如下视频:一起看光线追踪(7):降噪

最后,个人认为,无论是选择喜欢的事情还是寻找意中人,都应该是那些能让我们眼睛发光的,即便她可望不可及又怎样。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 LET 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档