2009-04-22 72 views

回答

39

啊!这些答案是非常不了解的!

当然,这不能帮助这个问题是不准确的。

好吧,“渲染”是一个非常广泛的话题。渲染过程中的一个问题是摄像机的可见性或“隐藏表面算法” - 确定每个像素中看到的是什么物体。有各种可见性算法的分类。这就是可能是海报问的是什么(因为他们认为它是“光栅化”和“光线追踪”之间的二分法)。

ACF计算机调查1974年,Sutherland等人的“A Characterization of Ten Hidden-Surface Algorithms”一书中经典的(虽然现在有些过时)了。它非常过时,但它仍然非常适合提供思考对这些算法进行分类。一类隐藏表面算法涉及“光线投射”,它计算从相机到每个像素的线与对象(可以有各种表示,包括三角形,代数曲面,NURBS等)的交点。 。其他类的隐藏表面算法包括“z缓冲区”,“扫描线技术”,“列表优先级算法”等等。在没有多少计算周期和没有足够内存来存储z缓冲区的日子里,他们对算法的创造力相当沉重。现在,计算和内存都很便宜,所以三种技术已经非常成功:(1)将所有内容切分为三角形并使用z缓冲区; (2)射线铸造; (3)使用扩展的z缓冲区来处理透明度等的Reyes-like算法。现代显卡做#1;高端软件渲染通常会执行#2或#3或其组合。虽然已经提出了各种光线追踪硬件,并且有时构建但是从未被捕捉过,并且现在的GPU现在已经足够可编程以实际上进行光线追踪,尽管其速度严格不利于其硬编码光栅化技术。多年来,其他更具异国情调的算法大都落在了旁边。 (虽然各种排序/溅射算法可用于体绘制或其他特殊用途)。

“光栅化”的确仅仅意味着“确定一个物体位于哪个像素上”。公约规定它不包括光线追踪,但这是不稳定的。我想你可以证明光栅化回答“哪个像素做这种形状重叠”,而光线追踪回答“哪个对象在这个像素后面”,如果你看到不同。

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

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

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

1

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

介绍文字:

许多渲染算法已经 研究,并用于 渲染软件可以使用许多 不同的技术来获得最终 图像。

追踪场景中的每一缕光线 是不切实际的,并且会花费大量的时间 。即使跟踪 一个足够大的部分以产生 图像,如果采样不是 的智能限制,则会花费过多的 时间。

因此, 更高效的光传输 建模技术4个宽松的家庭已经出现了: 光栅化,包括扫描线 渲染,几何项目现场 对象的图像 平面,没有先进的光学 效应; 射线铸造考虑作为从特定 点的视图,计算使用蒙特卡罗技术仅基于几何 和 反射强度的非常基本的光学定律,也许 的 观察图像,以减少 观察 场景文物; 辐射度使用有限元 元素数学来模拟 表面的光漫射传播 表面;和光线跟踪类似于 到光线投射,但是采用更先进 光学模拟,和 通常使用蒙特卡洛技术来获得 在 速度往往是 量值慢订单更逼真的结果。

最先进的软件结合了两种或更多的技术,以合理的 成本获得 足够好的结果。

另一个区别是图像 顺序算法,其遍历 像素的图像平面的,和对象 顺序算法,遍历场景中的过 对象之间。一般对象 的订单效率更高,因为 通常情况下场景中的对象数量少于 像素。

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

3

有一种叫做photon mapping的技术,它实际上与光线追踪非常相似,但在复杂的场景中提供了各种优点。事实上,这是唯一可以提供真实(即所有光学规律都遵守)的方法(至少我知道),如果做得好的话。这是一种技巧,据我所知,它的使用很少,因为它的性能甚至比光线追踪还差得多(因为它有效地做了相反的处理并模拟光源从光源到相机的路径) - 但这是它的唯一的缺点。这当然是一个有趣的算法,尽管直到射线追踪之后(如果有的话)你都不会在广泛的使用中看到它。

+1

请注意,像光线追踪一样,此方法不需要多边形。例如,可以完美地表示球体。实际上,无论如何,使用多边形建模最复杂的对象是最容易的。 – Noldorin 2009-04-22 23:09:37

+1

球体也可以在光线追踪中完美呈现。 – 2009-04-23 05:12:41