我想知道我们是否可以制定射线追踪的性能。在我的原始射线追踪器中,性能主要取决于此公式:宽度x高度x采样器x的数量(对象数 灯数)
所以,例如,在皮克斯或任何其他大公司中,它们是否遵循这种公式进行绩效评估。性能不是取决于对象的三角计数吗?例如,如果我想计算1000x1000的框架的最大渲染时间,而平均500个对象为5.000.000三角形,那么可能会有可能吗?
用于认真工作的射线示踪剂使用各种加速方法,使它们与日志成正比(三角形),而不是三角形。有时也相对于灯的数量(不包括不会影响场景部分的灯光,一次同时对所有灯进行采样)。
)。另一方面,材料的变化(即使有固定的分辨率和场景几何形状)也可以做出很大的变化。例如,使事物或多或少地反射/折射能够在场景的平均"射线深度"中发生重大变化。
一般来说,对于给定的几何形状,灯光和材料,时间应与射线总数成正比(即分辨率和采样率),但可以将其扔掉在阅读场景输入(可能是解析的GB和GB)和从磁盘或网络读取纹理(我们通常具有参考>> 1 TB纹理的场景)。序列化。
因此,总的来说,您希望时间有些相关:
场景_i/o xres * yres *样品 *(shading_factor texture_factor log(triangles)) texture_i/o
与您的材料有关的I/O数字和任意阴影和纹理因素可能会使一切都难以准确预测。
您只能具有性能的上限。
例如,如果所有多边形(三角形或其他)不在视图中,计算将非常快。
但是,如果您想计算上边界,则需要定义算法细节:您是否使用Marting-Cubes?您是否删除了背面多边形等?
但是对于特定算法,计算应该非常直接。
P.S。物体的数量仅是无关的,只有其所有多边形的总和。