過程
將多邊形表示的物體顯示到計算機螢幕上,這一過程涉及物體在計算機內部的表示方式即物體的數據結構,由物體組成的場景的組織結構,物體從場景到螢幕空間要經過的一系列變換,以及產生最終螢幕圖象要經過的一系列光柵化處理。這些方面都涉及到特定的處理算法,相應的算法又有許多不同的變種。下面僅就3d晶片涉及的圖形處理過程及相關算法做一簡單分析介紹,這些是理解3d圖形處理及圖形硬體的基礎。
3d物體表示法
具有複雜外形的物體其表面可以由多邊形面片來近似表示。以圖1的圓柱為例,其柱面可以由2n個三角形近似,其兩端可以由兩個n邊形來近似。多邊形模型在其輪廓上的分段線性特徵是這一表示法主要的視覺缺陷,改進的唯一途徑是增加多邊形的解析度。對於一個複雜形體來說,為了充分表示其細節,常常要用到十萬個以上的多邊形。這將耗費許多資料庫訪問時間和繪製時間。當將多邊形模型進行放大處理時,會產生連線問題。這就是所謂的“幾何走樣”。物體的多邊形表示既可以通過互動設計人工提取,也可以通過雷射掃描設備得到。總之,多邊形表示的物體並不特別適合於互動操作或做自由的形狀改變。當改變物體的形狀時很難保證多邊形表示的完整性得到保持。 對多邊形明暗著色所需要的信息存儲在一個分層的數據結構中,每一個物體表面由指向多邊形表的指針定義,該多邊形表包含了近似該表面的一組多邊形,每一個多邊形由指向頂點表的指針定義,頂點表包含了每個多邊形的所有頂點。
象素處理
經過以上一系列的變換之後,一個多邊形已變換到螢幕坐標系下。將一個螢幕多邊形在螢幕上繪製出來就是多邊形的象素處理過程,它包括光柵化、隱藏面消除、明暗處理。光柵化、隱藏面消除、明暗處理是整個3d圖形生成過程中最內層的處理。他們是三個二維插值過程。光柵化是用螢幕空間三角形的頂點坐標插值,以求得三角形的邊所截取的三角形內掃描線段的端點坐標,並進而求得所截掃描線段上的象素坐標。隱藏面消除則是通過對螢幕空間三角形頂點的深度值(z坐標)進行插值,從而獲得三角形內掃描線段上每個象素的深度值。明暗處理是用同樣的方法由頂點光強求得三角形內掃描段上每個象素的光強。這三種處理的算法具有相同的數學表示形式,只需將坐標、深度或光強代入該方程就可以得到相應的結果。總之,場景的繪製過程可概括為: 對場景中的每個物體的每個多邊形做幾何變換將其變換到螢幕空間; 對多邊形內的每一個掃描段求出其端點及其上每個象素的坐標; 對掃描段上的每個象素做隱藏面消除處理及明暗處理。
3d圖形套用
3d圖形套用對計算和存儲資源的巨大需求以及3d圖形生成算法與傳統計算機體系結構的不相適應產生了3d圖形硬體。pc機上的3d圖形硬體的出現只是最近幾年的事,它是技術進步和市場推動的結果。目前,3d圖形硬體既有高端的專用圖形工作站也有入門級的圖形加速卡,任何更好更快的圖形效果的獲得都需要付出巨大的硬體代價。