<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 輕松實現(xiàn)3D圖形處理的設(shè)計技巧

          輕松實現(xiàn)3D圖形處理的設(shè)計技巧

          作者: 時間:2017-06-04 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/201706/348717.htm

          1. 科學(xué)性

          如今,越來越多的桌面PC采用3D圖形繪制技術(shù)來獲得高真實感的顯示效果。諸如工業(yè)與藝術(shù)行業(yè)的設(shè)計和制造、科學(xué)研究中的建模、交通和旅游業(yè)中的虛擬漫游以及3D游戲等。

          3D圖形繪制技術(shù)的本質(zhì),是通過一系列算法來模擬自然界中物體在人眼中成像的過程,算法從幾何建模、空間變換到計算空間中每個點的光照、陰影以及紋理等等。算法越趨近真實,物體的繪制效果也越逼真。顯然,以有限性能的數(shù)字系統(tǒng)去還原真實的自然界是極其困難的,考慮的因素越多越細(xì),系統(tǒng)的復(fù)雜度越高,實時性越低。因此,任何一款圖形繪制系統(tǒng)都必須根據(jù)自身硬件的規(guī)模、以及場景中物體的特點,在真實性與實時性之間尋求平衡。

          圖2.1 移動設(shè)備圖形領(lǐng)域的發(fā)展

          過去幾十年中,桌面PC及工作站一直是3D圖形繪制的主流平臺,圖形處理系統(tǒng)的架構(gòu)與算法也主要基于這種大面積、高存儲帶寬、高功耗的特性。然而,移動設(shè)備在外部存儲帶寬、功耗、面積等制約因素上有著數(shù)量級的劣勢。但是,移動設(shè)備往往又僅需在較小的分辨率上繪制圖形。較小的分辨率意味著能接受以恰當(dāng)?shù)姆绞胶雎砸恍┘?xì)節(jié),并且通常不會在一個屏幕中包含太多物體。正是和桌面平臺相比之下的這些劣勢與優(yōu)勢,使面向移動設(shè)備的系統(tǒng)自成一體,絕不能靠簡單地移植桌面圖形處理系統(tǒng)來實現(xiàn)。

          因此,研究與設(shè)計全新的體系架構(gòu)、執(zhí)行流程、算法、開發(fā)調(diào)試環(huán)境及方法等,都成為面向移動設(shè)備的圖形處理系統(tǒng)的關(guān)鍵技術(shù)與創(chuàng)新難點。概括起來,本項目的科學(xué)性有如下幾點:

          1)基于移動平臺上的圖形處理器的硬件架構(gòu)、算法和接口,業(yè)內(nèi)都有各自的側(cè)重和妥協(xié),尚無較統(tǒng)一方案。研究分析圖形系統(tǒng)各階段的關(guān)鍵技術(shù),評估多種實現(xiàn)方案間的優(yōu)劣,將具有重大的科研及市場價值。

          2)由于本項目涉及到了圖形處理的各個方面,而國內(nèi)尚無GPU生產(chǎn)廠家,因此對于國內(nèi)涉及到3D圖形顯示的各個相關(guān)產(chǎn)業(yè)都具有重要的意義。本項目將會幫助廠家能夠更好地提高方面的技術(shù),致力于給消費者更好的體驗,以使國產(chǎn)電子產(chǎn)品取得更大的市場份額。

          3)最近幾年,隨著移動設(shè)備在工業(yè)、生活中的普及與發(fā)展,3D圖形繪制系統(tǒng)也逐漸成了移動設(shè)備中的核心部件。研究發(fā)展移動設(shè)備上的技術(shù)具有重大意義。

          2. 創(chuàng)新性

          從算法和硬件架構(gòu)兩個層次進(jìn)行優(yōu)化,并從運算速度、芯片功耗和靈活性三方面考慮,以實現(xiàn)用一個較低復(fù)雜度和較低功耗的3D圖形處理器對真實感圖形實現(xiàn)硬件加速。本課題組的創(chuàng)新性主要體現(xiàn)在如下幾個方面:

          1)所有算法采用定點實現(xiàn),并在精度允許的情況下盡量減小數(shù)據(jù)位寬,以降低電路復(fù)雜度和功耗。

          2)硬件結(jié)構(gòu)上含有基于Tile的光柵單元。基于Tile的繪制方法大大減小了訪問外部存儲器的帶寬,從而降低了功耗。

          3)采用進(jìn)行仿真驗證工作,通過的并行性和流水線,可以在一個較低的時鐘頻率(50MHZ)下達(dá)到比較理想的數(shù)據(jù)處理能力。而這正是圖形處理器所必需的。

          3. 技術(shù)方案

          3D圖形繪制系統(tǒng)的基本組成,是3D圖形算法程序以及圖形處理器硬件。確定算法程序及硬件結(jié)構(gòu)后,便可進(jìn)行各種測試分析。

          3.1 3D圖形算法

          要能實時繪制3D場景,就需要在計算機(jī)中為場景內(nèi)每一個物體進(jìn)行建模,為了方便在計算機(jī)中對不同形狀不同屬性的物體建模,最常用的方法是用許多三角形面片構(gòu)成一個多面體來擬合實際物體。對這個物體的3D圖形繪制流程,大部分內(nèi)容就是對這些三角形的繪制。

          因此基礎(chǔ)3D圖形繪制可以分為兩部分,第一部分是處理物體的頂點,第二部分是處理每一個像素,就三角形而言,即三角形的三個頂點,以及三角形中的每一個像素。

          3.1.1 坐標(biāo)轉(zhuǎn)換

          物體建模時,采用這個物體的幾何坐標(biāo)來表示其形狀,這時所使用的坐標(biāo)系稱為模型坐標(biāo)系,模型坐標(biāo)系的原點往往取自幾何物體的某個點或者附近的某點。當(dāng)這個物體和其他物體一起被設(shè)定到3D場景中時,多個物體必須公用場景的原點,此時,大場景構(gòu)成一個世界坐標(biāo)系。而人眼從顯示器去看這個大場景時,只會以特定的角度及深度看到場景的一部分的投影,即存在一個視椎體,這個投影最終出現(xiàn)在屏幕上時,變成平面的圖像,即屏幕坐標(biāo)系。

          物體在這幾個坐標(biāo)系間轉(zhuǎn)換,需要對每個幾何頂點做矩陣運算。矩陣的值由坐標(biāo)轉(zhuǎn)換時的相關(guān)參數(shù)確定,例如,在世界坐標(biāo)系中的偏移,旋轉(zhuǎn),縮放值,視椎體的深度角度,屏幕的分辨率等。

          3.1.2 光照計算

          正確的光照,改變物體本來的顏色明暗,并立刻產(chǎn)生顯著的真實感。光照處理的對象是計算物體上每個點所反射出的光強大小。這個過程需要根據(jù)光源的類型、屬性,物體表面的材質(zhì),物體表面法線與光源的角度,物體與光源的距離,人眼與物體的角度、距離等因素來計算最終的光照強度。

          光源主要包括平行光、點光、聚光。物體對光的反應(yīng)特性主要包括反射、吸收、透射。其中最主要的反射,包括環(huán)境泛光、漫反射、鏡面反射。泛光主要用來體現(xiàn)環(huán)境中物體散射到物體并反射的光。漫反射是物體向空間各角度均勻反射的光,其強度與入射角的余弦成正比,但與視點無關(guān)。鏡面反射是朝特定方向反射的光。當(dāng)鏡面反射光恰好進(jìn)入視點時,將能看到通常所說的高光面。

          3.1.3 可見性判斷

          3D場景繪制,是對真實情況的建模和顯示,物體之間嚴(yán)格按照自然的遮擋關(guān)系,物體每個點在視野中的前后都需要經(jīng)過判斷,以確保近處的能恰當(dāng)?shù)谜趽踹h(yuǎn)處的。因此需要設(shè)定專門的深度緩存,屏幕上的每個像素在繪制前都需要根據(jù)深度來判斷,如果前面有不透明物體遮擋的話,該點將不會被繪制。

          另一方面,對于不透明的封閉幾何體,背朝視點的面不需要顯示,將可以直接于早期剔除,出現(xiàn)在視椎體邊界的三角形需要進(jìn)行裁剪,形成新的三角形。

          3.1.4

          3D圖形繪制流程中,如果對物體的每個像素都做坐標(biāo)變換或是光照計算等操作,將會導(dǎo)致龐大的計算量,因此在采用三角形擬合物體的算法中,往往僅計算三角形頂點的這些屬性,三角形中的點,就又頂點的屬性插值而成,由于這項工作將面向每個三角形中的每個像素,運算過程中將需要訪問顏色緩存與深度緩存還有紋理貼圖數(shù)據(jù)。這些導(dǎo)致該過程的計算量占圖形處理的大部分。如何高效地插值填充三角形內(nèi)的像素,將顯著影響3D圖形性能。

          算法中,一系列像素是緊挨著的,因此為遞推算法和Cache命中提供了天然了方便,然而如何在特定的軟硬件平臺下充分利用這些特性來取得高性能,需要細(xì)致研究。

          3.1.5 紋理貼圖

          物體的紋理包括表現(xiàn)其表面光學(xué)屬性的顏色紋理,以及表現(xiàn)其表面圍觀幾何形狀的幾何紋理。紋理主要使用圖像、函數(shù)或其他數(shù)據(jù)來改變物體表面的外觀細(xì)節(jié)。很多時候,物體的細(xì)節(jié)并不需要通過幾何建模來精確實現(xiàn),采用紋理貼圖的方式能快速高且真實感地實現(xiàn)這一點。但紋理的使用包含多個關(guān)鍵技術(shù)。坐標(biāo)經(jīng)過透視變換后,物體各個像素的屬性與屏幕坐標(biāo)之間就不再是線性的關(guān)系,由于過程中,三角形中像素的紋理坐標(biāo)是通過插值得出的,在透視變換后,這種插值的結(jié)果將產(chǎn)生失真,需要特定算法進(jìn)行矯正。為了防止紋理采樣時的混疊現(xiàn)象發(fā)生,紋理采樣通常需要進(jìn)行多點采樣并濾波得出最終結(jié)果。為了提高效率,當(dāng)物體離觀察者越近越大時,采用高分辨率的紋理圖像,而越遠(yuǎn)越小時,則采用低分辨率的紋理圖像。

          3.2 圖形繪制系統(tǒng)硬件結(jié)構(gòu)

          3D圖形處理領(lǐng)域早期采用全硬件的電路來依次實現(xiàn)圖形繪制流水線中的各個階段。盡管全硬件的結(jié)構(gòu)使得性能和效率都非常高,但靈活性則大大損失。即使在同一個硬件平臺上,不同的應(yīng)用程序,不同的3D場景,都有各自不同的特點。繪制這些不同的場景,通常在不同的階段有不同的負(fù)荷,有時需要采用不同側(cè)重的算法。這些都是固定結(jié)構(gòu)硬件無法實現(xiàn)的。

          隨著半導(dǎo)體工藝的進(jìn)步,同樣的面積和功耗下,能夠?qū)崿F(xiàn)更多更復(fù)雜的系統(tǒng)。因此,基于可編程處理器的3D圖形繪制系統(tǒng)被廣泛采用,通過編寫程序來實現(xiàn)3D繪制中的許多功能,這雖然犧牲了一些性能,但在靈活性上換回得效果使這種方案更具性價比。但特定的算法,例如紋理濾波、顏色混合等計算任務(wù)的硬件性能高出軟件許多倍,因此仍保留使用硬件實現(xiàn)。

          本課題組采用這種可編程處理器,配合固定功能硬件的架構(gòu)來實現(xiàn)3D圖形系統(tǒng)。

          3.2.1 頂層結(jié)構(gòu)

          圖3.2.1 圖形處理器系統(tǒng)頂層

          3D圖形處理器包含一個可編程的及一個基于Tile繪制方法的光柵單元。為保留采用多個圖形處理器的方案,系統(tǒng)采用基于SOPC的Nios嵌入式軟核作為整個系統(tǒng)的控制中樞,與1到多個圖形處理器構(gòu)成異構(gòu)片上多核系統(tǒng),對以后可能將實現(xiàn)的指令發(fā)射,控制計算解耦合等技術(shù)留下空間。單個圖形處理器中除了及光柵器外還包含一個總線接口、一個DMA、一個DDR2控制器、一個指令Cache和一個紋理Cache。系統(tǒng)的外圍,包括VGA控制器,用戶輸入等人機(jī)交互接口和Flash控制器,風(fēng)扇控制器,測溫控制器等外設(shè)IO。

          3.2.2 結(jié)構(gòu)

          圖3.2.2 可編程頂點處理器結(jié)構(gòu)

          面向移動設(shè)備的3D圖形處理器對效率的苛求遠(yuǎn)遠(yuǎn)大于桌面系統(tǒng),目前許多商用嵌入式圖形處理器IP都直接采用片上指令存儲器,對于指令的效率相當(dāng)敏感。本設(shè)計沒有采用高位寬的指令集,而是將指令格式控制在32位。并通過設(shè)置特殊狀態(tài)寄存器來輔助指令實現(xiàn)更靈活更豐富的操作,包括操作數(shù)的預(yù)處理和后處理、矢量運算的控制、同步控制等。

          頂點處理器支持定點、單精度浮點、特殊函數(shù)運算、矢量運算。包含8級流水線及數(shù)據(jù)相關(guān)旁路器。支持1D-4D靈活的SIMD。其中,特殊函數(shù)運算,由多項式分段查表擬合的方式實現(xiàn),支持倒數(shù)、平方根、對數(shù)、指數(shù)等。

          頂點處理器指令集中可尋址的包含1個標(biāo)量寄存器入口、1個矢量寄存器入口、1個參數(shù)寄存器入口及1個特殊狀態(tài)寄存器入口。

          3.2.3 光柵器結(jié)構(gòu)

          光柵單元的輸入為三角形的頂點屬性,包含坐標(biāo)、光照強度、顏色、紋理坐標(biāo)等。輸出為需要顯示到屏幕上的像素。

          由于3D圖形中,三角形內(nèi)的像素個數(shù)遠(yuǎn)遠(yuǎn)多余三個頂點,且光柵單元在計算像素時,需要多次訪問存儲器,包括單個或多個紋理存儲區(qū)、深度存儲區(qū)、顏色存儲區(qū)。對外部存儲器帶寬要求極大,而面向移動設(shè)備的3D圖形處理器僅允許很小的外部帶寬。為解決這種矛盾。本課題組采用基于Tile繪制方式的光柵單元。

          在基于Tile的繪制方式中,將屏幕分割成諸多稱為Tile的小區(qū)域,逐個繪制這些小區(qū)域。具體的過程為:首先將所有三角形歸屬到各自的Tile中,依次遍歷每個Tile,每個Tile中依次遍歷所有三角形,將該Tile的深度緩存、顏色緩存都置于片內(nèi)存儲器中,以此獲得顯著提升的帶寬。繪制完每個Tile后,將該Tile的深度緩存及顏色緩存存入片外存儲器,再載入下一個Tile的深度及顏色緩存。

          在每個Tile中又進(jìn)一步分割成多個Block,在光柵的第一個階段,判斷三角形覆蓋哪些Block,再判斷這些Block中的每個像素是否在三角形內(nèi),篩選出三角形內(nèi)的點后,根據(jù)該點在三角形中的位置,由三個頂點的屬性對其進(jìn)行加權(quán)插值,得出的深度、顏色、紋理等屬性經(jīng)深度測試、紋理貼圖、顏色混合后,最終進(jìn)入顏色緩存。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();