2

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

比如,在皮克斯或其他任何大公司,他们是否遵循这样的公式来进行绩效评估。性能不取决于对象的三角形数吗?例如,如果我想大致计算 1000x1000 帧的最大渲染时间,平均 500 个对象由 5.000.000 个三角形组成,这可能吗?

4

2 回答 2

2

用于严肃工作的光线追踪器使用各种加速方法,使它们与对数(三角形)成正比,而不是三角形的数量。有时也与灯光的数量相关(不包括不能影响场景部分的灯光,一次对所有灯光进行集体采样,诸如此类)。

另一方面,材质变化(即使是固定的分辨率和场景几何)也可以产生很大的变化。例如,使事物或多或少反射/折射可能会对场景的平均“光线深度”产生很大的变化。

一般来说,对于一组给定的几何体、灯光和材质,时间应该与光线的总数(即分辨率和采样率)成线性比例,但是对于在读取时部分序列化的非常大的场景,这可能会被抛弃场景输入(可能是 GB 和 GB 的解析)和从磁盘或网络读取纹理(我们通常有引用 >> 1 TB 纹理的场景)。

所以总体而言,您会期望时间与以下方面有些相关:

场景 I/O + xres * yres * 样本 * (shading_factor + texture_factor + log(triangles)) + texture_I/O

与您的材质有关的 I/O 数量以及任意着色和纹理因素可能会让您难以准确预测。

于 2012-10-31T19:52:50.073 回答
0

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

ps 对象的数量仅与它们所有多边形的总和无关。

于 2012-10-30T12:25:04.093 回答