計算機圖形學-光柵圖形學算法(消隱算法)

消隱算法

1.消隱算法簡介與分類
消隱:繪製時消除被遮擋的不可見的線或面。

按對象分類:線消隱、面消隱

按消隱空間分:
1.物體空間的消隱算法(包含Roberts算法,光線投射法)
2.圖像空間的消隱算法(包含Z-buffer算法,掃描線算法,Warnock消隱算法)

2.Z-Buffer消隱算法
幀緩衝器:intensity(x,y),像素的光強或顏色
深度緩衝器:depth(x,y),像素的z座標

算法思想:
在這裏插入圖片描述
上面這張圖中,p1p_1p2p_2的前面,p1p_1zz 座標大於p2p_2zz 座標,所以顯示的是p1p_1

z-Buffer算法的優點:
1.算法比較簡單,也很直觀
2.以近物取代遠物,有利於硬件實現

z-Buffer算法的缺點::
1.佔用空間大;
2.沒有利用圖形的相關性與連續性
3.是在像素級上的消隱算法

只用一個深度緩存變量zb的改進算法:
判斷象素點(i,j)是否在pk的投影多邊形之內,犧牲時間換區空間。
判斷點是否在投影多邊形之內:射線法,弧長法,弧長累加法

3.區間掃描線算法
算法簡介:
在這裏插入圖片描述
1.[a4,a5],用背景色顯示
2.[a1,a2],顯示該多邊形的顏色
3.[a6,a7], 必須通過深度測試判斷哪個多邊形可見

算法存在幾個問題:
1.求交點?利用增量算法簡化求交
2.在這個區間上有哪些多邊形是和這個區間相關?多邊形掃描轉換算法,活動邊表等

4.區域子分割算法
區域子分割算法也叫 Warnock算法。

Warnock算法簡介:
1.採用了分而治之的思想,利用了堆棧的數據結構
2.把物體投影到全屏幕窗口上,然後遞歸分割窗口,直到可以顯示

什麼時候可以顯示(如下圖):
1.窗口中僅包含一個多邊形
2.窗口與一個多邊形相交,且窗口內無其它多邊形
3.窗口爲一個多邊形所包圍
4.窗口與一個多邊形相分離
在這裏插入圖片描述
窗口有多個多邊形投影面,如何顯示?
把物體投影到全屏幕窗口上,然後遞歸分割窗口,直到窗口內目標足夠簡單,可以顯示爲止。

窗口僅有象素那麼大,而窗口內仍有兩個以上的面,怎麼辦?
不必再分割,只要取窗口內最近的可見面的顏色或所有可見面的平均顏色作爲該象素的值

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章