嵌入式圖形加速器幾何階段研究

前言:尋找寫作靈感?中文期刊網用心挑選的嵌入式圖形加速器幾何階段研究,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。

嵌入式圖形加速器幾何階段研究

摘要:隨著人們對嵌入式設備的圖形顯示能力和響應速度的要求逐漸提高,考慮到計算機對圖形處理時計算任務比較繁重,將中央處理器從圖形計算中脫離出來逐漸成為了研究趨勢,于是在這種背景下圖形處理器應運而生。本文從嵌入式圖形處理器的發展歷史及出現過程出發,重點介紹了在嵌入式系統中圖形處理器在幾何階段的分段處理和設計實現。對嵌入式系統中圖形處理器的后續研究奠定了簡單的基礎。

關鍵詞:嵌入式系統;圖形加速器;幾何階段;計算機圖形學

1嵌入式圖形處理器的發展歷史

在計算機圖形學中,會將計算機關于圖形處理的任務分為以下三個階段:應用程序階段主要完成對應用程序的執行;幾何處理階段主要完成對圖形元素的操作;光柵化階段主要完成對圖形元素的組裝,根據當前圖形元素的參數,然后為每個像素進行渲染著色,以便將圖形顯示出需要的效果。為了加快CPU的處理速度,使各種應用進程及程序能夠流暢快速的得到運行,人們引入了專門用于處理圖形數據的圖形處理器。第一代的圖形處理器硬件上實現了光柵化階段,此時CPU已經不在對圖形進行光柵化階段處理,而且顯示效率明顯有了改善,因為此時的圖形處理器只實現了光柵化階段,因此在更多地方會被稱為圖形加速器。直至出現第四代GPU,此時的圖形處理器已經完全具備了圖形處理的所有功能,而且在頂點級和像素級的操作上實現了可編程性。

2研究嵌入式圖形處理器的意義

隨著人機交互的發展,人們對計算機圖形顯示能力的要求逐漸提高。尤其是近些年嵌入式系統的不斷發展,各個領域對嵌入式設備的要求趨勢為小型化、多樣化、網絡化等特點。因此對嵌入式系統能夠提供的圖形處理能力也提出了新的要求,特別是近些年來智能手機的廣泛使用以及各種手游的不斷推廣。傳統的嵌入式系統并沒有專門設置圖形處理器,因此所有關于圖形數據計算和處理的任務均由中央處理器實現。如對于300MHz的嵌入式處理器ARM9為例,按照進行一次32bit×32bit的乘法運算計算,需要6個時鐘周期,這其中還不包括對每個頂點的幾何變換等其他操作,如果加上的話則需要更多的時鐘周期。

3圖形處理器的體系結構

為了研究的方便,人們普遍將圖形加速器中的幾何階段和光柵化階段對圖形的處理集合到一個叫做圖形管線的部件中進行研究,因此圖形管線在整個圖形處理器體系結構中是最基礎的結構,同時也是核心內容。其主要是處理來自中央處理器傳遞過來的渲染列表,然后最終將像素數據寫入幀緩存中。幾何階段根據研究和設計的需要,將幾何階段劃分為幾何變換、光照、圖形元素的裝配、圖元的剔除裁剪、背面剔除、紋理貼圖以及投影七個級別順序,光柵化階段也劃分為光柵化級別和片段處理兩個級別。

4幾何階段的設計與實現

4.1幾何變換引擎

圖形管線接收到CPU的渲染數據列表首先會被放置于GPU的渲染緩存區中。計算機對于三維現實世界空間內物體的描述均是基于頂點的,因此對某個物體的空間位置變換等操作便可以基于頂點來進行變換。

4.1.1原理

物體在現實空間的位置是任意的,而且也是隨意變化的。因此對于顯示出來的圖形需要經過幾何變換才能顯示出與實際物體相符的圖形。常見的變換有兩種:平移變換和旋轉變換。

4.1.2設計與實現

這是圖形處理器對現實空間中的物體進行的第一次處理,主要任務是將現實空間中的頂點坐標變換為方便進行光照和裁剪的坐標,即變換到裁剪空間。本文設計的幾何變換引擎分別有讀數據接口和寫數據接口,讀數據接口主要用于從中央處理器的緩存FIFO中讀取圖形的渲染列表,而寫數據的接口是將處理之后的數據寫到下一步處理階段的緩存FIFO中。引擎的行為是有一個主函數main_action()表示,該函數主要使用宏注冊到仿真內核,該函數主要分為四大塊,從中央處理器緩存FIFO中讀取數據列表,然后進行譯碼,此時直接調用相應的處理函數即可實現,然后將處理的結果寫到下一步光照FIFO中,以便下一個階段的使用。

4.2光照階段引擎

人們看到物體的顏色通常情況下會受到光照環境的影響,其實這是物體的材質對光源的顏色進行了調制的緣故,這就是光照階段需要完成的任務。

4.2.1原理

現實世界中的光照效果是一個復雜的物理過程,當我們使用數字化計算機來模擬連續信號的現實世界的光照效果時,我們無法做到實際上也沒有必要完全與現實世界一樣。在實際應用中,一個自身不發光的物體在環境中會有三種不同類型光照效果:鏡面光、散射光和環境光?,F實世界中任何一種光源均是由上述三種光源因為各自不同的強度而混合成的,再加上物體本身的材質對光照的調制變形成了現實中人們所看到的光和物體的顏色。

4.2.2設計與實現

設計光照引擎的目的在于更加真實的反應當物體受到光照時的顏色,因為當物體受到光照時,物體表面呈現出的顏色就會因為受到光照的影響而發生變化??紤]到現實世界中,即使是同一個物體也會表現出受到光照和不受到光照的情況,因此設計光照引擎時引入了一個使能開光來控制是否受到光照,從而控制是否引入光照影響。光照引擎的內部結構及功能為:從幾何變換引擎的緩存FIFO中讀取渲染數據列表,然后進行譯碼處理,將得到的結果寫到下一流程的FIFO中。與上一流程幾何處理階段緩存FIFO連接的是一個讀端口,與下一個流程圖元裝配連接的是一個寫端口。處理過程中會有顏色寄存器、光照使能命令、當前法線寄存器、環境光、散射光、鏡面光、材質等累加寄存器。

4.3圖元裝配引擎

頂點處理之后,下一步需要把頂點組裝成圖元。計算機圖形學中由三種圖形元素組成即點、直線和三角形。在三維空間中,點元素是由用于描述現實物體的頂點組成,對于線段圖形元素,則是由兩個頂點構成,而三角形圖形元素是由不在同一條直線上的三個點來組成的。對于現實中常見的折線、線環、以及三角形扇等都可以使用這三種圖形元素來構成。前兩個引擎的處理主要是頂點級的處理。此階段的主要任務是將之前獨立的頂點以及頂點之間的聯系進行組裝,本階段需要完成的另外一個重要任務就是將比較復雜的圖元分解成計算機圖形學中基本的圖形元素。

4.4剔除和裁剪引擎

當圖元組裝完成以后,下一步需要根據需要對圖元進行剔除和裁剪。在現實的三維空間中因為觀察者在時間空間和地理空間上看到的物體呈現出的視野是不一樣的,即由于視野的限制原因,需要使用視景體來模擬現實中的視野限制。在圖形顯示的過程中,需要將那些不在視景體內的圖形元素刪除掉,這個過程便為剔除和裁剪。

4.4.1原理

剔除:把不在視景體內的圖形元素從當前處理階段中刪除掉,避免一些不必要的計算,同時也會減輕后續階段對數據處理的壓力。在幾何變換階段把頂點從現實世界中的坐標轉換到了計算機能夠處理的相機空間中。對于計算機圖形學中最基本的圖元之一點圖元是通過一個測試平面來進行的,如果當前的點沒有通過測試的平面,則便會剔除掉,而對于線段來講,是使用線段的兩個端點進行測試的,如果線段的兩個端點都沒有通過測試,當前的線段便會被剔除掉,對于三角形圖元則是分別使用三角形的三個頂點進行測試的。裁剪:裁剪的作用主要是將不在視景體內的部分裁剪掉,它主要是針對線段和三角形的。剔除主要是當線段的兩個點或者三角形的三個點都不在視景體時將整個線段或者三角形全部剔除掉。而裁剪主要是針對線段或者三角形一部分在視景體內時,對視景體以外的部分剔除掉,這個過程我們稱之為裁剪。

4.4.2設計與實現

本階段主要是將視景體以外的圖元進行刪除,只保留視景體以內的部分。首先使用一個讀取渲染數據列表的讀端口PIPE_READ,然后通過寫端口PIPE_WRITE把處理之后的渲染數據列表傳送到下一個階段進行處理。在實現時使用了一個用于存放三角形的三個頂點的數據結構體,設置一個三比特的標志位,用于標志三個頂點能否通過平面的測試;另外設置一個鏈表結構,存放三角形的頂點數據以及各個三角形前后位置關系。

4.5背面剔除引擎

視鏡體外部不需要顯示的圖形元素經過剔除和裁剪已經被全部刪除,但是剩下的圖元并不意味著都要顯示出來,例如我們在三維空間中觀察實體時,背面不需要顯示,因此下一步需要將不需要顯示的背面進行剔除。

4.6投影引擎

經過背面剔除之后,因為顯示設備都是基于二維平面的,因此想要顯示出三維空間中的物體還需要將二維圖元進行投影。

4.6.1原理

將現實世界中的圖元映射到照相機視景體的面上。在計算機圖形學中比較常用的投影方法主要有正交投影和透視投影。前者使用的視景體為空間平面六面體,這種投影方式作用之后物體在投影之后的大小不會因為物體和照相機之間的距離收到影響。這種投影方式在CAD中經常使用。透視投影最顯著的特點便是縮小或者放大物體的成像。當物體與相機之間的距離越遠時,物體呈現出的像就越小,反之便會越大。

4.6.2設計與實現

在設計實現時,同樣也使用了一個讀端口和一個寫端口。從計算機圖形學算法角度來看,投影是使用一個投影矩陣與空間坐標相乘,但是考慮到計算機對矩陣乘法運算的計算量,在實現時使用了單獨一個函數進行計算。

參考文獻

[1]沈瀟,石銳.基于可編程圖形硬件的實時陰影算法及實現[J],計算機工程與應用,2006,27(19):4071-4073

[2]闕恒,嵌入式圖形處理器設計[D],南京航空航天大學,南京,2007

[3]肖云萍,鄒庭榮.泛邏輯學中UB代數系統的濾子與商代數[J].計算機工程與應用,2007,43(35):90-92

作者:王利祥 單位:河南護理職業學院

亚洲精品一二三区-久久