材質 – 光照模型

Posted: 十二月 31, 2007 in 電腦動畫
一直想寫關於3D材質的文章
先來大致上寫一些好了
從最基本的 phong 開始
 
所謂材質   其實不過是告訴電腦如何在畫面上著色的一種方法
不同的材質   電腦運算出顏色的方式也不同
這些方式   姑且可以稱為公式吧    在電腦繪圖會叫它 Render Model
而這些數學式子   都是由一些數學家或電腦工程師所發明出來
就拿 phong 這個Render Model來說   就是由名叫 Phong 的華裔越南人發明的
另外他老師Gouraud發明的Render Model( 沒錯就叫gouraud ) 也是眾所皆知吧
一般來說
計算表面的亮度
是利用計算光照面法線與光源的夾角以及反射光與觀察者的視角
來計算這個光照面明亮的程度
其中光照面法線與光源的夾角    是用來計算所謂 diffuse 散射光
散射光就是我們一般看見物體的顏色亮度  
會叫它散射光    是因為一般物體的表面    微觀來看並非很光滑的
光照到表面後    會因為不規則的表面而散亂的反射
加上物體本身對光的吸收
所以真正射入眼睛的光線    會是從物體上不同區域表面反射過來的
於是這部分與反射光和視線的夾角較無關    而和光線射入表面的能量( 光照面與光源的夾角   夾角愈小受的能量愈大)有關
而反射光與觀察者的視角    是用來計算所謂 highlight 高光區或是稱為亮點
這部分就是用來計算光線射入表面後反射光線被眼睛所接收的程度
眼睛與反射光夾角越小    表面看起來就越明亮
這部分反映出光源經過反射後直接射入眼睛的狀況
所以通常都會是光源本身的顏色    而不是物體的顏色( 不過請注意    我說的是通常)
但是在粗糙的物體上    光源能經過反射後完全直接射入眼睛的情況很少
大部分會是遇到不規則的表面而散亂的反射
所以呈現出的情況會是有較亮的散射光    也就是物體本身的顏色    而沒有highlight區
反過來說    在很光滑的物體上    大部分光源經過反射後完全直接射入眼睛
反而是遇到不規則的表面而散亂反射的情況少了
於是物體上大部分是呈現外界光源的顏色    物體自己本身的散射光顏色就不明顯了
像鏡子就是一個例子
另外    最後還有一個影響物體表面的因子
在真實世界裡    物體不是單獨存在的
在它周圍有許多其他的物體    這些物體也都會反射光源
而這些物體反射出的光    也有機會照射在要計算的物體上
計算這些物體交互照射的現象
一般稱為 ambient 環境光
這與角度無關( 較粗糙的說法上 )
一般用一個常數 ( 也就是一個固定值 ) 來代表這些環境光所造成的影響
所以
一個物體表面所呈現出來的顏色    可以大致上以這樣來表示 :
        diffuse(散射光) + highlight (高光) + ambient (環境光)
把它跟光源角度與物體本身材質特性做結合的話 :
     ( 物體的diffuse特性 ) * ( 光照面法線與光源的夾角 ) + ( 物體的highlight特性 ) * ( 視線與反射光夾角 ) + ambient 
這些物質的特性也包含了顏色
從這裡可以來看粗糙物體與光滑物體的比較
由前面的說明中可以知道    粗糙物體的 highlight 特性數值很小     而光滑物體的 diffuse 特性數值很小
所以利用調整這些特性數值    我們就可以得到千變萬化的材質了
 
寫半天還沒寫到 phong
下次再寫了
 

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s