【发布时间】:2012-05-23 23:23:37
【问题描述】:
我正在尝试进行一些涉及光线追踪的计算,但有点困惑。假设我有一个 n×n 图像,其中包含 N 个几何图元、l 个光源和 k x k 超级采样。在最坏的情况下,我将计算多少个射线交点?如果我添加深度为 d 的反射/折射会怎样?
【问题讨论】:
标签: math graphics raytracing
我正在尝试进行一些涉及光线追踪的计算,但有点困惑。假设我有一个 n×n 图像,其中包含 N 个几何图元、l 个光源和 k x k 超级采样。在最坏的情况下,我将计算多少个射线交点?如果我添加深度为 d 的反射/折射会怎样?
【问题讨论】:
标签: math graphics raytracing
您必须为图像的 n x n 像素中的每一个发射 k x k 射线。对于这些射线中的每一个,您都必须进行碰撞测试,这会以一种非常简单且低效的方式转化为 N 次比较(每次都取决于基元的复杂性)。现在,如果这些光线中的任何一条射到镜面或半透明表面,您必须拆分光线并递归调用。但是,这一次您不进行超级采样,因此您只需在反射/折射方向发送一束光线。对于深度 d,您将发送该数量的额外光线,每个递归调用一条。
所以,总共:k^2 x n^2 x d。
这还不包括相交计算,它不会增加任何光线,但会增加很多复杂性。
但是,有许多简化。
【讨论】:
但这并不是一个完整的答案...... 请参阅这篇文章:http://blogs.msdn.com/b/lukeh/archive/2007/10/01/taking-linq-to-objects-to-extremes-a-fully-linqified-raytracer.aspx 您可能会利用修改后的一些计数代码来在您进行跟踪时自动将这些统计信息提供给您:P
【讨论】: