2010-12-13 98 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

這也許是這裏所描述的一般反映的結果:

你可能需要知道一個位向量的幾何形狀或線性代數理解爲什麼雖然。