是否有光栅化或光线追踪的渲染替代方案?

时间:2009-04-22 22:36:48

标签: graphics 3d raytracing rasterizing

光栅化(三角形)和光线追踪是我遇到渲染3D场景的唯一方法。还有其他人吗?此外,我很想知道任何其他真正“在那里”做3D的方法,例如不使用多边形。

3 个答案:

答案 0 :(得分:42)

Aagh!这些答案都是非常不知情的!

当然,问题不精确也无济于事。

好的,“渲染”是一个非常广泛的主题。渲染中的一个问题是摄像机可见性或“隐藏表面算法” - 确定每个像素中看到的对象。可见性算法有各种分类。这可能可能海报所询问的内容(鉴于他们认为它是“光栅化”和“光线追踪”之间的二分法)。

经典(尽管现在有点过时)的分类参考是Sutherland等人的“A Characterization of Ten Hidden-Surface Algorithms”,ACM Computer Surveys 1974.它已经过时了,但它仍然非常适合提供思考如何的框架对此类算法进行分类。

一类隐藏曲面算法涉及“光线投射”,它计算从相机通过每个像素的线与物体(可以具有各种表示,包括三角形,代数曲面,NURBS等)的交点。

其他类别的隐藏表面算法包括“z-buffer”,“scanline技术”,“列表优先级算法”等。在没有多少计算周期且没有足够的内存来存储z缓冲区的日子里,他们对算法很有创意。

现在,计算机和内存都很便宜,因此有三种技术可以胜出:(1)将所有内容切割成三角形并使用z缓冲区; (2)射线铸造; (3)类似雷耶斯的算法,它使用扩展的z缓冲区来处理透明度等。现代显卡做#1;高端软件渲染通常是#2或#3或组合。虽然已经提出了各种光线跟踪硬件,有时已经构建,但从未被捕获,现代GPU现在可编程到足以实际光线跟踪,尽管它们的硬编码光栅化技术处于严重的速度劣势。其他更奇特的算法多年来一直被淘汰。 (尽管各种排序/喷溅算法可用于体绘制或其他特殊用途。)

“栅格化”实际上只是意味着“找出一个物体所在的像素”。公约规定它不包括光线追踪,但这是不稳定的。我想你可以证明光栅化会回答“这个形状重叠的像素”,而光线跟踪则回答“哪个对象在这个像素后面”,如果你看到差异的话。

现在,隐藏表面移除并不是“渲染”领域唯一需要解决的问题。知道每个像素中可见的对象只是一个开始;你还需要知道它是什么颜色,这意味着有一些计算光在场景周围传播的方法。有很多技术,通常分解为处理阴影,反射和“全局照明”(在对象之间反弹,而不是直接来自灯光)。

“光线跟踪”是指应用光线投射技术来确定阴影,反射,全局照明等的可见性。可以对所有内容使用光线跟踪,或使用各种光栅化方法进行相机可见性和光线跟踪阴影,反思和GI。 “光子映射”和“路径跟踪”是用于计算某些类型的光传播的技术(使用光线跟踪,因此说它们在某种程度上基本上是一种不同的渲染技术是错误的)。还有一些不使用光线跟踪的全局照明技术,例如“光能传递”方法(这是解决全局光传播的有限元方法,但是在该领域的大多数部分最近已经失宠)。但是使用光能传递或光子映射进行光传播STILL需要您以某种方式制作最终图像,通常采用标准技术之一(光线投射,z缓冲/光栅化等)。

提到特定形状表示(NURBS,体积,三角形)的人也有点困惑。这是光线跟踪与光栅化的正交问题。例如,您可以直接扫描跟踪nurbs,或者您可以将nurbs切成三角形并跟踪它们。您可以直接将三角形栅格化为z缓冲区,但您也可以按扫描线顺序直接栅格化高阶参数曲面(c.f.Lane / Carpenter / etc CACM 1980)。

答案 1 :(得分:5)

有一种名为photon mapping的技术实际上与光线跟踪非常相似,但在复杂场景中提供了各种优势。实际上,它是唯一能够提供真实逼真(即遵守所有光学定律)渲染的方法(至少我知道)。据我所知,这是一种谨慎使用的技术,因为它的性能远远超过光线跟踪(假设它有效地反过来并模拟光子从光源到相机的路径) - 但这就是它的唯一的缺点。这当然是一个有趣的算法,尽管你不会在光线跟踪之后(如果有的话)直接看到它的大规模使用。

答案 2 :(得分:1)

维基百科上的渲染文章涵盖了各种techniques

简介段落:

  

许多渲染算法已经存在   研究和用于的软件   渲染可以使用一些   获得决赛的不同技巧   图像。

     

追踪场景中的每一道光线   是不切实际的,需要一个   大量的时间。甚至追查   一大块足以产生一个   图像需要过多的数量   如果抽样不是时间   智能限制。

     因此,四个松散的家庭   更高效的轻型运输   建模技术已经出现:   光栅化,包括扫描线   渲染,几何项目   场景中的对象到图像   飞机,没有先进的光学   效果; 光线投射考虑了   从具体情况观察到的场景   观点,计算   观察图像仅基于几何   和非常基本的光学定律   反射强度,也许   使用蒙特卡罗技术来减少   文物; 光能传递使用有限   元素数学来模拟   光的漫射扩散   表面;和光线追踪类似   射线投射,但雇用更多   先进的光学模拟,和   通常使用蒙特卡罗技术   在a获得更真实的结果   速度往往是订单的   幅度较慢。

     

大多数高级软件结合了两个或   更多的技术获得   合理的结果足够好   成本。

     

另一个区别是图像之间   迭代算法,迭代   图像平面的像素和对象   迭代算法,迭代   场景中的物体。一般对象   订单更有效率,因为有   通常场景中的对象少于   像素。

从这些描述中,只有radiosity在概念上与我有所不同。