2010-12-13 100 views
1

有人知道为什么镜面反射被定义为 反射= 2(Normal。Light)Normal - Light 其中Normal是平面的法线, Light是来自光源的归一化矢量?关于镜面反射的问题

回答

2

若要反映一个向量,您需要反转位于特定轴上的该向量的组件。例如,要从x轴反射一个矢量,只需要翻转y分量的符号即可。另一种方法是将y分量乘以-1。实现这一目标的另一种方法是从自身中减去两倍的y分量。最后一个变体是您网站的公式中使用的变体。

我们想从我们的方向矢量中减去表面法线的一些倍数。 (Normal.Light)项为您提供了沿着法线的光矢量分量(类似于上例中的y分量)。然后,我们需要两倍的数量(因此2),我们想要改变向量的法线方向,所以这个数字需要乘以法线。你似乎已经在减号周围交换了条件。

+0

感谢您的回复@phkahler,该公式实际上在这里@ http://en.wikipedia.org/wiki/Specular_reflection中给出。我想应该是正确的。 我想我可以理解你想说什么。反射的矢量是正常的 - 光。然而,我并不真正了解我们需要点产品的正常和光照的部分。以及为什么需要乘以2. – Yijinsei 2010-12-13 16:25:18

+0

如果你仔细阅读,他会解释它。点积是光矢量在法线上的投影,为了得到反射矢量,需要两次。 – 2010-12-13 16:36:57

+0

谢谢你的启示= x,但我真的不能真正掌握点产品的概念是光矢量到正常的项目虽然.. – Yijinsei 2010-12-13 16:59:40

0

这也许是这里所描述的一般反映的结果:

你可能需要知道一个位向量的几何形状或线性代数理解为什么虽然。