Java3D與其他三維技術(shù)的比較
JAVA3D可應(yīng)用在三維動(dòng)畫、三維游戲、機(jī)械CAD等多個(gè)領(lǐng)域。但作為三維顯示實(shí)現(xiàn)技術(shù),它并不是唯一選擇而且是一個(gè)新面孔。在Java3D之前已經(jīng)存在很多三維技術(shù),這些三維技術(shù)在實(shí)現(xiàn)的技術(shù)、使用的語(yǔ)言以及適用的情況上各有不同,我們主要介紹與Java3D又密切關(guān)系的三種技術(shù):OpenGL、DIRECT3D、VRML
OpenGL是業(yè)界最為流行也是支持最廣泛的一個(gè)底層3D技術(shù),幾乎所有的顯卡廠商都在底層實(shí)現(xiàn)了對(duì)OpenGL的支持和優(yōu)化。OpenGL同時(shí)也定義了一系列接口用于編程實(shí)現(xiàn)三維應(yīng)用程序,但是這些接口使用C(C++)語(yǔ)言實(shí)現(xiàn)并且很復(fù)雜。掌握針對(duì)OpenGL的編程技術(shù)需要花費(fèi)大量時(shí)間精力。
DIRECT3D是Microsoft公司推出的三維圖形編程API,它主要應(yīng)用于三維游戲的編程。眾多優(yōu)秀的三維游戲都是由這個(gè)接口實(shí)現(xiàn)。與OpenGL一樣,Direct3D的實(shí)現(xiàn)主要使用C++語(yǔ)言。
VRML2.0(VRML97)自1997年12月正式成為國(guó)際標(biāo)準(zhǔn)之后,在網(wǎng)絡(luò)上得到了廣泛的應(yīng)用,這是一種比BASIC、JAVASCRIPT等還要簡(jiǎn)單的語(yǔ)言。腳本化的語(yǔ)句可以編寫三維動(dòng)畫片、三維游戲、計(jì)算機(jī)三維輔助教學(xué)。它最大的優(yōu)勢(shì)在于可以嵌在網(wǎng)頁(yè)中顯示,但這種簡(jiǎn)單的語(yǔ)言功能較弱(如目前沒(méi)有形體之間的碰撞檢查功能),與JAVA語(yǔ)言等其它高級(jí)語(yǔ)言的連接較難掌握,因而逐漸被淹沒(méi)在競(jìng)爭(zhēng)激烈的網(wǎng)絡(luò)三維技術(shù)中。
表1是Java3D與其它三維技術(shù)的比較圖,可以從中直觀的看出他們相互間的區(qū)別:
技術(shù) |
實(shí)現(xiàn)層次 |
開(kāi)發(fā)技術(shù)(難度) |
擴(kuò)展性 |
最適合應(yīng)用領(lǐng)域 |
Java3D |
中層(JVM) |
Java(較易) |
J2SE標(biāo)準(zhǔn)擴(kuò)展(好) |
網(wǎng)上三維顯示實(shí)現(xiàn)… |
OpenGL |
底層(顯卡) |
C\C++(難) |
各大廠商支持(較好) |
三維設(shè)計(jì)軟件… |
Direct3D |
底層(操作系統(tǒng)) |
C++(較難) |
Windows平臺(tái)(差) |
三維游戲… |
VRML |
上層(網(wǎng)頁(yè)) |
標(biāo)記語(yǔ)言(容易) |
安裝插件支持(一般) |
網(wǎng)上虛擬現(xiàn)實(shí)… |
表1:3D技術(shù)對(duì)招表