光线跟踪与基于对象的渲染?


19

入门图形课程通常有一个项目,要求您构建光线跟踪器以渲染场景。许多进入研究生院的图形学生说,他们想从事射线追踪。然而,在SIGGRAPH等场所中,光线追踪似乎是一片死地。

光线跟踪是否真的是在所有所需照明等条件下准确渲染场景的最佳方法,是光线跟踪器的缓慢(读取非交互式)性能使它们变得不感兴趣,还是还有其他东西?


也许光线追踪已成定局。
戴夫·克拉克2012年

我认为问题标题需要编辑,光线跟踪是基于像素的渲染器,也许应该改写为“光线跟踪与基于对象的渲染”或“光线跟踪与光栅化”
aaecheve

我将修改标题。
Suresh 2012年

@DaveClarke:不确定是什么意思?
Suresh 2012年

没有更多的研究要做–我应该避免语。
戴夫·克拉克

Answers:


11

光线跟踪是一种非常好用且直观的算法,它是比光栅化更实际的描述场景照明的方式,但是:

  • 光线追踪很慢,特别是如果您想实现将其与光栅化(例如折射,反射,运动模糊,柔和阴影)区分开来的更逼真的效果,因为这意味着每个像素产生更多的光线。
  • 多数人无法分辨真实效果和假效果之间的区别,我认为这是关键。实用渲染算法的目标是以最有效的方式创建场景的真实感表示,现在,尽管使用了大量技巧,但光栅化仍然可以很好地实现这一目标。
  • 与Rasterization渲染器相比,Raytracing还有许多其他实际限制:抗锯齿和位移映射差,实例化有限等。

即使在非交互性应用程序(例如电影)中,由于其局限性,很少使用射线追踪。皮克斯只开始在汽车中使用光线追踪,并且仅用于某些特定的反射效果(电影“汽车”的光线追踪)。

这是一篇出色的文章,更详细地描述了光线跟踪的当前状态及其优点和缺点:光线跟踪的状态(在游戏中)


8

基本光线跟踪具有与环境光有关的主要问题。大多数照明模型将环境光视为渗透到乙醚中的恒定因子。尽管光线跟踪非常适合计算反射,但它存在数值不稳定和复杂的表面相交测试的问题。光线跟踪在硬件加速渲染中可能无法很好地发挥作用,因为递归在确定任何特定像素的照明度方面起着重要作用。基本的光线跟踪在计算上非常昂贵。

光能传递系统更好地处理环境光,因为它会将环境中的所有物体都当作光源,从而产生比光线追踪更真实的照明模型。使用光能传递解决方案,场景中存在固定数量的多边形,并且该计算适合硬件加速。

最终,光线追踪并不是渲染场景的最佳方法,但它是良好渲染策略的一部分。高昂的计算成本和不良的环境照明是打击光线追踪的主要手段。作为研究主题,正在进行中,但似乎集中在硬件加速上。


请注意,进行光能传递的最常见方法之一(尤其是处理光能传递和一般辐射函数的任何镜面方面)都涉及光线跟踪!实际上,光线追踪和辐射度都是渲染方程的近似值。
史蒂文·斯塔德尼基

诚然。基本的辐射度(对于矛盾分子来说是什么?)方法需要诸如射线追踪之类的镜面反射和反射。
John Percival Hackworth 2012年

4

我不会说光线跟踪/路径跟踪已经死了……如果有的话,由于该领域许多相关算法的内在并行性与速度的结合,使得该领域的兴趣重新兴起。基于GPU的系统,每秒可计算数百万条射线。此外,渲染管道还具有灵活性,更通用的语言(例如CUDA和OpenCL)使它们能够使开发人员利用GPU的并行功能,而不必像最初的GPGPU技术那样显式使用OpenGL图形管道。持续的路径跟踪研究的一些著名的主流例子包括:

  • Daniel Pohl等人在Intel Advanced Render小组中的研究
  • 英伟达的Optix引擎
  • 去年的SIGGRAPH包括有关蒙特卡洛图像合成的几门课程,以及有关最新光子密度估计技术的讨论。

最后,您需要对全局照明问题的优化技术进行大量研究,包括基于点的全局照明,光子贴图和相关的优化,高级外观建模(包括数据驱动方法),辐照度缓存等。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.