新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 3D圖形芯片的算法原理分析

        3D圖形芯片的算法原理分析

        作者: 時間:2013-09-22 來源:網絡 收藏

        一、引言

          芯片的處理對象是多邊形表示的物體。用多邊形表示物體有兩個優點:首先是直接(盡管繁瑣),多邊形表示的物體其表面的分段線性特征除輪廓外可以通過明暗處理(shading)技術消除;其次是僅存儲多邊形頂點的幾何信息,多邊形內部每個象素的明暗顏色計算所需的信息由這些頂點信息插值而來,這正是易于用圖形硬件支持的快速明暗處理技術。支持多邊形繪制的圖形硬件同樣也可以繪制由雙三次曲面片表示的物體,通過對這種物體的表面進行三角剖分,用逼近的三角形網格代替原物體的曲面表示就可以做到這一點。當然,用多邊形表示物體也有其缺點,如增加了紋理映射和陰影生成的難度,當需要詳細表示復雜物體時所需的三角形數量將變得非常龐大。

          將多邊形表示的物體顯示到計算機屏幕上,這一過程涉及物體在計算機內部的表示方式即物體的數據結構,由物體組成的場景的組織結構,物體從場景到屏幕空間要經過的一系列變換,以及產生最終屏幕圖象要經過的一系列光柵化處理。這些方面都涉及到特定的處理算法,相應的算法又有許多不同的變種。下面僅就芯片涉及的圖形處理過程及相關算法做一簡單分析介紹,這些是理解圖形處理及圖形硬件的基礎。

          二、3D物體的表示法

          具有復雜外形的物體其表面可以由多邊形面片來近似表示。以圖1的圓柱為例,其柱面可以由2N個三角形近似,其兩端可以由兩個N邊形來近似。多邊形模型在其輪廓上的分段線性特征是這一表示法主要的視覺缺陷,改進的唯一途徑是增加多邊形的分辨率。對于一個復雜形體來說,為了充分表示其細節,常常要用到十萬個以上的多邊形。這將耗費許多數據庫訪問時間和繪制時間。當將多邊形模型進行放大處理時,會產生連接問題。這就是所謂的“幾何走樣”。物體的多邊形表示既可以通過交互設計人工提取,也可以通過激光掃描設備得到。總之,多邊形表示的物體并不特別適合于交互操作或做自由的形狀改變。當改變物體的形狀時很難保證多邊形表示的完整性得到保持。

          對多邊形明暗著色所需要的信息存儲在一個分層的數據結構中,每一個物體表面由指向多邊形表的指針定義,該多邊形表包含了近似該表面的一組多邊形,每一個多邊形由指向頂點表的指針定義,頂點表包含了每個多邊形的所有頂點。具體來說需要為每個多邊形存儲以下信息:

          1)多邊形的頂點表,每一個頂點是一個三維坐標,該坐標定義在創建該物體時的局部坐標系中。

          2)頂點的法向量表,這是明暗處理算法所要求的信息。向量由同一局部坐標系中的三分量表示。

          3)多邊形的法向量,它是包含該多邊形的平面的真正的幾何法向量。這是背面刪除操作所需要的信息。

          繪制多邊形物體的傳統方法是將多邊形作為獨立的繪制實體,這樣多邊形之間的共享邊就要被處理兩次。為避免這種情況,可采用基于邊的繪制方法,這時多邊形的表示是基于多邊形的邊而不是多邊形本身。基于邊的方法意味著繪制過程的組織要采用基于掃描線的算法,基于掃描線的算法將同時處理與當前掃描線相交的所有多邊形。這時存儲器中能存儲的可被同時處理的多邊形的最大數目將成為可繪制的場景復雜度的上限。使用全屏Z-buffer并將掃描線算法局限在物體所包含的多邊形上就可以解決這一問題。

        三、坐標系統

          繪制過程的幾何處理部分可被看成應用一系列的坐標變換將物體數據庫變換到一系列的坐標系下,這些坐標系對所有繪制系統都是公用的,是理解3D圖形學的基礎。用計算機生成圖象的一系列基本操作與繪制過程要經歷的一系列空間即坐標系有關。隨著繪制過程的進行處理將從一個空間進入下一個空間。已完整地建立起描述這些變換的方法。在對物體實施變換時希望對頂點和頂點的法向量使用相同的變換矩陣。事實上,當變換在所有方向并不相同時,頂點法向量必須采用不同的變換矩陣。由于單位法向量


        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 清新县| 马山县| 嘉定区| 都安| 舒兰市| 祥云县| 宁远县| 双桥区| 南宫市| 来凤县| 鲁甸县| 凤阳县| 临颍县| 应城市| 桂阳县| 南阳市| 芦山县| 张家界市| 裕民县| 若尔盖县| 南宁市| 铜梁县| 丰顺县| 汝阳县| 绥中县| 类乌齐县| 盐亭县| 盐城市| 清徐县| 宜州市| 山东省| 澳门| 宁河县| 敖汉旗| 景泰县| 平远县| 天峻县| 曲沃县| 原阳县| 利辛县| 宁化县|