一、JAVA3D的優(yōu)勢(shì):
作為一名3D圖形學(xué)習(xí)者,無論是游戲開發(fā)、科學(xué)計(jì)算,還是生物技術(shù),還是虛擬現(xiàn)實(shí)(Virtual Reality)、仿真技術(shù),Java 3D都是很優(yōu)秀的選擇。理由如下:
1)基于Java技術(shù),秉承了Java的一切優(yōu)點(diǎn),具有優(yōu)秀的、豐富的UI(Swing、AWT)和Web發(fā)布能力(通過Java Plug-In)。
2)作為第四代3D圖形API,Java 3D簡(jiǎn)單易用,不需要多深厚的計(jì)算機(jī)
(http://java.sun.com/products/java-media/3D/collateral/wp_mktg/wp_mktg.html )圖形學(xué)功底和學(xué)習(xí)曲線,開發(fā)者便能開發(fā)出很專業(yè)的動(dòng)畫、仿真和交互。不過我這個(gè)學(xué)期剛剛學(xué)了圖形學(xué)的課,哈哈。
因?yàn)樗梃b了VRML的思想,所以學(xué)起來很輕松(熟悉VRML的開發(fā)者,如對(duì)Java還熟悉的,則會(huì)發(fā)現(xiàn)Java 3D的思想和VRML很相近)。現(xiàn)在正學(xué)習(xí)虛擬現(xiàn)實(shí)課那,在圖書館借了本《VRML程序員使用例庫(kù)》(VRML PROGRAMMER‘S LIBRARY )一書作者:[美]Kris Jamsa Phil Schmauder Nelson Yee著
董銘 周玉譯 電子工業(yè)出版社 與本書配套的還有一張光盤,不知道圖書館里有沒有那,我借這本書的時(shí)候?qū)W校正趕放五一假,等五一過后我去圖書館里看看,能借到光盤最好了,呵呵

!!
3)功能強(qiáng)大,高層次開發(fā)。因?yàn)镴ava 3D在底層借助于Open/GL、DirectX的強(qiáng)有力支持;在高層,開發(fā)者不再需要負(fù)責(zé)對(duì)象渲染、碰撞檢查的編程任務(wù),所以很不錯(cuò)。最新版本為1.3.1 Beta。(http://java.sun.com/products/java-media/3D/ )
4) 基于場(chǎng)景圖結(jié)構(gòu)(Scene Graph Structure)。這種層次結(jié)構(gòu),無論是描述現(xiàn)實(shí)中的對(duì)象,還是計(jì)算機(jī)實(shí)現(xiàn)都栩栩如生。她(Java 3D)在這兩者之間幾乎達(dá)到了極致。Java思想的簡(jiǎn)單也正體現(xiàn)在此。善于將復(fù)雜問題簡(jiǎn)單化,比較人性化。
5)學(xué)習(xí)資源豐富。大部分都是E的。
由于本人剛開始接觸Java 3D。這方面的中文資料還是比較少的,所以只能看英文了,幸好英文資料有很多。中文也有一些。
二、OPENGL、VRML、DIRECT3D、JAVA3D的比較
由于OPENGL的跨平臺(tái)特性,許多人利用OPENGL編寫三維應(yīng)用程序,
不過對(duì)于一個(gè)非計(jì)算專業(yè)的人員來說,利用OPENGL編寫出復(fù)雜的三維應(yīng)
用程序是比較困難的,且不說C(C++)語言的掌握需要花費(fèi)大量時(shí)間精
力,當(dāng)我們需要處理復(fù)雜問題的時(shí)候,我們不得不自己完成大量非常繁
瑣的工作。當(dāng)然,對(duì)于編程高手來說,OPENGL是他們發(fā)揮才能的
非常好的工具。
VRML2.0(VRML97)自1997年12月正式成為國(guó)際標(biāo)準(zhǔn)之后,在網(wǎng)絡(luò)上得
到了廣泛的應(yīng)用,編寫VRML程序非常方法(VRML語言可以說比BASIC、JAVASCRIPT等語言還要簡(jiǎn)單),同時(shí)可以編寫三維動(dòng)畫片、三維游戲、 用于計(jì)算機(jī)輔助教學(xué),因而其應(yīng)用前景非常廣闊尤其適合在中國(guó)推廣應(yīng)用。不過由于VRML語言功能目前還不是很強(qiáng)(雖然目前可以處理形體之間的碰撞檢查功能,但是碰撞檢測(cè)要花費(fèi)大量的處理時(shí)間有關(guān)VRML處理碰撞檢測(cè)的技術(shù)大家可以看以下地址上的一篇文章(虛擬城市的開發(fā)技術(shù)探討_計(jì)算機(jī)論文):
http://www.n318.com/zonghe/lunwen/jisuanji/jisuanji/200605/280079.html),與JAVA語言等其它高級(jí)語言的連接較難掌握,因而失去了一些計(jì)算機(jī)高手的寵愛。但我們認(rèn)為,我們可以讓大學(xué)里的文理科學(xué)生利用VRML編寫多媒體應(yīng)用程序,讓學(xué)生很快地對(duì)編寫程序感興趣,從而使國(guó)內(nèi)的計(jì)算機(jī)水平得到提高。
DIRECT3D是Microsoft公司推出的三維圖形編程API,它主要應(yīng)用于三 維游戲的編程,目前相關(guān)的學(xué)習(xí)資料難于獲得,由于它一般需要VC等編程工具進(jìn)行編程,需要編程人員具有較高的C++等高級(jí)語言的編程功底,因而難以普及。
JAVA3D是建立在JAVA2(JAVA1.5)基礎(chǔ)之上的,JAVA語言的簡(jiǎn)單性 使JAVA3D的推廣有了可能。OPENGL和JAVA3D之間的比較可以看成匯編語言 與C語言之間的比較,一個(gè)是低級(jí)的,一個(gè)是高級(jí)的(也許這樣比較不太恰當(dāng))。JAVA3D給我們編寫三維應(yīng)用程序提供了一個(gè)非常完善的API,它可以幫助我們:
生成簡(jiǎn)單或復(fù)雜的形體(也可以直接調(diào)用現(xiàn)有的三維形體)
使形體具有顏色、透明效果、貼圖。
可以在三維環(huán)境中生成燈光、移動(dòng)燈光。
可以具有行為(Behavior)的處理判斷能力 (鍵盤、鼠標(biāo)、定時(shí)等)
可以生成霧、背景、聲音等。
可以使形體變形、移動(dòng)、生成三維動(dòng)畫。
可以編寫非常復(fù)雜的應(yīng)用程序,用于各種領(lǐng)域如VR。
###################### 參考書推薦 ############################### #######################
1、書名: VRML2.0交互式三維圖形編程 由汕頭大學(xué)出版社出版 張杰編著
特殊購(gòu)書方式:
1。)作者售書 、網(wǎng)上訂購(gòu)(email address: jzhang@mailserv.stu.edu.cn)
2。)可以先獲書,后匯款(不滿意可退書),
只需將通信地址及郵編告知作者,即可在最短的時(shí)間內(nèi)得到書。
3。)書價(jià)為25元/本,免收郵購(gòu)費(fèi)用
4。)書為16開本,正文161頁(yè)。
2.Java 3D編程實(shí)踐—網(wǎng)絡(luò)上的三維動(dòng)畫。都志輝主編 清華大學(xué)出版社
http://www.china-pub.com/computers/common/info.asp?id=8265
不過這本書好像是不出版了,比較難買,有需要看的朋友網(wǎng)上有本電子書(pdg格式的)。
Java 3D 編程實(shí)踐:網(wǎng)絡(luò)上的三維動(dòng)畫 電子書 下載
Java 3D 編程實(shí)踐:網(wǎng)絡(luò)上的三維動(dòng)畫下載地址:
http://www.51dir.com/96193017746
如果你的機(jī)器上已經(jīng)安裝了超星瀏覽器的話,請(qǐng)卸載掉然后再重新安裝一次就能正常使用該書了。
3.JAVA 3D 交互式三維圖形編程 張杰 編著 人民郵電出版社
這本書好象也不好買,我找了N多網(wǎng)站都沒找到這本書。
4.Java 3D Programming Author: Daniel Selman(推薦)
Java 3D Programming下載地址:
http://www.esnips.com/nsdoc/26132532-9fbd-4f23-848d-1e324025dbc1
###########################################################################################
P.S.:
一些java3d比較精彩的網(wǎng)上資源
【1】java3d郵件組上比較活躍的人物alessandro borges,巴西技術(shù)牛人,用java3d實(shí)現(xiàn)了凹凸貼圖,環(huán)境貼圖等精彩實(shí)例,去網(wǎng)站上看看吧
http://paginas.terra.com.br/educacao/alessandroborges/
【2】泰國(guó)一個(gè)教授寫的java3d的書,有粒子系統(tǒng),rpg游戲模式三維漫游,多用戶等,相當(dāng)不錯(cuò),提供源碼下載 http://fivedots.coe.psu.ac.th/~ad
【3】很多實(shí)例http://www.hta-bi.bfh.ch/~swc/DemoJ3D/
【4】http://www.rolemaker.dk/articles/evaljava/
【5】java3d tutorial有實(shí)例源碼 http://goanna.cs.rmit.edu.au/~nigels/Java3D/slides99
【6】java3d寫的一個(gè)網(wǎng)球游戲的例子,可多人聯(lián)機(jī)玩,提供源碼下載和文檔說明http://www.redbrick.dcu.ie/~acathla/index.html
【7】一個(gè)類似java3d的api,http://alumni.cse.ucsc.edu/~ey6es/ 在google上搜tiny3d應(yīng)該能搜的到
【8】韓國(guó)人做得衣物方針,可選擇讓模特穿著不同的服裝在T形臺(tái)上展示,太大,還是直接連到個(gè)人主頁(yè)上看吧http://vr.kaist.ac.kr/~redmong/research.htm
【9】一個(gè)場(chǎng)景的模擬,有海面,海豚,大鳥,國(guó)人做得,現(xiàn)在好像到國(guó)外去了http://www.worldshow3d.com/releases/releases.html 貼圖
【10】Java3D目前是開源項(xiàng)目,這里是Java3D的官方開源地址:java3d- Java 3D Parent Project:https://java3d.dev.java.net/
最新版的java3d1.4致力于可編程陰影programmable shaders,它的第一個(gè)stable builds已經(jīng)發(fā)布了
【11】建議從事java3d的開發(fā)者訂閱java3d郵件組,https://java3d.dev.java.net/servlets/ProjectMailingListList,主要訂閱interest@java3d.dev.java.net這個(gè)就可以了,具體訂閱方法見前面網(wǎng)址。另外這個(gè)http://archives.java.sun.com/java3d-interest.html是舊的郵件組,個(gè)人感覺這套郵件組功能不錯(cuò),不過新的java3d開發(fā)團(tuán)隊(duì)已經(jīng)聲明轉(zhuǎn)入新的郵件組。
【12】http://java.sun.com/products/java-media/3D/collateral/ 大量的資料,都挺不錯(cuò)的。
【13】Auto Install :
http://java3d.j3d.org/tutorials/quick_fix/auto_install.html
【14】應(yīng)用程序?qū)嵗?
http://java.sun.com/products/java-media/3D/in_action/application.html
【15】java3d-interest@java.sun.com
https://java3d.dev.java.net/
【16】Java 3D Implementation - OpenGL vs DirectX
Java 3D vsOpenGL vs Direct X
我的學(xué)習(xí)方法:
對(duì)新技術(shù)、新領(lǐng)域很感興趣,尤其是具有實(shí)作性的技術(shù)。新東西出來時(shí)喜歡看例子(從中文到英文),然后自己再試著自己寫東西,再然后是自己對(duì)自己寫的東西的領(lǐng)悟(學(xué)而后再思考)。
至于用Java 3D寫應(yīng)用的過程,在這里就不再給出來了。
期待您的目光和共同學(xué)習(xí)!
如果有什么問題,請(qǐng)留言!
作者:李紅軍