【《Real-Time Rendering 3rd》 提炼总结】(八) 第九章 · 全局光照:光线追踪、路径追踪与GI技术进化编年史

本文深入探讨全局光照技术,包括光线追踪、路径追踪等算法流派,追溯技术发展编年史,从光线投射到梅特波利斯光照传输,解析全局光照增强场景真实感的原理和方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


本文由@浅墨_毛星云 出品,转载请注明出处。  
文章链接: http://blog.youkuaiyun.com/poem_qianmo/article/details/78013184



全局光照(Global Illumination,简称 GI), 作为图形学中比较酷的概念之一,是指既考虑场景中来自光源的直接光照,又考虑经过场景中其他物体反射后的间接光照的一种渲染技术。

大家常听到的光线追踪,路径追踪等同样很酷的概念,都是全局光照中人气较高的算法流派。

 

而这篇文章将围绕全局光照技术,介绍的要点有:

  • 全局光照的基本概念
  • 全局光照的算法主要流派
  • 全局光照技术进化编年史
  • 光线追踪 Ray Tracing
  • 路径追踪 Path Tracing
  • 光线追踪、路径追踪、光线投射的区别
  • 环境光遮蔽 Ambient Occlusion

 


 

一、行文思路说明

 


阅读过《Real-Time Rendering 3rd》第九章的读者们都会发现,作为一章关于全局光照的章节,作者讲了不少在严格意义上全局光照主线以外的内容,如Reflections、Refractions、Shadow等节,而这些内容在《Real-Time Rendering 2nd》中,其实是放在Chapter 6 Advanced Lighting and Shading一节的。

既然《Real-Time Rendering 3rd》第九章标题就叫全局光照,核心内容也是全局光照,本文即决定脱离原书安排的100来页的多余内容,以全局光照的主线内容为主,构成一篇包含全局光照基本概念,主要算法流派,以及全局光照技术进化编年史,和全局光照算法中人气较高的光线追踪、路径追踪等算法的综述式文章。

 

 


二、全局光照

 


全局光照,(Global Illumination,简称 GI), 或被称为Indirect Illumination, 间接光照,是指既考虑场景中直接来自光源的光照(Direct Light)又考虑经过场景中其他物体反射后的光照(Indirect Light)的一种渲染技术。使用全局光照能够有效地增强场景的真实感。

 

即可以理解为:全局光照 = 直接光照(Direct Light) + 间接光照(Indirect Light)

 


图1 Direct illumination

 

 

图2 Global illumination = Direct illumination +Indirect illumination

上述两幅图片来自CMU 15-462/15-662, Fall 2015 Slider,Lecture 14: Global Illumination,当然,细心的朋友也可以发现,它也被《Physically Based Rendering,Second Edition From Theory To Implementation》选作封面。


 可以发现,加入了Indirect illumination的图2,在直接光源(阳光)照射不到的地方,得到了更好的亮度和细节表现,从而使整张渲染效果更具真实感。


虽说实际应用中只有漫反射全局照明的模拟算法被称为全局照明算法,但其实理论上说反射、折射、阴影都属于全局光照的范畴,因为模拟它们的时候不仅仅要考虑光源对物体的直接作用还要考虑物体与物体之间的相互作用。也是因为,镜面反射、折射、阴影一般不需要进行复杂的光照方程求解,也不需要进行迭代的计算。因此,这些部分的算法已经十分高效,甚至可以做到实时。不同于镜面反射,光的漫反射表面反弹时的方向是近似“随机”,因此不能用简单的光线跟踪得到反射的结果,往往需要利用多种方法进行多次迭代,直到光能分布达到一个基本平衡的状态。

 



三、全局光照的主要算法流派

 

 

《实时光线追踪渲染精粹》 渲染器使用两种方法来确定像素颜色:光栅化或光线追踪。 光栅化从一个特定像素开始,并询问“这个像素应该是什么颜色?”; 光线追踪则在视角和光源起作用,并询问:“光线在做什么?” 光线追踪的工作原理是:追踪光线在场景内的反射路径光线每次反射的时候,它都会通过沉积早前对象的颜色来模拟现实生活中的光线,同时损失强度。对于特定类型的材料效果而言,这种颜色的沉积使得清晰的反射,以及细微,逼真的颜色变化只能通过光线追踪来实现。 由于它模仿光线的真实行为,光线追踪同时擅长于产生区域阴影和环境遮挡。 相反,光栅化比光线追踪更快,成本更低,只是通过一些近似值计算照明。Unreal的光栅化技术在一枚高速GPU上以毫秒为单位提供4K分辨率帧。栅格化可以非常逼近照片级别真实感,同时不一定是物理上精确。另外对于大多数Unreal引擎的用户来说,速度的提升显得非常值得。 但对于更强调照片级真实感而非性能的真人实景电影和建筑可视化项目而言,光线追踪则显得更有优势。到目前为止,由于其巨大的计算需求,光线追踪仅在离线渲染中实施。使用光线追踪计算的场景可能需要几分钟到几个小时才能计算出一个帧,而电影动画的一秒需要24帧才能填充完成。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值