衍射光栅数学模型--Unity改进彩虹教程 VR资源

manew_JR 2017-10-10 17:28:12
衍射光栅数学模型
 
这篇文章介绍了被称为衍射光栅的光学现象背后的数学模型,它是许多材质中的虹彩反射。

以下是整篇文章的目录
Part 1. The Nature of Light
Part 2. Improving the Rainbow (Part 1)
Part 3. Improving the Rainbow (Part 2)
Part 4. Understanding Diffraction Grating
Part 5. The Mathematics of Diffraction Grating
Part 6. CD-ROM Shader: Diffraction Grating (Part 1)
Part 7. CD-ROM Shader: Diffraction Grating (Part 2)
Part 8. Iridescence on Mobile
Part 9. The Mathematics of Thin-Film Interference
Part 10. Car Paint Shader: Thin-Film Interference
 
整个系列的最后会有该项目的Unity文件
 
 
简介
这个系列中的前一篇文章“理解衍射光栅”解释了为什么会在某些材料上发生虹彩现象。 光是一种波,它每次在它的路径上发现障碍时就会弯曲。 如果材料呈现微小的狭缝或凸块,则这将使进入的平面波在所有方向上散射。 如果这些狭缝或凸块以规则的图案布置,则为它们中的每一个生成新的波前。 所有这些波前将会相互干扰,导致某些波长(被人眼察觉为颜色)突出显现。
我们现在有了我们需要的一切,在数学上开始建模这种现象。 我们先来想象一种具有在已知距离d重复的缺陷的材料。 为了这个推导的目的,入射光线和表面法线之间的角度是\ θ_L in。我们还可以想象,观察者的方向是这样一种方式,即它们接收角度为θ_L的所有反射光线。 每个缺陷都会在所有方向散射光,所以不管\ θ_L是否总会有与光线对准的光线
 
 

根据每d距离定期重复缺陷定理,散射图在每d个距离内进行重复。
 
求导
 
上图中所示的两束光线在到达观察者之前行进不同的距离。 如果他们从阶段开始,他们可能不会到达他们的目的地。 要了解这两条光线是如何相互干扰(建设性或破坏性的),我们必须计算它们到达观察者时的相位。
这两条光线保证在同一阶段,直到第一条光线撞到表面。 第二根光线在撞击表面之前还会经过一个额外的距离x(绿色)。 使用一些简单的三角法,可以看出,绿色段x的长度是d \ cdot \ sin {\θ_L}。
 
 
 
使用类似的结构,我们可以计算第二射击之前第一射线向观察者传播的额外距离y。 在这种情况下,我们可以看到

 

 
这两个区段x对于确定当最终检测到两个射线是否处于同相时至关重要。 他们的差异测量了这两条光线的长度差异。 如果为零,我们确信两条光线处于同步状态,因为它们已经有效地行进了相同的距离。
然而,这并不是两个射线同相的唯一情况。 如果它们的长度差是波长w的整数倍,它们仍然可以同相。 在数学上,如果满足以下条件,则这两条光线处于同相状态:
 
 
可视化

让我们花一点时间了解这个方程式的含义。 如果光线具有入射角度\θ_L,观察者将观察角度\ theta_V的材料看到? 所有输入波长w是d \ left(\ sin {\θ_L} - \ sin {\ theta_V} \ right)的整数倍的入射波长w将会建设性地干涉,并在最终的反射中强烈地出现。 因此,这些是观众将看到的颜色。
 
这个效果在下图中可视化,取自非常有趣的线程A复杂的方法:循环中的Iridescence:

 
 
白光跟随由光子穿过的路径进行镜面反射。 从不同角度观看材料的观众将看到循环彩虹图案。 每个颜色对应于不同的波长,而顺序表示其相应的整数n。 如可以看到的,即使对于n的负值,衍射光栅方程也是满足的,因为数量\ sin {\θ_L} - \ sin {\ theta_V}可以是负的。 从计算的角度来看,简化搜索空间只关注n的正值是有意义的。 我们将使用的新方程是:
 
99VR视界二维码
热门推荐
Hot Recommended
在线客服