2010-12-13 7 views
1

鏡面反射がなぜ と定義されているか誰にも分かりません。反射= 2(標準ライト)ノーマル - ライト ここでノーマルはプレーンの法線で、 光源は光源からの正規化ベクトルですか?鏡面反射に関する質問

答えて

2

ベクトルを反映させるには、特定の軸にあるベクトルの成分を逆にする必要があります。たとえば、ベクトルをx軸から外すには、yコンポーネントの符号を反転するだけです。それを見る別の方法は、y成分に-1の係数を掛けることです。その目的を達成するさらに別の方法は、y成分を2倍減算することです。この最後の変種は、あなたのサイトの数式で使用されるものです。

私たちの方向ベクトルから表面法線のいくつかの倍数を差し引きたいと思います。 (Normal.Light)項は、法線に沿った光ベクトルの成分を与えます(上記の例のy成分に似ています)。次に、2倍の量(したがって2)が必要であり、法線の方向にベクトルを変更したいので、数に法線を掛ける必要があります。あなたはマイナスの周りに条件を入れ替えたように思えます。

+0

あなたのお返事ありがとうございます@phkahler、数式は実際にはここで@ http://en.wikipedia.org/wiki/Specular_reflectionで与えられます。私は正しいはずだと思います。 私はあなたが何を言いたいのか分かります。反射のベクトルがNormal - Lightであること。しかし、私は実際に製品にノーマルとライトをドットする必要がある部分を理解していません。なぜ2倍にする必要があります。 – Yijinsei

+0

近くを読むと、彼はそれを説明しました。内積は光ベクトルを法線に投影したもので、反射ベクトルを得るためには2倍必要です。 –

+0

啓発のおかげで= xが、私は実際にドットプロダクトの概念を理解することができませんでした光ベクトルのプロジェクトが正常に.. – Yijinsei

0

それはおそらくここに記載されている一般的な反射の結果である:

おそらく、しかし理由を理解するためにビットベクトルの幾何学や線形代数を知っておく必要があります。