然后出現(xiàn)了JOGL
java也許是最流行的真正的面向?qū)ο蟮木幊陶Z(yǔ)言。有許多用Java去結(jié)合OpenGL的嘗試,但是第一個(gè)被大家認(rèn)可并注重的是Java對(duì)于OpenGl的綁定(Java Bindings for OpenGL), 或者稱為JOGL.理由是它得到Sun(Java的創(chuàng)建者)和SGI(OpenGL的創(chuàng)建者)的支持。
如今,Sun的游戲開發(fā)小組正在開發(fā)JOGL.它是以肯。拉塞爾和克里斯??颂m開發(fā)的Jungle開始的。拉塞爾是Sun的員工,研發(fā)“HotSpot虛擬機(jī)”,擁有多年的三維經(jīng)驗(yàn)。克蘭則研發(fā)“荒謬的游戲”,對(duì)三維圖形學(xué)也相當(dāng)有經(jīng)驗(yàn)。
我個(gè)人對(duì)他們以及所有其它工作在JOGL上的人表示感謝。曾經(jīng)有許多想通過(guò)友好的Java API來(lái)使用OpenGL的嘗試——其中包括Java 3D, OpenGL for Java Technology (gl4java)(用于Java技術(shù)的OpenGL),Lightweight Java Game Library (LWJGL)(輕量級(jí)的Java游戲庫(kù))。JOGL是第一個(gè)使我感到滿足的。
JOGL是Sun支持的對(duì)于OpenGl的Java類綁定。哇!這句話說(shuō)得太妙了。
OpenGL被用來(lái)展示三維模型。它強(qiáng)大、快速,而且可能是自Swing出現(xiàn)以來(lái)最棒的一樣?xùn)|西。通過(guò)JOGL來(lái)使用OpenGL,你可以制作出很酷的游戲或是模型位置什么的,而在這之前創(chuàng)建它們需要非常昂貴的成本。有人寫了很厚很厚的書來(lái)描述OpenGL,當(dāng)你熟悉了它們以后這些書會(huì)很有用,但現(xiàn)在不行。你必須學(xué)習(xí)展現(xiàn)在你面前的OpenGL是如何使用Java API的。同樣你還得看一下關(guān)于net.java.games.jogl.*的基礎(chǔ)介紹,可能還得補(bǔ)習(xí)一下數(shù)學(xué)知識(shí)。
獲取JOGL?
假如你想使用JOGL,你需要得到j(luò)ogl.jar以及附帶的本機(jī)代碼。我希望有一天它可以成為Java的標(biāo)準(zhǔn)安裝,但現(xiàn)在它只是一個(gè)夢(mèng)想。
第一步是要找到你的操作系統(tǒng)所對(duì)應(yīng)的包,并進(jìn)行解壓縮。我是在http://www.javaworld.com/javaworld/jw-02-2005/jw-0221-jogl.Html#resources上找到的。不同的操作系統(tǒng)有所區(qū)別,但需要安裝2個(gè)部分。系統(tǒng)的classpath里一定要有jogl.jar,而且binary庫(kù)必須放在和你操作系統(tǒng)的庫(kù)同一個(gè)地方。假如比較幸運(yùn)的話,安裝程序可以為你完成這些。假如你沒(méi)有安裝程序而且不知道該上哪里去尋找關(guān)于設(shè)置計(jì)算機(jī)的信息的話,你可以從我提供一個(gè)鏈接Resources開始搜索。我們的第一篇代碼是非凡用來(lái)測(cè)試環(huán)境是否安裝正確的,所以對(duì)于測(cè)試安裝你不必緊張。
JOGL的Javadocs
同樣可以在和JOGL 的binary 發(fā)布版一樣的位置獲得Javadocs.Javadocs將會(huì)以類似jogl-1.0-usrdoc.tar的名字而命名。
假如你瀏覽一下net.java.games.jogl包,你很快會(huì)注重到有些類非常大。GL便是一個(gè)完美的例子。別被這個(gè)嚇跑了,你很快能發(fā)現(xiàn)只需一點(diǎn)點(diǎn)JOGL的知識(shí),你就可以完成一些相當(dāng)復(fù)雜的事了?,F(xiàn)在你需要掃視一下的類有:*GLDrawable *GLCanvas *GLJPanel *GLCapabilities *GLDrawableFactory
這些是連接圖形世界基本的接口。假如你還記得,前面我提到對(duì)于初學(xué)OpenGL的人來(lái)說(shuō),有一個(gè)很大的缺點(diǎn),那就是缺乏窗口系統(tǒng)的標(biāo)準(zhǔn)。對(duì)應(yīng)于C語(yǔ)言,GLUT起到了相當(dāng)大的作用。而我們則有Swing和AWT(抽象窗口工具箱)。很可能你已經(jīng)使用過(guò)AWT或者Swing了,所以你不會(huì)感到自己在從頭學(xué)起。這是件非常好的事情。在通過(guò)了非常簡(jiǎn)短的關(guān)于把JOGL組件放置到屏幕上的介紹以后,我們不需要多長(zhǎng)時(shí)間就可以運(yùn)行出一個(gè)相當(dāng)酷而且流行的程序了。
GlueGen……幾乎和JOGL一樣酷?
你應(yīng)該意識(shí)到,OpenGL是為C程序員而寫的。這意味著Java想要利用它,必須要用到本機(jī)接口。不那么有趣的JNI(Java本機(jī)接口)必須用來(lái)進(jìn)行此連接。OpenGL太大了,手寫所有的連接太費(fèi)時(shí)。想稍微做出一點(diǎn)復(fù)雜的程序,有許多非凡出售的特性,OpenGL則保持改進(jìn),那意味著得有相應(yīng)的變化來(lái)跟上OpenGL的步伐。簡(jiǎn)而言之,對(duì)于任何試著寫與OpenGL保持同步,包含所有Java到本機(jī)的接口的代碼的嘗試,是非常困難的。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注