• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            實(shí)時(shí)陰影繪制技術(shù)研究

            C++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
              48 Posts :: 20 Stories :: 57 Comments :: 0 Trackbacks
            圖形世界分裂的兩派——理清D3D和OpenGL的脈絡(luò)(上)

            [圖形世界分裂的兩派]

            計(jì)算機(jī)三維圖形是指將用數(shù)據(jù)描述的三維空間通過(guò)計(jì)算轉(zhuǎn)換成二維圖像并顯示或打印出來(lái)的技術(shù),API(Application Programming Interface)即“應(yīng)用程序接口”是連接應(yīng)用程序與操作系統(tǒng)、實(shí)現(xiàn)對(duì)計(jì)算機(jī)硬件控制的紐帶,Direct3D和OpenGL是目前的兩大3D圖形 API,要在你的3D顯卡上進(jìn)行3D特效的制作、實(shí)現(xiàn)都必須通過(guò)它們(Vooodoo迷們肯定對(duì)Glide接口記憶尤深,可惜已隨著3dfx的倒閉而作 古,其它還有Heidi等接口)。關(guān)于D3D和OpenGL的理論知識(shí)可以寫(xiě)一大堆厚厚的書(shū),在這里我只為大家簡(jiǎn)單介紹一下基礎(chǔ)知識(shí),有興趣深入研究的朋 友可以自己上網(wǎng)查詢相關(guān)資料。

            Direct3D(D3D)


            Direct 3D是基于微軟的通用對(duì)象模式COM(Common Object Mode)的3D圖形API。它是由微軟(Microsoft)一手樹(shù)立的3D API規(guī)范,微軟公司擁有該庫(kù)版權(quán),它所有的語(yǔ)法定義包含在微軟提供的程序開(kāi)發(fā)組件的幫助文件、源代碼中。Direct3D是微軟公司DirectX SDK集成開(kāi)發(fā)包中的重要部分,適合多媒體、娛樂(lè)、即時(shí)3D動(dòng)畫(huà)等廣泛和實(shí)用的3D圖形計(jì)算。自1996年發(fā)布以來(lái),Direct3D以其良好的硬件兼容 性和友好的編程方式很快得到了廣泛的認(rèn)可,現(xiàn)在幾乎所有的具有3D圖形加速的主流顯示卡都對(duì)Direct3D提供良好的支持。但它也有缺陷,由于是以 COM接口形式提供的,所以較為復(fù)雜,穩(wěn)定性差,另外,目前只在Windows平臺(tái)上可用。



            作為微軟DirectX技術(shù)的組件之一,Direct 3D也隨著DirectX的升級(jí)而不斷更新,同時(shí)在微軟的全力扶植下,Direct 3D技術(shù)的發(fā)展速度極快,DirectX 7:正式支持硬件T&L(光影變換)、DirectX 8:對(duì)Pixel Shader(像素著色器)Vertex Shader(頂點(diǎn)著色器)的支持、DirectX 9:提供2.0版本的可編程頂點(diǎn)和像素著色模式,顯卡硬件廠商也紛紛以對(duì)最新的D3D特效的硬件支持為賣點(diǎn)。遺憾的是,由于平臺(tái)的局限性等原因,D3D應(yīng) 用至今仍主要集中于游戲和多媒體方面,專業(yè)高端繪圖應(yīng)用方面,老牌的3D API---OpenGL仍是主角。

            OpenGL


            OpenGL的英文全稱是“Open Graphics Library”即“開(kāi)放的圖形程序接口”,它是計(jì)算機(jī)工業(yè)標(biāo)準(zhǔn)應(yīng)用程序接口,主要用于定義二維三維圖形。

            OpenGL是一套底層三維圖形API,之所以稱之為底層API,是因?yàn)樗鼪](méi)有提供幾何實(shí)體圖元,不能直接用以描述場(chǎng)景。但通過(guò)一些轉(zhuǎn)換程序,可以很方便的將AutoCAD、3DS等圖形設(shè)計(jì)軟件制作的DFX和3DS模型文件轉(zhuǎn)換成OpenGL的頂點(diǎn)數(shù)據(jù)。

            OpenGL是與硬件無(wú)關(guān)的軟件接口,使用它圖形軟件生產(chǎn)廠商再不用為各種不同的機(jī)型開(kāi)發(fā)設(shè)計(jì)不同的軟件,只要操作系統(tǒng)使用了OpenGL適配器就可以達(dá) 到相同的效果,它是一個(gè)開(kāi)放圖形庫(kù),目前在Windows、MacOS、OS/2、Unix/X-Windows等系統(tǒng)下均可使用,且僅在窗口相關(guān)部分 (系統(tǒng)相關(guān))略有差異,因此具有良好的可移植性,同時(shí)調(diào)用方法簡(jiǎn)潔明了,深受好評(píng),應(yīng)用廣泛。OpenGL能在網(wǎng)絡(luò)環(huán)境下以客戶機(jī)/服務(wù)器模式工作,充分 發(fā)揮集群運(yùn)算的威力,是專業(yè)圖形處理、科學(xué)計(jì)算等高端應(yīng)用領(lǐng)域的標(biāo)準(zhǔn)圖形庫(kù)。



            將OpenGL稱之為SGI的OpenGL毫不為過(guò),它源于SGI公司為其圖形工作站開(kāi)發(fā)的IRIS GL,在跨平臺(tái)移植過(guò)程中發(fā)展成為OpenGL。SGI在1992年7月發(fā)布1.0版,后成為工業(yè)標(biāo)準(zhǔn),由成立于1992年的獨(dú)立財(cái)團(tuán)OpenGL Architecture Review Board (ARB)控制。SGI等ARB成員以投票方式產(chǎn)生標(biāo)準(zhǔn),并制成規(guī)范文檔(Specification)公布,各軟硬件廠商據(jù)此開(kāi)發(fā)自己系統(tǒng)上的實(shí)現(xiàn)。只 有通過(guò)了ARB規(guī)范全部測(cè)試的實(shí)現(xiàn)才能稱為OpenGL,現(xiàn)在的ARB投票成員包括SGI、Intel、IBM、nVIDIA、ATi、 Microsoft、Apple等業(yè)界群英。2001年8月ARB批準(zhǔn)了1.1版本,最新版規(guī)范是2002年7月24日通過(guò)的1.4版本。

            看完了上面關(guān)于D3D和OpenGL的介紹,可能會(huì)給人這樣一種印象:D3D和OpenGL井水不犯河水,一個(gè)定位于高端工業(yè)標(biāo)準(zhǔn),一個(gè)定位于低端娛樂(lè),互不相干,但其實(shí)它們暗底下早就已經(jīng)開(kāi)始在較勁了。

            雖然早在WinNT 3.51 時(shí)代,Microsoft就已經(jīng)實(shí)現(xiàn)了它的OpenGL 版本,但卻不肯隨其Windows95 提供,稱該API 只適合高端應(yīng)用,而Win95面向一般消費(fèi)者,用不到。但后來(lái)大名鼎鼎的ID Software 的高手,DOOM、Quake之父John Carmack在開(kāi)發(fā)下一代三維圖形引擎時(shí)戲稱Direct 3D為可怕的、支離破碎的API,并極力建議采用OpenGL,此后以他為代表的一大批游戲開(kāi)發(fā)人員開(kāi)始多方呼吁MS積極支持OpenGL。 Microsoft終于在Win95的OSR2版本里集成了OpenGL。

            1999年SGI宣布與Microsoft合作開(kāi)發(fā)Ferihant,即Windows的下一代圖形處理體系,包括DirectX與OpenGL的低級(jí)圖 形處理接口和以場(chǎng)景圖支持為特點(diǎn)的高級(jí)接口,并且就此停止對(duì)其在Windows下的OpenGL實(shí)現(xiàn)的支持以示決心。此舉舉世矚目,大家都以為 Windows圖形處理快要過(guò)上幸福生活了,然而,不久,SGI宣布中止合作,并撤回派出的科學(xué)家,F(xiàn)erihant基本上夭折。SGI 稱終止合作的原因是Microsoft不肯積極合作,光想把SGI 的技術(shù)合并進(jìn)DirectX,真正內(nèi)幕不詳。不過(guò)以SGI在圖形處理界的老大地位來(lái)說(shuō),還是有幾分可信度的,因?yàn)镸icrosoft最初支持OpenGL 就不積極。



            由于要考慮到團(tuán)隊(duì)中大多數(shù)人的利益,由ARB架構(gòu)檢查委員會(huì)維護(hù)的OpenGL總是停滯不前,唯一的進(jìn)展僅是OpenGL擴(kuò)展指令的推出。這些擴(kuò)展指令是 一些繪圖功能,像是ClearCoat、Multisample、視頻及繪圖的整合工具(某些是通過(guò)OpenML的努力而開(kāi)發(fā)出來(lái)的,它本身屬于 OpenGL ARB擴(kuò)展指令之一)。這正好給也是ARB成員之一的Microsoft找到了借口,他抱怨ARB對(duì)市場(chǎng)的反映極為遲鈍,因而拋開(kāi)OpenGL,頃其所有 的開(kāi)發(fā)資源,獨(dú)自全力投入使DirectX成為高端繪圖、與游戲開(kāi)發(fā)API的工作上。

            D3D和OpenGL的互相滲透也早已初露端倪,你可以在市面上看到不少采用OpenGL的游戲如QuakeIII、重返德軍總部等等,也可以看到Direct 3D憑著自身的優(yōu)勢(shì),在3DS Max上漸漸超越OpenGL,關(guān)于這方面具體的介紹會(huì)在文章后面部分講到。

            OpenGL與DirectX代表著繪圖世界分裂的兩派。
            [它們?nèi)绾喂ぷ鳎縘

            前面我們已經(jīng)看到,由于種種原因,我們不得不接受兩個(gè)3D API的現(xiàn)實(shí)。雖然如此,顯卡對(duì)D3D和OpenGL的支持卻不是分裂的,聰明的硬件廠商有辦法讓它的顯示芯片很完美的同時(shí)提供對(duì)D3D和OpenGL的 硬件支持。說(shuō)到這里,我們不得不感謝nVIDIA,除了對(duì)D3D的支持,從它的Riva128芯片組開(kāi)始,nVIDIA就提供對(duì)OpenGL的極佳的支 持。現(xiàn)在,我們的主板上不必插上Direct3D和OpenGL兩塊顯卡,也不必不時(shí)把VGA接口從一塊顯卡換到另一塊顯卡,能夠避免這樣恐怖的情景,這 真是值得欣慰的。還記得嗎?Voodoo讓2D和Glide統(tǒng)一的方式是插兩塊顯卡再用一根信號(hào)連接線將它們連起來(lái)。

            游戲程序員們?cè)?jīng)對(duì)OpenGL的技術(shù)和畫(huà)質(zhì)推崇倍至,以至于微軟被迫在Windows系統(tǒng)中引入OpenGL,并且在Windows平臺(tái)上出現(xiàn)了 Quake II、QuakeIII、重返德軍總部等一批優(yōu)秀的基于OpenGL API的游戲,而同時(shí)期的D3D游戲沒(méi)有哪一款能在畫(huà)質(zhì)上超越這些OpenGL游戲的,一直到微軟發(fā)布DirectX 7,這種情況還是沒(méi)有發(fā)生多大的改變,DirectX只是作為一個(gè)能用于快速開(kāi)發(fā)游戲的API而存在著,但是當(dāng)微軟在2001年發(fā)布了DirectX 8以后,局面終于被扭轉(zhuǎn)了,DirectX 8是DirectX發(fā)展史上一個(gè)里程碑式的產(chǎn)品,它在2D、3D、視頻、音頻以及交互式輸入設(shè)備接口方面進(jìn)行了許多重要的改進(jìn),其中,在3D圖形處理方面 尤其做了劃時(shí)代的改進(jìn),可以說(shuō),作為一個(gè)游戲API,D3D 8已經(jīng)超越了OpenGL。出現(xiàn)這樣的情況決非偶然:OpenGL是由ARB這一官僚機(jī)構(gòu)管理的,官僚主義帶來(lái)的自然是OpenGL發(fā)展的停滯不前,以至 于在OpenGL 1.0推出后的相當(dāng)長(zhǎng)的一段時(shí)間里,OpenGL唯一做的只是增加了一些擴(kuò)展指令集,可笑的是最新的OpenGL 1.4中的一項(xiàng)Vertex編程框架技術(shù)還被同為ARB成員之一的微軟指控侵犯了DirectX 8的專利;而Direct3D這邊卻得到了微軟傾盡全力支持,技術(shù)更新極快。不超越OpenGL才怪呢。

            DirectX 7在處理3D的時(shí)候是遵循一種傳統(tǒng)的方式:

            CPU頂點(diǎn)數(shù)據(jù)---〉
            T&L引擎---〉裁減/三角形設(shè)置/光柵化---〉多紋理混合處理---〉霧混合---〉透明度/模板和深度測(cè)試---〉幀緩沖

            上面是傳統(tǒng)(如DirectX 7和OpenGL 1.2)3D圖形處理流水線的情況,雖然這種架構(gòu)在多年的實(shí)踐中被證明是一種高效率的3D圖形處理方式,在硬件上容易實(shí)現(xiàn),編程也相對(duì)簡(jiǎn)單。但是采用這種 方式,軟件開(kāi)發(fā)人員不可能干預(yù)3D圖形處理的過(guò)程,他們惟一要做的工作就是將硬件支持的各種效果事先規(guī)劃好,再送入3D流水線進(jìn)行處理。3D圖形處理器所 能完成的工作在硬件設(shè)計(jì)好以后就不能被改變了。可以說(shuō)這種結(jié)構(gòu)在很大程度上制約了軟件開(kāi)發(fā)者的想象力和創(chuàng)造力。而DirectX 8在傳統(tǒng)3D圖形處理流水線中的兩個(gè)地方進(jìn)行了改進(jìn),增加了“可編程”特性:

            CPU頂點(diǎn)數(shù)據(jù)---〉
            Vertex Shader、T&L引擎---〉裁減/三角形設(shè)置/光柵化---〉Pixel Shader、多紋理混合處理---〉霧混合---〉透明度/模板和深度測(cè)試---〉幀緩沖

            上面就是DirectX 8可編程3D圖形處理流水線的示意圖。與過(guò)去的處理方式相比,DirectX 8對(duì)兩個(gè)部分進(jìn)行了改進(jìn):一個(gè)可編程的Vertex Shader(頂點(diǎn)著色引擎)代替了過(guò)去的幾何變換和光源處理(T&L)引擎;而可編程的Pixel Shader(像素著色引擎)則加入了過(guò)去的紋理處理流水線。

            當(dāng)然未來(lái)的走向還有可能變化。采用像素著色與頂點(diǎn)著色的缺點(diǎn),在于并無(wú)標(biāo)準(zhǔn)的可編程能力供繪圖硬件之用,以至于DirectX 9未正式出現(xiàn)之前,兩大GPU制造商N(yùn)vidia與ATI在DirectX的運(yùn)用上已經(jīng)分道揚(yáng)鑣了,這可能會(huì)對(duì)Direct3D產(chǎn)生不利的局面。 OpenGL則不甘示弱,即將出臺(tái)的OpenGL 2.0會(huì)試圖將穩(wěn)定性及開(kāi)放標(biāo)準(zhǔn),帶至可編程繪圖及GPU上,很可能再次全面超越DirectX。一些人懷疑Microsoft聲稱擁有OpenGL 2.0部分功能專利權(quán),OpenGL 2.0將是OpenGL下一個(gè)重要修正版。

            毫無(wú)疑問(wèn),目前的市場(chǎng)上,娛樂(lè)級(jí)的3D顯卡競(jìng)爭(zhēng)是最激烈的,目前能夠完全硬件支持DirectX 8的顯卡主要有:nVIDIA的Geforce3以上、ATi的Radeon8500以上級(jí)別的顯卡以及SiS的Xabre、Matrox Parhelia-512等其它廠商的顯卡。而考慮到性價(jià)比等因素,只有nVIDIA、ATi兩大顯卡領(lǐng)域的領(lǐng)頭羊是最佳選擇。要想發(fā)揮nVIDIA、 ATi的3D性能,用好它們的驅(qū)動(dòng)程序也是極其重要的,關(guān)于nVIDIA、ATi驅(qū)動(dòng)程序版本及D3D、OpenGL支持情況、設(shè)置界面我們會(huì)在后面的應(yīng) 用篇講到。
            [細(xì)談D3D、OpenGL]

            如果你對(duì)各顯卡硬件廠商系列顯卡的發(fā)展史知之甚少,識(shí)別一塊顯卡對(duì)D3D和OpenGL的支持情況,最直接的方法就是看它的規(guī)格說(shuō)明。

            以這塊麗臺(tái)Quadro4 550 XGL專業(yè)顯卡為例:


            麗臺(tái)Quadro4 550 XGL

            隨卡的說(shuō)明書(shū)上標(biāo)明“麗臺(tái)Quadro4 550 XGL的產(chǎn)品特性:硬體疊覆平面、硬體防鋸齒線條、雙面投影、全景防鋸齒、第二代閉塞選擇、第二代光速記憶體架構(gòu)、單一顯示器支援 2048x1536、第二代nfiniteFX引擎、硬體支援Microsoft? DirectX? 8 和 OpenGL? 1.3。”很清楚,這是一塊硬件支持DirectX 8和OpenGL 1.3的Quadro4核心的顯卡,千萬(wàn)不要被JS的花言巧語(yǔ)蒙騙了。

            讓我們先選擇一款現(xiàn)在最流行的《魔獸爭(zhēng)霸III》游戲來(lái)試試D3D和OpenGL吧。《魔獸爭(zhēng)霸III》是今年剛推出的全3D的游戲,《魔獸爭(zhēng)霸III》 默認(rèn)啟動(dòng)DX8.1的D3D模式,但還有一種模式就是OpenGL的3D模式, 并不是暴雪公司不愿意設(shè)它為主要模式,而是OpenGL是屬于專業(yè)三維,有一部分游戲顯卡還不支持或不完全支持這個(gè)功能。要想打開(kāi)OpenGL模式,我們 需要編輯一下《魔獸爭(zhēng)霸III》的快捷方式,在exe文件后面加上-opengl參數(shù),再運(yùn)行快捷方式進(jìn)入游戲即可。要想返回D3D模式,也只要把- opengl參數(shù)去掉即可。


            D3D截圖


            OpenGL截圖

            OpenGL模式與D3D模式相比,唯一比較明顯的就是字體變得有些模糊。


            D3D截圖


            OpenGL截圖

            從游戲截圖中我們可以看到D3D和OpenGL模式下,游戲畫(huà)面幾乎沒(méi)有任何區(qū)別。設(shè)計(jì)兩個(gè)API的作用在于,在你的顯卡運(yùn)行某個(gè)API出現(xiàn)貼圖錯(cuò)誤或者 或者運(yùn)行速度跟不上時(shí)可以試著切換另一個(gè)API來(lái)糾正,據(jù)說(shuō)在OpenGL運(yùn)行《魔獸爭(zhēng)霸III》并在控制面板中啟用OpenGL的"MIP線性過(guò)濾功能 "(MIP就是快速線性圖像處理)可以提升游戲速度10%。
            [再聊專業(yè)應(yīng)用]

            再來(lái)看看D3D和OpenGL在3DS MAX 5.0中的表現(xiàn)(使用顯卡:Geforce3 Ti500)。

            3D Studio MAX 5.0是Discreet公司今年6月份發(fā)布的最新三維動(dòng)畫(huà)創(chuàng)作軟件。3DS MAX在全球有數(shù)以百萬(wàn)計(jì)的使用者,超過(guò)了其它幾種主要3D動(dòng)畫(huà)軟件的用戶總數(shù)。同時(shí),3DS MAX也是在專業(yè)軟件中為用戶考慮最多的軟件之一,在它支持的圖形標(biāo)準(zhǔn)上就可以看出這一點(diǎn)。3DS MAX共支持4種3D顯示接口,分別是Heidi、OpenGL、Direct3D和 Custom。其中Heidi是由AutoDesk公司自己開(kāi)發(fā)的3D API,缺省情況下采用軟件方式進(jìn)行3D模型的顯示,雖然能夠顯示的效果有限,不過(guò)由于Heidi的效率出奇的高,因此它對(duì)于顯卡硬件功能和性能較弱的用 戶來(lái)說(shuō)還是不錯(cuò)的。OpenGL是目前主流的3D API,3DS MAX毫無(wú)保留的對(duì)此提供了支持。OpenGL效率很高,它可以很好的利用硬件性能(包括硬件T&L)來(lái)加速模型的顯示。在DirectX 8未推出以前,OpenGL也是能夠顯示最多效果的3D API。在3DS MAX中,Direct3D過(guò)去主要是為了使不支持OpenGL的低端顯卡能夠用來(lái)對(duì)動(dòng)畫(huà)制作進(jìn)行加速。不過(guò),由于過(guò)去Direct3D的效率不高,功能 有限,而且采用這種方案的用戶也不多,因此長(zhǎng)期以來(lái)沒(méi)有得到足夠的重視。直到支持DirectX 8的3DS MAX 4和Geforce3顯卡的推出,才使這種情況發(fā)生了極大的變化。和之前的4.X系列不同的是,MAX 5.0已經(jīng)把一些基本的硬件Vertex、Pixel Shader Plug-in默認(rèn)地加載了,當(dāng)采用Direct 3D驅(qū)動(dòng)模式的時(shí)候,我們就能應(yīng)用上硬件Shader帶來(lái)的好處了。在3D Studio MAX 5.0目錄的scenes、Version5Features、DirectXFeatures文件夾下有兩個(gè)應(yīng)用了DirectX 8特性的模型,它們利用了Pixel Shader的貼圖,表現(xiàn)出了極其逼真的環(huán)境反射效果等(詳見(jiàn)下圖)。這樣的實(shí)時(shí)渲染效果已經(jīng)極其接近于最終的渲染效果,這是目前的標(biāo)準(zhǔn)OpenGL接口 所做不到的。

            如果你使用的是nVIDIA Quadro系列的顯卡,也可以考慮用基于OpenGL的專業(yè)的MAXtreme來(lái)代替標(biāo)準(zhǔn)的OpenGL接口,與3DS MAX提供的標(biāo)準(zhǔn)OpenGL接口相比,MAXtreme能夠提供更多的效果和更好的性能,如高質(zhì)量透明度、真實(shí)感覺(jué)的霧化效果、各種紋理過(guò)濾方式等。另 外,MAXtreme對(duì)于顯示的加速作用是十分明顯的,在MAXtreme中打開(kāi)Triangle Strip選項(xiàng)可以使復(fù)雜線框模式下顯示性能提高50%以上。



            3DS MAX共支持4種3D顯示接口,支持DirectX 8.1(配合Geforce3以上顯卡)




            3DS MAX 5.0的D3D和OpenGL設(shè)置窗口









            biplane.max模型的DirectX 8和標(biāo)準(zhǔn)OpenGL的實(shí)時(shí)顯示效果



            TigerTank.max模型的DirectX 8實(shí)時(shí)顯示效果



            TigerTank.max模型的標(biāo)準(zhǔn)OpenGL實(shí)時(shí)顯示效果

            關(guān)于OpenGL和D3D的設(shè)置后的效果比較以及產(chǎn)生畫(huà)質(zhì)差異的原理分析:兩大API各有自己的特性,有相同又有不同之處,就好像子集與交集。比如 OpenGL 1.4的新功能包括深度紋理和陰影紋理,可以支持實(shí)時(shí)引擎和相關(guān)圖象渲染技術(shù),一個(gè)Vertex編程框架,支持用戶定義幾何,光照和陰影程序的階段設(shè)置, 支持高級(jí)一般應(yīng)用Shading語(yǔ)言,支持自動(dòng)紋理mipmap生成,同樣的增強(qiáng)功能還包括多繪圖陣列,Windows光柵定位,用戶定義霧表坐標(biāo)軸和第 二個(gè)顏色,點(diǎn)參數(shù),LOD等等功能,而DirectX 8.1也包括Vertex編程。有興趣詳細(xì)比較的朋友可以訪問(wèn)以下鏈接:

            http://www.opengl.org/developers/documentation/OpenGL14.html

            http://msdn.microsoft.com/library/default.asp?url=/nhp/Default.asp?contentid=28000410

            目前的兩大主力娛樂(lè)級(jí)顯卡廠商:nVIDIA的顯示卡對(duì)兩大API的兼容性都極佳,由于對(duì)OpenGL的支持過(guò)于優(yōu)秀,nVIDIA甚至早就開(kāi)始打入了專業(yè)顯卡領(lǐng)域。ATi在收購(gòu)了FireGL以后也開(kāi)始涉足專業(yè)顯卡。

            從Geforce256開(kāi)始,nVIDIA每推出一款圖形芯片,都會(huì)針對(duì)主流市場(chǎng)和專業(yè)市場(chǎng)推出不同的產(chǎn)品: Geforce256/Geforce2/Geforce2 MX/Geforce2 Pro/Geforce3對(duì)應(yīng)Quadro/Quadro2/Quadro2 MXR/Quadro2 Pro/Quadro DCC。以前nVIDIA的Quadro系列產(chǎn)品都是由德國(guó)的ELSA公司獨(dú)家推出的。包括象ELSA Gloria DCC(NV20 Quadro DCC)、ELSA Gloria4(NV25)等產(chǎn)品。Geforce與Quadro和核心十分相近,一些硬件發(fā)燒友成功的將普通的Geforce顯卡修改為昂貴的 Quadro專業(yè)顯卡。
            但這并不意味著現(xiàn)在的專業(yè)三維圖形卡與娛樂(lè)級(jí)顯卡差別不大,它們還是有很大的區(qū)別的。

            專業(yè)顯卡需要的不僅僅是貼圖和渲染速度,作為專業(yè)級(jí)的顯卡,它必須具備如下幾個(gè)特點(diǎn):1、單位時(shí)間內(nèi)處理三角形的能力要高;2、完善支持OpenGL; 3、具備極高的穩(wěn)定性和兼容性;4、3D處理流程的全硬件化;5、顯寸盡可能大;6、價(jià)格較昂貴。在執(zhí)行工業(yè)級(jí)應(yīng)用程序時(shí),設(shè)計(jì)人員絕對(duì)無(wú)法忍受任何不穩(wěn) 定、缺乏效率的繪圖系統(tǒng),在圖像準(zhǔn)確度與品質(zhì)上也毫不妥協(xié)。專業(yè)圖形加速卡的賣點(diǎn)恰恰不在于多邊形產(chǎn)生速度或像素填圖率等指標(biāo)上,而是在調(diào)整驅(qū)動(dòng)程序以及 提供繪圖的精確性方面。這也是為什么專業(yè)圖形卡,特別是高端圖形卡價(jià)位高得離譜的最主要原因。高檔專業(yè)顯卡的驅(qū)動(dòng)程序往往都帶有對(duì)所有OpenGL函數(shù)提 供完善支持的OpenGL客戶端驅(qū)動(dòng)程序(ICD),這些優(yōu)化程序使用其專業(yè)的接口,通過(guò)與專業(yè)軟件的“無(wú)縫”結(jié)合,對(duì)提高機(jī)械CAD、建筑、動(dòng)畫(huà)、模擬 等領(lǐng)域的工程師們的工作效率可以起到非常大的幫助。

            目前的專業(yè)顯卡市場(chǎng)上:3Dlabs WildCat系列、ATi FireGL4牢牢占領(lǐng)了高端圖形卡市場(chǎng);Elsa Gloria系列、ATi FireGL2在中端市場(chǎng)上占半壁江山(包括最新的Quadro4、Radeon 8800、FireGL X1);Elsa的Synergy系列以超低價(jià)格搶占了低端市場(chǎng),與3Dlabs Oxygen VX1/GVX1打得不亦樂(lè)乎。

            根據(jù)以上我們對(duì)各種3D API的了解,我們?cè)谶M(jìn)行電腦硬件系統(tǒng)配置時(shí)應(yīng)該從應(yīng)用重點(diǎn)出發(fā)選擇顯示卡。如果我們的電腦在PⅡ 233以上機(jī)型,平時(shí)又主要用于一般文字處理和游戲,或者也業(yè)余搞些3D圖形制作等,那么可以選擇支持Direct 3D和OpenGL兩種3D API的AGP顯示卡;如果你的電腦準(zhǔn)備用于專業(yè)性的3D圖形制作,那你必須考慮選擇除了支持D3D和OpenGL外還支持MAXtreme、HeiDi 的專業(yè)圖形卡了。從實(shí)際應(yīng)用情況看,對(duì)于大部分電腦業(yè)余愛(ài)好者只要選擇能支持最常用的DirectX(Direct 3D)和OpenGL的3D顯示卡就可以了。另外,我們?cè)谶x擇3D顯示卡時(shí),要注意對(duì)比新產(chǎn)品廣告宣傳中所列舉的支持不同的3D API時(shí)的測(cè)試數(shù)據(jù),同時(shí)注意所能支持的3D API類型和數(shù)量,具體到Direct 3D測(cè)試數(shù)據(jù)時(shí)還可以注意它究竟能支持多少項(xiàng)(D3D可以支持12種以上3D圖形處理效果)D3D的功能。

            當(dāng)你看到一個(gè)陌生的3D游戲畫(huà)面時(shí),你能立刻看出它是基于D3D還是OpenGL的嗎?或許John Carmack可以,但我想我們大多數(shù)人都不能。我們需要知道的是我的應(yīng)用程序需要哪種3D API才能運(yùn)行得更有效率,哪種3D API可以讓我的游戲跑得更快更靚。

            posted on 2006-01-06 22:32 苦行僧 閱讀(3852) 評(píng)論(1)  編輯 收藏 引用 所屬分類: 轉(zhuǎn)載

            Feedback

            # re: 圖形世界分裂的兩派——理清D3D和OpenGL的脈絡(luò)(上) 2006-04-10 21:22 microsoftxiao
            你好,我想文下在游戲中使用.x .3ds .max文件也可以實(shí)時(shí)渲染嗎?  回復(fù)  更多評(píng)論
              

            亚洲精品无码久久久久AV麻豆| 爱做久久久久久| 久久精品中文无码资源站| 亚洲中文字幕无码久久2017| 久久精品中文闷骚内射| 成人a毛片久久免费播放| 欧洲性大片xxxxx久久久| 精品久久亚洲中文无码| 国产精品久久99| 伊人久久大香线蕉av不卡 | 国产高潮国产高潮久久久91| 九九热久久免费视频| 久久国产劲爆AV内射—百度| 欧美精品一本久久男人的天堂| 久久夜色精品国产www| 欧美黑人激情性久久| 国内精品伊人久久久久影院对白 | 亚洲精品高清国产一久久| 伊人色综合九久久天天蜜桃| 9久久9久久精品| 久久综合亚洲鲁鲁五月天| 久久精品一区二区国产| 中文字幕久久亚洲一区| 国产成人精品久久一区二区三区av| 亚洲精品乱码久久久久久按摩| 蜜臀久久99精品久久久久久| 久久最新精品国产| 国产精品美女久久久久网| 久久综合香蕉国产蜜臀AV| 久久精品一本到99热免费| 99久久国产热无码精品免费久久久久| 漂亮人妻被黑人久久精品| 中文国产成人精品久久不卡| 久久中文字幕人妻熟av女| 久久久精品久久久久久| 久久激情亚洲精品无码?V| 久久本道伊人久久| 99久久精品国产毛片| 国产成人无码精品久久久久免费| 99久久精品国产高清一区二区| av午夜福利一片免费看久久|