3DS Max在OpenGL與Driect3D環(huán)境下哪個(gè)性能更高?
Open GL與Driect 3D的區(qū)別
1:Direct X 微軟公司專(zhuān)為PC游戲開(kāi)發(fā)的API,優(yōu)點(diǎn):與windows 95和Win-dows NT操作系統(tǒng)兼容性好??衫@過(guò)GDI直接進(jìn)行支持該API的各種硬件的底層操作,提高了游戲的運(yùn)行速度。弱點(diǎn):Direct- X在3D圖形方面的效率比較低。
DirectX并不是一個(gè)單純的圖形API,它是由微軟公司開(kāi)發(fā)的用途廣泛的API,它包含有Direct Graphics(Direct 3D+Direct Draw)、Direct Input、Direct Play、Direct Sound、Direct Show、Direct Setup、Direct Media Objects等多個(gè)組件,它提供了一整套的多媒體接口方案。只是其在3D圖形方面的優(yōu)秀表現(xiàn),讓它的其它方面顯得暗淡無(wú)光。DirectX開(kāi)發(fā)之初是為了彌補(bǔ)Windows 3.1系統(tǒng)對(duì)圖形、聲音處理能力的不足,而今已發(fā)展成為對(duì)整個(gè)多媒體系統(tǒng)的各個(gè)方面都有決定性影響的接口。
DirectX 1.0
第一代的DirectX很不成功,推出時(shí)眾多的硬件均不支持,當(dāng)時(shí)基本都采用專(zhuān)業(yè)圖形API-OpenGL,缺乏硬件的支持成了其流行的最大障礙。
DirectX 1.0版本是第一個(gè)可以直接對(duì)硬件信息進(jìn)行讀取的程序。它提供了更為直接的讀取圖形硬件的性能(比如:顯示卡上的塊移動(dòng)功能)以及基本的聲音和輸入設(shè)備功能(函數(shù)),使開(kāi)發(fā)的游戲能實(shí)現(xiàn)對(duì)二維(2D)圖像進(jìn)行加速。這時(shí)候的DirectX不包括現(xiàn)在所有的3D功能,還處于一個(gè)初級(jí)階段。
DirectX 2.0
DirectX 2.0在二維圖形方面做了些改進(jìn),增加了一些動(dòng)態(tài)效果,采用了Direct 3D的技術(shù)。這樣DirectX 2.0與DirectX 1.0有了相當(dāng)大的不同。在DirectX 2.0中,采用了“平滑模擬和RGB模擬”兩種模擬方式對(duì)三維(3D)圖像進(jìn)行加速計(jì)算的。DirectX 2.0同時(shí)也采用了更加友好的用戶(hù)設(shè)置程序并更正了應(yīng)用程序接口的許多問(wèn)題。從DirectX 2.0開(kāi)始,整個(gè)DirectX的設(shè)計(jì)架構(gòu)雛形就已基本完成。
DirectX 3.0
DirectX 3.0的推出是在1997年最后一個(gè)版本的Windows95發(fā)布后不久,此時(shí)3D游戲開(kāi)始深入人心,DirectX也逐漸得到軟硬件廠(chǎng)商的認(rèn)可。97年時(shí)應(yīng)用程序接口標(biāo)準(zhǔn)共有三個(gè),分別是專(zhuān)業(yè)的OpenGL接口,微軟的DirectX D接口和3DFX公司的Glide接口。而那時(shí)的3DFX公司是最為強(qiáng)大的顯卡制造商,它的Glide接口自然也受到最廣泛的應(yīng)用,但隨著3DFX公司的沒(méi)落,Voodoo顯卡的衰敗,Glide接口才逐漸消失了。
DirectX 3.0是DirectX 2.0的簡(jiǎn)單升級(jí)版,它對(duì)DirectX 2.0的改動(dòng)并不多。包括對(duì)DirectSound(針對(duì)3D聲音功能)和DirectPlay(針對(duì)游戲/網(wǎng)絡(luò))的一些修改和升級(jí)。DirectX 3.0集成了較簡(jiǎn)單的3D效果,還不是很成熟。
DirectX 5.0
微軟公司并沒(méi)有推出DirectX 4.0,而是直接推出了DirectX 5.0。此版本對(duì)Direct3D做出了很大的改動(dòng),加入了霧化效果、Alpha混合等3D特效,使3D游戲中的空間感和真實(shí)感得以增強(qiáng),還加入了S3的紋理壓縮技術(shù)。
同時(shí),DirectX 5.0在其它各組件方面也有加強(qiáng),在聲卡、游戲控制器方面均做了改進(jìn),支持了更多的設(shè)備。因此,DirectX發(fā)展到DirectX 5.0才真正走向了成熟。此時(shí)的DirectX性能完全不遜色于其它3D API,而且大有后來(lái)居上之勢(shì)。
DirectX 6.0
DirectX 6.0推出時(shí),其最大的競(jìng)爭(zhēng)對(duì)手之一Glide,已逐步走向了沒(méi)落,而DirectX則得到了大多數(shù)廠(chǎng)商的認(rèn)可。DirectX 6.0中加入了雙線(xiàn)性過(guò)濾、三線(xiàn)性過(guò)濾等優(yōu)化3D圖像質(zhì)量的技術(shù),游戲中的3D技術(shù)逐漸走入成熟階段。
DirectX 7.0
DirectX 7.0最大的特色就是支持T&L,中文名稱(chēng)是“坐標(biāo)轉(zhuǎn)換和光源”。3D游戲中的任何一個(gè)物體都有一個(gè)坐標(biāo),當(dāng)此物體運(yùn)動(dòng)時(shí),它的坐標(biāo)發(fā)生變化,這指的就是坐標(biāo)轉(zhuǎn)換;3D游戲中除了場(chǎng)景+物體還需要燈光,沒(méi)有燈光就沒(méi)有3D物體的表現(xiàn),無(wú)論是實(shí)時(shí)3D游戲還是3D影像渲染,加上燈光的3D渲染是最消耗資源的。雖然OpenGL中已有相關(guān)技術(shù),但此前從未在民用級(jí)硬件中出現(xiàn)。
在T&L問(wèn)世之前,位置轉(zhuǎn)換和燈光都需要CPU來(lái)計(jì)算,CPU速度越快,游戲表現(xiàn)越流暢。使用了T&L功能后,這兩種效果的計(jì)算用顯示卡的GPU來(lái)計(jì)算,這樣就可以把CPU從繁忙的勞動(dòng)中解脫出來(lái)。換句話(huà)說(shuō),擁有T&L顯示卡,使用DirectX 7.0,即使沒(méi)有高速的CPU,同樣能流暢的跑3D游戲。
DirectX 8.0
DirectX 8.0的推出引發(fā)了一場(chǎng)顯卡革命,它首次引入了“像素渲染”概念,同時(shí)具備像素渲染引擎(Pixel Shader)與頂點(diǎn)渲染引擎(Vertex Shader),反映在特效上就是動(dòng)態(tài)光影效果。同硬件T&L僅僅實(shí)現(xiàn)的固定光影轉(zhuǎn)換相比,VS和PS單元的靈活性更大,它使GPU真正成為了可編程的處理器。這意味著程序員可通過(guò)它們實(shí)現(xiàn)3D場(chǎng)景構(gòu)建的難度大大降低。通過(guò)VS和PS的渲染,可以很容易的寧造出真實(shí)的水面動(dòng)態(tài)波紋光影效果。此時(shí)DirectX的權(quán)威地位終于建成。
DirectX 9.0
2002年底,微軟發(fā)布DirectX9.0。DirectX 9中PS單元的渲染精度已達(dá)到浮點(diǎn)精度,傳統(tǒng)的硬件T&L單元也被取消。全新的VertexShader(頂點(diǎn)著色引擎)編程將比以前復(fù)雜得多,新的VertexShader標(biāo)準(zhǔn)增加了流程控制,更多的常量,每個(gè)程序的著色指令增加到了1024條。
2:OPENGL(開(kāi)放式圖形界面) 由Silicon Graphics公司開(kāi)發(fā),能夠在 Windows95-.WindowsNT.Macos.Beos.Os/2.以及Unix上應(yīng)用的API。程序員可用這個(gè)接口程序來(lái)直接訪(fǎng)問(wèn)圖形處理的硬件設(shè)備,產(chǎn)生高品質(zhì)的3D效果。提供豐富的圖形運(yùn)算與處理功能。因此3D圖形功能很強(qiáng),遠(yuǎn)出色于Direct X,主要用于圖形開(kāi)發(fā)工作站。
OpenGL是OpenGraphicsLib的縮寫(xiě),是一套三維圖形處理庫(kù),也是該領(lǐng)域的工業(yè)標(biāo)準(zhǔn)。計(jì)算機(jī)三維圖形是指將用數(shù)據(jù)描述的三維空間通過(guò)計(jì)算轉(zhuǎn)換成二維圖像并顯示或打印出來(lái)的技術(shù)。
OpenGL就是支持這種轉(zhuǎn)換的程序庫(kù),它源于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)公布,各軟硬件廠(chǎng)商據(jù)此開(kāi)發(fā)自己系統(tǒng)上的實(shí)現(xiàn)。只有通過(guò)了ARB規(guī)范全部測(cè)試的實(shí)現(xiàn)才能稱(chēng)為OpenGL。1995年12月ARB批準(zhǔn)了1.1版本,最新版規(guī)范是1999.5通過(guò)的1.2.1。
OpenGL被設(shè)計(jì)成獨(dú)立于硬件,獨(dú)立于窗口系統(tǒng)的,在運(yùn)行各種操作系統(tǒng)的各種計(jì)算機(jī)上都可用,并能在網(wǎng)絡(luò)環(huán)境下以客戶(hù)/服務(wù)器模式工作,是專(zhuān)業(yè)圖形處理、科學(xué)計(jì)算等高端應(yīng)用領(lǐng)域的標(biāo)準(zhǔn)圖形庫(kù)。它低端應(yīng)用上的主要競(jìng)爭(zhēng)對(duì)手是MS-Direct3D,該圖形庫(kù)是以COM接口形式提供的,所以極為較復(fù)雜,穩(wěn)定性差,另外微軟公司擁有該庫(kù)版權(quán),目前只在Windows平臺(tái)上可用。D3D的優(yōu)勢(shì)在速度上,但現(xiàn)在低價(jià)顯卡都能提供很好的OpenGL硬件加速,所以做3D使用Direct3D已沒(méi)有特別的必要,在專(zhuān)業(yè)圖形處理特別是高端應(yīng)用方面目前還沒(méi)有出現(xiàn)以Direct3D技術(shù)為基礎(chǔ)的例子,而游戲等低端應(yīng)用也有轉(zhuǎn)向OpenGL的趨勢(shì)。
3DS Max 中OpenGL與Driect3D 渲染
1:Direct3D 基于顯示光柵加速引擎非常強(qiáng)大和復(fù)雜,它在顯示滿(mǎn)屏狀態(tài),提供多邊形計(jì)算、貼圖場(chǎng)景等優(yōu)化能力。由于其只能在滿(mǎn)屏提供優(yōu)化能力,所以在3DS MAX中你只能在最大化顯示視角時(shí)(如最大化顯示TOP、RIGHT、LEFT和PERSPECTIVE視角),才能獲得加速能力。由于Direct 3D對(duì)3DS MAX支持目前仍然不足,顯示速度雖然快,但在3DS MAX并不適用。
2:3DS MAX使用完整的OpenGL內(nèi)部函數(shù),包括幾何轉(zhuǎn)化、燈光、貼圖、數(shù)據(jù)剪切、場(chǎng)景重繪。3DS MAX使用完整的硬件光柵加速,OpenGL ICD,優(yōu)良的幾何硬件加速引擎。
因此,在3DS MAX ,使用OpenGL 渲染比 使用 Driect3D 能獲得更為強(qiáng)勁的視角效果。