1 引言
隨著計算機技術的發展,三維應用程序有著越來越多的需求。自從Sun 公司的Java 3D 問世以來,人們終于有了一個性能優越的編寫三維應用程序的優良工具[1 ]。Java 語言與C + +有著相似的語法結構,對于初學者來說易學易用,而且Java 程序可以在網頁上運行,因而獲得越來越廣泛的應用。Java 3D 是一組API ,是Java 語言在三維領域的擴展。與Java 3D 相似的技術有OpenGL和Direct 3D ,對于普通的三維應用程序的編程人員來說,OpenGL和Direct 3D 屬于較低級的三維函數庫,難以掌握和學習。而Java 3D 則是Java 語言在三維領域的延伸,屬于面向對象的計算機語言,容易學習和掌握。目前,越來越多的人在從事網頁的編寫工作,Java 3D 程序和其他Java程序一樣,可以在網頁上運行,這就為我們在互聯網上交互式顯示三維模型提供了極大的便利。
由于Java 3D 的功能繁雜,編制三維應用程序也是相當復雜的。Java 3D三維可視化編程的研究直到現在還是涉及較少的一個領域,很少有相關的理論和技術出現。
本文通過使用Java語言的三維圖形模塊Java 3D技術并結合NetBeans來實現Java 3D的三維可視化編程使三維編程變得更加簡單。希望能夠以此在三維可視化編程方面進行一定的研究和探討。
2 Java 3D 技術簡介
Java 3D是Java語言在三維圖形領域的擴展,是一組用于三維編程的API,它提供了一個建立三維場景的機制,提供了編寫三維應用程序所需的各種功能。Java 3D可用來編寫非常復雜的應用程序,應用于許多領域[1]。
Java 3D中最重要的概念是它的場景圖數據結構[2][3]。Java 3D的場景圖根據Java語言編程的特點增加了一些新的內容,更加易于實時處理及特殊三維效果的顯示,更加方便最新的三維圖形加速技術的應用。
Java 3D從1.3.1發展到1.3.2以后,在java.net 上已經發展成為一個開源項目。在過去Java3D一直沒有競爭力,然而,當前Java 3D的穩定版本是1.5.0,要比以前的老版本在運行效率上快很多。
Java 3D現在分成了許多子項目[4],其中Java 3D的核心類是j3d-core,與Java 3D相關的其他項目可以查閱Java 3D Project站點來進一步了解其內容。
3 3 Java 3D與NetBeans的結合
為了有效地實現Java 3D的可視化編程,在這里采用了Java 3D與NetBeans相結合的方法。Java 3D通過在NetBeans中導入Java 3D開發模塊,利用其內置的Java 3D API來實現三維可視化編程。
NetBeans是一個全功能的開放源碼Java IDE,可以幫助開發人員編寫、編譯、調試和部署Java應用,并將版本控制和XML編輯融入其眾多功能之中[5]。
NetBeans本身并沒有開發Java 3D應用程序的能力,必須外掛Java 3D API和Java 3D開發模塊才能進行三維可視化的開發(如圖1所示)。

圖1 NetBeans外掛Java 3D開發模塊
Netbeans中安裝外掛的方法有兩種:
[1]利用NetBeans內建的網絡升級功能;
[2]先到NetBeans網站下載這些模塊(.nbm文件),然后再利用NetBeans內建的模塊安裝功能。
在這里使用第二種方式來安裝Java 3D的開發模塊。首先啟動Netbeans,選擇主功能菜單的"Tools/Update Center"以打開Update Center Wizard向導,然后根據提示加載Java 3D安裝模塊java3d.nbm(如圖2所示)即可完成Java 3D可視化環境的搭建。

圖2 選擇需要安裝的java3d.nbm模塊
4 一個基于Java 3D可視化技術的一個實例
圖3是實現Java 3D可視化編程的一個實例,首先創建一個場景圖,然后添加相應的節點和屬性等內容來生成場景圖。場景圖生成以后,可以直接從場景圖來生成與Java 3D對應的源代碼。


圖3 基于Java 3D的三維可視化交互開發環境
5 結論
隨著面向對象和可視化技術的發展,實現Java 3D的可視化編程,對于提高三維圖形編程的效率和減少三維編程的復雜性很有意義。結合NetBeans編程的通用性和Java 3D對三維場景強大的可操作性及跨平臺性,構建基于Java 3D-NetBeans的三維可視化交互開發環境,對于實現三維圖形和三維動畫編程具有實際意義。Java 3D的可視化開發是一個正在發展的領域,在獲取形體的特征和屬性等方面仍需作進一步的研究和實踐。
參考文獻
[1] 張杰. Java 3D 交互式三維圖形編程[M] 北京:人民郵電出版社,1999.
[2]都志輝.Java 3D編程實踐[M] 北京:清華大學出版社,2002
[3]Selman, D.Java 3D Programming[M].Manning Publications,2002
[4] Sun.Java 3D Project. https://java3d.dev.java.net
[5] Netbeans.org. http://www.netbeans.org/