前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >什么是真实感渲染(三):前沿趋势之实时光线追踪

什么是真实感渲染(三):前沿趋势之实时光线追踪

作者头像
Peter Lu
发布2022-05-17 12:08:55
1.3K0
发布2022-05-17 12:08:55
举报
文章被收录于专栏:LETLET

前两篇我们分别介绍了渲染的发展史真实感渲染的具体技术,作为本系列的最后一篇,聊一下渲染相关的前沿技术。

个人比较感兴趣的前沿技术主要是实时光线追踪,VR&AR以及神经渲染三个领域。本文介绍实时光线追踪。

栅格化算法计算量小,且更适合GPU流水线。在真实感渲染方面借鉴了光线追踪的思想,也极大地提高了阴影,反射和折射方面的渲染效果。

图片来自’ Bringing Ray Tracing to Vulkan’

但是,栅格化中的真实感渲染引入了大量的近似和假设,乍看上去效果提升了很多,但没有对比就没有伤害,比如上图栅格化与光线追踪的对比。另一个问题是在真实感渲染上各种奇技淫巧堆叠在一起,需要记录很多中间状态,每一个像素都会用到相关的信息,这导致内存开销巨大以及系统的复杂。光线追踪算法简单健壮,尽管计算量巨大,随着算法的优化,硬件的升级,两者是此消彼长的趋势。因此,人们逐步采用实时光追技术来替代渲染管线中的模块。我们也不难理解十年前的卡马克所下的定论 “Eventually, Ray tracing will win” 。

2018年,微软提出了DirectX Ray Tracing(DXR)的API,提供了Ray Tracing Pipeline的雏形,而Nvidia推出了新一代的RTX显卡,提供了Ray Tracing硬件加速的能力。2020年,Vulkan也推出了Ray Tracing规范,同DXR非常相似。

图片来自’Introduction to NVIDIA RTX and DirectX Ray Tracing’

如上图,绿色模块是我们需要在shader中实现的部分,其余部分则对应ray tracing 的渲染管线。Ray Tracing的渲染管线非常简洁,并能很好地模拟光线的反射,折射以及阴影效果。首先,在Ray Generation中创建射线,通过射线求交的算法来判断是否和场景中的物体相交(Hit),这里分为三种情况,'Miss','Closet Hit'和'Any Hit'。Miss情况下,通常我们会以环境光贴图作为光源来计算该射线的贡献,Closet则表示该射线命中了某物体表面,则基于该物体材质计算该射线的贡献,从而实现反射,折射等效果,而Any用来判断该射线和光源之间是否有遮挡物,以此来判断该射线的贡献,从而产生了阴影效果。而在光线追踪中,因为需要大量的射线求交算法,往往需要构建BVH场景树,RTX技术在GPU中实现了构建场景树和射线求交的查询,也就是硬件加速能力。

图片来自’ State-of-the-Art and Challenges in Game Ray Tracing’

SIGGRAPH2019的Ray Tracing专题报告展望了实时光线追踪的未来。其中,SEED团队分享了自己的混合渲染管线(上图),管线由一个接一个的阶段串联,而每个阶段采用最合适的技术来实现。

图片来自‘Lumen | Inside Unreal’

2021年,UE5的视频又掀起了一波热潮,新一代的渲染引擎Lumen则是一套完整的光线追踪管线,分为Software和Hardware两种形式。其中,software ray tracing是一种混合的光线追踪解决方案,首先在屏幕空间采用光追(Screen Trace),其次是两米以内的区域(Mesh Distance Field Trace),最后是这个场景空间(Globe Distance Field Trace),上图表示了三种策略各自的贡献。这里,Lumen仅支持简单物体的数据预处理。Software的好处是不依赖硬件,缺点是有限的几何数据类型。Hardware的好处是高质量,缺点是计算量巨大,且依赖显卡。

图片来自‘Lumen | Inside Unreal’

目前而言,光追整体上还是太慢,硬件上仅能做到每帧每像素半个射线,而在室内场景中通常需要200+的射线,400倍的差距(UE给出的数据)。当然,也有很多方案来弥补这个差距,比如降噪技术(上图),通常,相邻区域获取的光源比较接近,相近时间下区域内接收的光源也比较接近,降噪技术则利用这种空域和时域上的连续性,将一条射线的贡献尽可的延伸到周围像素或下一帧的像素,榨干每一次计算的价值。还有其他类似的思路,比如radiance cache,DLSS超采样以及RESTIR重采样等,这里就不深入展开了。

Nvidia也给出了Ray Tracing的路线图,去年也推出了Ray Tracing Gems II。AMD在上周(4.12)也推出了自己的ray tracing库---HIP。可见,实时光线追踪目前主要是由硬件和游戏厂商推动,推动力主要来自工业界,其生态也在不断地完善。

个人而言,我是在2018年底开始学习光线追踪的相关技术,当时上映了‘阿丽塔:战斗天使’,阿丽塔浮出水面的画面深深地触动了我。而我对实时光线追踪的未来,就好比我看你的时候,眼睛是发光的,内心是虔诚的。

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

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

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

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

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