嗚嗚喔學習筆記: UnityShader初體驗 - 6.2.3 漫射 Lambert's law && Half Lambert's Law

搜尋此網誌

2019年4月21日 星期日

UnityShader初體驗 - 6.2.3 漫射 Lambert's law && Half Lambert's Law


這裡介紹漫射會用到的公式 : 

通俗的理解 :
下面有一顆球理論上
越是面向光線的方向
就越亮

所以
其中 n·I 簡單說就是如下圖  ( 兩向量之內積 )






所以就會是公式就是 : 光亮度 * 漫射係數 * Max( 0 , 光向量 與 法向量 之內積 )

(光向量 與 法向量 之內積) --> (n·I) --> 因為有可能變成負的這不合理阿??
所以只取正值如下 : 

Max( 0 , 光向量 與 法向量 之內積 )

-------------------------------------------------------------------------------

Lambert's Law - 蘭伯特定律  


公式為 : (C-light · M-diffuse)max(0,n·I)


Half Lambert's Law - 半蘭伯特定律 - 沒有理論基礎只是經驗模型

α & β 通常為 0.5公式為  : (C-light · M-diffuse)(α(n·I)+β)

----------------------------------------



如上圖 
Lamber's Law 計算後在光的另一面會全黑 , 這樣看起來蠻奇怪的
Half Lamber's Law 就不會但這只是經驗模型,就是靠感覺做出來的公式拉~~







沒有留言:

張貼留言