2012-10-30 127 views
2

我想知道我们是否能够制定光线跟踪的性能。在我的原始射线追踪器中,性能主要取决于这个公式:宽度x高度x采样器数量x(对象数量+灯光数量)光线跟踪的性能

因此,例如,在Pixar或任何其他大公司中,它们是否遵循这样的绩效评估公式。性能取决于对象的三角形数量吗?例如,如果我想大致计算1000x1000帧的最大渲染时间以及包含5.000.000个三角形的平均500个对象,是否有可能?

+0

但是每个像素的计算都不是O(1),所以你不能简单地这样说!另外,当光线追踪(使用三角形模型时)时,三角形的数量会发挥作用,但作为每个像素需要的时间的复杂部分... – Jasper

+0

所以,你说我们不能说最大时间三角形和像素? –

+0

你可以说一些关于上限的东西(尽管我猜你会需要一些关于特定射线追踪器的更多细节),但我不认为你实际上可以推断任何有用的信息。 – Jasper

回答

1

用于认真工作的射线追踪器使用各种加速方法,使其与日志(三角形)成正比,而不是三角形的数量。并且有时也与灯的数量呈次线性关系(不包括不能影响场景部分的灯,同时对所有灯一起采样等等)。另一方面,物质变化(即使具有固定的分辨率和场景几何形状)也会发生很大的变化。例如,使事物或多或少反射/折射可以在场景的平均“射线深度”上发生很大变化。一般而言,对于给定的一组几何图形,光线和材质,时间应该与光线总数(即分辨率和采样率)成线性比例关系,但是对于真正大的场景通过读取场景输入(可能是GB和GB解析)以及从磁盘或网络读取纹理(我们通常具有参考>> 1 TB纹理的场景)来部分序列化。

所以,总体来说,你所期望的时间是一定的相关性:

scene_I/O + XRES * Y残余物*样品*(shading_factor + texture_factor +登录(三角形))+ texture_I/O

的与您的材料相关的I/O编号以及任意的阴影和纹理因素可能会导致难以准确预测。

0

您只能拥有表演的上限。例如,如果所有多边形(三角形或其他)不在视图中,则计算将非常快速。
但是,如果你想计算上限,你需要定义算法的具体细节:你使用的是行进立方体?你是否删除背面多边形等...
但是对于特定的算法,计算应该非常简单。

p.s.对象的数量只与其所有多边形的总和无关。

+0

对象的数量不是无关的。许多光线追踪器在对象存在一个边界层次结构时使用2级加速度结构,然后为每个包含其细分的三角形的对象分别设置一个单独的层次结构。 –