阴影射线通过光弯曲的对象

时间:2012-11-19 15:20:19

标签: raytracing

对于光线追踪,我应该如何处理穿过弯曲光线的材料的阴影射线(或者是明确的光路)?我理解不透光的透明和半透明屏障:我只需要减弱光线。但是,如果屏障实际上使光线弯曲,那么光线通常不会在光源处终止。

更一般地说,从光源到点的显式路径必须遵循不同的路径来考虑弯曲:通常会改变入射光属性的路径(角度,行进距离等) 。那么我需要找到那条路,如果是,那该怎么办?

我正在考虑的一件事是强制显式路径继续到与光弯曲器相交的点,然后弯曲并用新的显式光线将路径延伸到光源(并且如果它与另一个光相交则继续前进 - 弯曲边界)。但我无法从光弯曲面到光源采取明确的路径,因为它不会考虑弯曲。

我认为如果有一个折射表面,我可能会根据它弯曲光线的方式来解决一个系统,并找到从光到表面的光线,以及从点到表面的另一个光线,每条光线都会弯曲到另一个。但如果有任意多的折射表面,我真的不知道它将通过哪些表面直到我知道它如何通过所有其他表面弯曲。

2 个答案:

答案 0 :(得分:1)

如果您只是从相机开始进行单向递归光线跟踪,则没有已知的方法来模拟您想要模拟的光路类型(从光到镜面反射或折射到“常规”曲面(读取) “常规”为漫反射或光泽)到相机。)

您需要使用一种技术,其中包括从光源开始追踪路径,例如Bi-directional path tracingPhoton Mapping

的双向方法

下面是通过光子映射生成焦散的图像。如果仔细观察,可以看到池分隔符在池底部的焦散中投射阴影。 (我将生成一个更好的演示图像并进行编辑,但这是我能通过快速搜索找到的最佳图像) Shadows in caustics

答案 1 :(得分:1)

除了@MikeMx7f所说的,你实际需要做的还取决于你特定的光线追踪“技术”。请注意,所有以下几点都非常简化。

  • 当进行直接单向瞄准式光线跟踪时,通常的方法是假设光线在交叉点与光源之间撞击阴影投射物体时被遮挡。

    < / LI>
  • 在进行(单向)路径追踪1时,您通常只是从交叉点采样半球内部的批次方向并跟踪这些次要光线直到某个标准满足(最大深度,击中“光源” - 这是一种发光材料)。

  • 进行光子贴图时,您可以通过存储在场景几何体中的光子获得折射物体引起的焦散。也就是说,你在附近收集一定数量的光子,以便近似交叉点的入射光。但是,必须特别注意镜面反射表面。

Path Tracing