【XJTUSE计算机图形学】第四章 真实感图形学(2)——简单光照明模型
文章目錄
- 【XJTUSE計算機圖形學】第四章 真實感圖形學(2)——簡單光照明模型
- 簡單光照明模型
- 相關物理知識
- 光的傳播
- 光的度量
- Phong光照明模型
- 理想漫反射
- 鏡面反射光
- 環境光
- 增量式光照明模型
- Gouraud雙線性光強插值
- 頂點的計算
- 頂點平均光強計算
- 增量算法
- Phong雙線性法向插值
- 兩種模型的評價
- 陰影
- 相關術語
- Hard 陰影 vs Soft陰影
- 陰影分類
- 自身陰影
- 投影陰影
- 經典的三種本影陰影方法
【XJTUSE計算機圖形學】第四章 真實感圖形學(2)——簡單光照明模型
簡單光照明模型
光源
發射光源:反射表面
通常在一個不透明且不發光的物體表面所觀察到的光線是其反射光,由光源與其他物體表面的反射光所共同產生。
光源向四周所輻射光的光譜分布
漫反射:投射在粗糙表面上的光向各個方向反射的現象。物體顏色實際上是入射光線被漫反射后所表現出來的顏色;
鏡面反射:一束平行光射到平面鏡上,反射光是平行的 。
空間的光亮度分布
圖形學:光源通常朝空間各個方向發射的光強是相同的。
材質
材質的顏色是由它所反射的光的波長決定;
如果光線被投射到一個不透明的物體表面,則部分光線被反射,部分被吸收:
物體表面的材質類型決定了反射光的強弱;
表面光滑較亮的材質將反射較多的入射光,比較暗的表面則吸收較多的入射光。
對于一個半透明的物體表面,部分入射光會被反射,部分則被折射。
光照射到物體表面,可能被吸收、反射和透射
被吸收的部分轉化為熱;
反射、透射光進入人的視覺系統。
光照明模型:模擬物體表面的光照明物理現象的數學模型。
簡單光照明模型
只考慮光源對物體的直接光照;
景物表面常被假定為不透明,且具有均勻反射率;
能表現由光源直接照射在漫射表面上形成的連續明暗色調,鏡面上的高光以及由于景物互相遮擋而形成的陰影等。
只考慮反射,不考慮折射
發展歷程
1967年,Wylie等人第一次在顯示物體時加進光照效果,并假設光強與距離成反比;
1970年,Bouknight提出第一個光反射模型:Lambert漫反射+環境光;
1971年,Gouraud提出漫反射模型加插值的思想;
1975年,Phong提出圖形學中第一個有影響的光照明模型。
相關物理知識
光的傳播
反射定律:入射角等于反射角,而且反射光線、入射光線與法向量在同一平面上。
折射定律:折射線在入射線與法線構成的平面上,折射角與入射角滿足
η1η2=sinφsinθ\frac{\eta_1}{\eta_2}=\frac{sin \varphi}{sin \theta} η2?η1??=sinθsinφ?
能量關系:在光的反射和折射現象中,能量是守恒的,能量的分布情況滿足這樣的一個式子:
Ii=Id+Is+It+IvI_i =I_d+I_s+I_t+I_v Ii?=Id?+Is?+It?+Iv?
IiI_iIi?為入射光強,由直接光源或間接光源引起;
IdI_dId?為漫反射光強,由表面不光滑引起;
IsI_sIs?為鏡面反射光強,由表面光滑性引起;
ItI_tIt?為透射光,由物體的透明性引起;
IvI_vIv?為被物體所吸收的光,由能量損耗引起
光的度量
立體角:面元ds向點光源P所張的立體角為:
dω=dsr2d \omega =\frac{ds}{r^2} dω=r2ds?
r為點光源到面元中心的垂直距離
點發光強度
光通量:單位時間內通過面元ds的光能量,記為dF 。
發光強度:點光源的發光強度為某個方向上單位立體角的內的光通量,即
各向同性的點光源,在各個方向上單位立體角內通過的光通量相等,即在各個方向上發光強度相等;
設發光強度為*I,*則點光源向外輻射的整個光通量為整個球立體角內的光通量,即
Phong光照明模型
光照到物體表面時,物體對光會發生反射、透射、吸收、衍射、折射和干涉。
簡單光照明模型模擬物體表面對光的反射作用
光源為點光源;
反射作用分為:鏡面反射和漫反射;
物體間作用用環境光(Ambient Light)表示;
典型:Phong光照明模型。
Phong模型中的幾何量示意圖
理想漫反射
理想漫反射:當光源來自一個方向時,由于物體表面粗糙不平,導致反射光均勻向各方向傳播,而與視點無關。
假設入射光強$I_p ,物體表面上點P的法向為N,從點P指向光源的向量為L,兩者夾角為,物體表面上點P 的法向為N,從點P 指向光源的向量為L,兩者夾角為,物體表面上點P的法向為N,從點P指向光源的向量為L,兩者夾角為\theta$ ,由Lambert余弦定律,漫反射光強為:
KdK_dKd?是與物體有關的漫反射系數 0<Kd<10<K_d<10<Kd?<1
當L,N為單位向量時,漫反射光強可表示為:
有多個光源時,上式可進一步表示為
反射光顏色:由入射光顏色和物體表面顏色共同決定;
在RGB顏色模型下, 有三個分量,分別代表三原色的漫反射系數,通過調整它們來設定物體的顏色;
可以把入射光強I設為三個分量Ir,Ig,IbI_r,I_g,I_bIr?,Ig?,Ib?,通過這些分量的值來調整光源的顏色
鏡面反射光
理想鏡面:反射光集中在一個方向并遵循反射定律。
光滑表面:反射光集中在一個范圍內,且由反射定律決定的反射方向光強最大。對于同一點,不同位置觀察到的鏡面反射光強不同。
鏡面反射光強:
KsK_sKs?是與物體有關的鏡面反射系數;
α\alphaα為視線方向V與反射方向R的夾角;
n為反射指數,反映物體表面的光澤程度,一般為1至2000,數目越大物體表面越光滑;
若規范所有向量,則鏡面反射光強為:
其中
多個光源時,鏡面反射光強為:
鏡面反射光將會在反射方向附近形成很亮的光斑,稱為高光現象;
鏡面反射光產生的高光區域只反映光源的顏色;
鏡面反射系數 是一個與物體的顏色無關的參數;
只能通過改變物體的漫反射系數來控制物體的顏色。
環境光
環境光:光源間接對物體施加的明暗影響,是在物體和環境之間多次反射,最終達到平衡時的一種光
同一環境下的環境光光強均勻分布,即在任一方向上的分布相同;
在簡單光照明模型中,近似表示為:
Ie=Ia.KaI_e=I_a.K_a Ie?=Ia?.Ka?
IaI_aIa? :為環境光的光強;
KaK_aKa?:為物體對環境光的反射系數。
Phong光照明模型:由物體表面上一點P反射到視點的光強III為環境光的反射光強IeI_eIe?、理想漫反射光強IsI_sIs?和鏡面反射光IdI_dId?的總和
I=IaKa+IpKd(L.N)+IpKs(R.V)nI=I_aK_a+I_pK_d(L.N)+I_pK_s(R.V)^n I=Ia?Ka?+Ip?Kd?(L.N)+Ip?Ks?(R.V)n
KdK_dKd?是與物體有關的漫反射系數 0<Kd<10<K_d<10<Kd?<1
入射光強$I_p $
IaI_aIa? 為環境光的光強;
物體表面上點P 的法向為NNN,從點P 指向光源的向量為LLL,兩者夾角為θ\thetaθ
Phong模型:對物體表面上的每個點P,均需計算光線的反射方向R,再由R計算(R?V)。假設:
光源在無窮遠處,即L為常向量;
視點在無窮遠處,即V為常向量;
(H?N)近似(R?V) ,H為L與V的平分向量:H=L+V∣L+V∣H=\frac{L+V}{|L+V|}H=∣L+V∣L+V?。
對所有的點總共只需計算一次H的值
結合RGB顏色模型,Phong光照明模型
Phong光照明模型:真實感圖形學中提出的第一個有影響的光照明模型,生成圖像的真實度已達到可以接受的程度。
由于是經驗模型,Phong模型存在不足:
顯示出的物體像塑料,無質感變化;
環境光是常量,沒有考慮物體間相互反射光;
鏡面反射顏色是光源顏色,與材質無關;
鏡面反射的計算在入射角很大時會產生失真現象。
增量式光照明模型
由于光源和視點均被假定為無窮遠,Phong模型光強計算公式是物體表面法向量的函數。
用多邊形表示的物體
每個多邊形由于法向一致,多邊形內部顏色相同;
不同法向的多邊形鄰接處光強突變且有馬赫帶效應
1868年由奧地利物理學家 E.馬赫發現的一種明度對比現象:人們在明暗交界處感到亮處更亮,暗處更暗的現象;
生理學的解釋:人類的視覺系統有增強邊緣對比度的機制
增量式光照明模型:
在每個多邊形頂點處計算光照明強度或參數,然后在各個多邊形內部進行雙線性插值,得到多邊形光滑均勻顏色分布;
保證多邊形之間的顏色光滑過渡。
兩個主要算法(要會實質和步驟)
雙線性法向插值:Phong明暗處理
雙線性光強插值:Gouraud明暗處理
Gouraud雙線性光強插值
Gouraud于1971年提出,又被稱為Gouraud明暗處理;
思想:計算多邊形各頂點的光強,再用雙線性插值,求出多邊形內部各點的光強
實質是:雙線性光強插值
算法步驟的基本描述
1?? 計算多邊形頂點的平均法向;
2?? 用簡單光照明模型計算頂點的平均光強;
3?? 插值計算離散多邊形邊上的各點光強;
4?? 插值計算多邊形內域中各點的光強。
頂點的計算
與某個頂點相鄰的所有多邊形的法向平均值近似作為該頂點的近似法向量;
頂點A相鄰的多邊形有k個,它的法向量計算為:
計算出的平均法向一般與該多邊形物體近似曲面的切平面比較接近。
頂點平均光強計算
用Phong光照明模型及平均法向量計算在頂點A處的光強;
Gouraud提出明暗處理方法時,還未出現Phong模型,采用:
r是光源到頂點的距離;
l是防止分母趨于0的變量
雙線性光強插值:線性插值與掃描線算法相互結合,用增量算法實現各點光強的計算
由頂點的光強插值計算各邊的光強,然后由各邊的光強插值計算出多邊形內部點的光強:
增量算法
雙線性光強插值
計算速度比以往的簡單光照明模型有了很大的提高,解決了相鄰多邊形之間的顏色突變問題,產生的真實感圖象顏色過渡均勻,圖形顯得非常光滑;
由于采用光強插值,鏡面反射效果不太理想,而且相鄰多邊形的邊界處的馬赫帶效應不能完全消除。
Phong雙線性法向插值
實質是雙線性法向插值,計算量比Gouraud大
以時間為代價,可以部分解決上述的弊病;
將鏡面反射引進到明暗處理中,解決了高光問題
Phong雙線性法向插值特點
保留雙線性插值,對多邊形邊上的點和內域各點,采用增量法;
對頂點的法向量進行插值,而原頂點的法向量,仍用相鄰多邊形的法向作平均;
由插值得到法向,來計算多邊形每個象素的光強度;
假定光源與視點均在無窮遠處,光強只是法向量的函數。
方法與光強插值類似,其中的光強項用法向量項來代替。基本公式:
增量插值計算也類似,用法向代替光強。
兩種模型的評價
兩類模型的特點:
光強插值能有效的顯示漫反射曲面,計算量小;
法向插值可產生正確的高光區域,但計算量大。
增量式光照明模型的不足:
此模型得到的物體邊緣輪廓是折線段而非光滑曲線;
由于透視原因,等間距掃描線會產生不均勻效果;
插值結果決定于插值方向。
陰影
陰影
陰影是現實生活中一個很常見的光照現象;
在真實感圖形學中,通過陰影可以反映出景物之間的相對位置,增加圖形的立體效果和場景的層次感;
在建筑、航天飛行器設計的供熱、太陽能計算等領域均有重要的應用
相關術語
接受物:可能接受光源照射的物體 。
本影:任意一點均無法觀察到光源任何部分。
半影:任意一點可觀察到部分光源。
陰影:即任意一點不能完全地觀察到整個光源。
遮擋物:可遮擋光源中任意一點的物體。
Hard 陰影 vs Soft陰影
Hard陰影:點光源照射下,陰影問題是個二值狀態
在計算機圖形學中,很容易生成點光源,并且有一些生成Hard陰影的實時算法;
Hard陰影真實感較差。
Soft陰影:幾乎不存在真正意義上的點光源
如太陽,其實也不是真正意義上的點光源,其所對應的陰影也不屬于Hard陰影;
對于非點光源,計算本影和半影區域是非常復雜的過程。
陰影分類
自身陰影:光源被景物遮擋而在該景物本身;
投影陰影:在其后面產生的較暗的區域。
自身陰影
點光源下,生成產生具有自身陰影的步驟:
1?? 將視點移到光源位置,將景物的面分成向光面和背光面;
2?? 將視點移到原來的觀察位置,對景物的向光面和背光面進行消隱,選用一種光照模型計算景物各面的亮度
3?? 如果面在陰影區域,那么該面的光強就只有環境光那一項,其他的那幾項光強都為零,否則就用正常的模型計算光強。
陰影算法與消隱算法相似:
消隱算法是根據視點看過去確定哪些面是可見的(前向面)或是不可見的(后向面)
而陰影算法則要確定哪些面從光源位置看過去是亮的(向光面)或暗的(背光面)。
從原理上,自身陰影面的求取只要簡單地對消隱算法作出一點改造:
消隱算法中根據視向確定的那些后向面就是陰影算法中根據光源方向確定的那些背光面(自身陰影面)。
投影陰影
投射陰影的區域和形態與光源及景物的形狀有很大的關系;
在光源的照射下,景物A在屏幕上產生了3個區域:本影區、半影區和無影區。
投射陰影區域:實際上是將光源作為觀察方向時景物在與光源反向的某一平面上的落影區;
投射平面可以是場景中另一景物的表面或是一個非場景范疇的基面,如建筑物所在的地平面或屏幕等。
經典的三種本影陰影方法
1?? 投影陰影;
2?? 陰影圖(Shadow Map)的方法;
3?? 陰影體(Shadow Volume)的方法。
總結
以上是生活随笔為你收集整理的【XJTUSE计算机图形学】第四章 真实感图形学(2)——简单光照明模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机图形学---简单光照明模型知识汇总
- 下一篇: TCP通信协议基本操作