2012-11-19 67 views
2

对于光线追踪,我应该如何处理透过弯曲光线的材料的阴影射线(或者明确的光路)?我了解不会弯曲光线的透明和半透明屏障:我只需要减弱光线。但是如果屏障实际上是​​将光线弯曲的话,那么光线根本不会在光源处终止。更一般地说,从光源到点的明确路径将不得不遵循不同的路径来解决弯曲:一般将改变入射光的性质(角度,行进距离等)的路径)。那么我需要找到那条路,如果是的话,怎么样?通过光线弯曲物体的阴影射线

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

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

+0

你需要折射率(或一些启发是相当类似)的模式,改变光线的方向,为持续时间是通过材料旅行,再调整当它退出(或内部反映,或...)时它会再次出现。 – twalberg

+1

对射线的弯曲进行建模并不是真正的问题,问题是弯曲可能会导致此特定射线不能到达光线。更重要的是,我认为我需要找出从光线到这一点的路径是否存在,但我不确定如何考虑到可能发生的任何折射。 – brianmearns

+0

同样的问题在这里..我已经实现了折射光线计算,但我还是不知道如何模拟由折射和会聚引起的高光。 –

回答

1

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

您需要使用的技术,其包括从光源开始跟踪路径,如Bi-directional path tracingPhoton Mapping

双向方式下面是通过光子映射生成焦散的图像。如果仔细观察,可以看到泳池分隔符在泳池底部的焦散处投射阴影。 (我会产生更好的演示视频和编辑它,但这是最好的,我可以用一个快速搜索找到) Shadows in caustics

1

除了@ MikeMx7f说什么,你实际上需要做的依赖在你的特定光线追踪“技术”上。请注意,以下所有点都严重过度简化。

  • 当进行直线前进单向怀特迪式射线追踪通常的方法就是假定遮挡的射线时,如果击中一个阴影投射物体在交点和所述光源之间。

  • 当这样做(单向)路径追踪1你一般只是从你的交点采样半球内方向的很多和跟踪那些次级射线直到某个标准被满足(最大深度,命中“光源“ - 这是一种发光材料)。

  • 当做光子映射时,通过存储在场景几何体上的光子得到折射对象引起的焦散。那就是你在附近收集一定数量的光子,以便近似交叉点处的入射光。然而,必须特别注意镜面反射表面。

Path Tracing