まずハードウエアとしては、以下のOSが動作する Intel系CPUを搭載したIBM PC/AT 互換機があれば十分です。
SPARC CPUを搭載したSun SPARC Stationとその互換機、 MIPS CPUを搭載したsgi IRIXワークステーション、 HP PA-RISC CPUを搭載したHP-9000ワークステーションでも動作します。
ソフトウエアとしてはOpenGL 1.1以上、Java 2 SDK 1.2以上、
Java 3D 1.1以上などが必要です。
すべて無償ダウンロード可能です。
(Windows 版の Java 3DにはDirect Xで稼動するバージョンもあります。
ただしこちらは本書執筆時点では正式版がまだありません。
本書ではOpenGL版のJava 3Dを取り上げます)
ハードウエア | IBM PC/AT | Sun WorkStation | sgi IRIX Workstation | HP-9000 | |||
---|---|---|---|---|---|---|---|
CPU | Intel x86 | SPARC | MIPS | PA-RISC | |||
OS | Linux (glibc2.1.2) | Windows 95/98 | NT4.0/2000 | Solaris | IRIX | HP-UX | |
グラフィックス | OpenGL 1.1 | × | ○ | ○ | ○ | ○ | ○ |
Mesa 3.x | ○ | × | × | × | × | × | |
Direct X 6.1 | × | ○ | × | × | × | × | |
JDK | JDK 1.2.x | JDK 1.2.x, 1.3.x | JDK 1.2.1 | JDK 1.2.2 | |||
Java 3D | Java 3D 1.1.1 | Java 3D 1.1.x, 1.2.x | Java 3D 1.1.1 | Java 3D 1.1.2 |
Java 3Dは本書執筆時点では次のハードウエアで動作します。
sgi IRIX, HP-UXでのJava 2、 Java 3Dについては下記を参照してください。
http://www.sgi.com/developers/devtools/languages/java.html
http://www.unixsolutions.hp.com/products/java/3D112rnotes.html
OSR2.0よりも前のWindows 95には OpenGL 1.1 が含まれていないため、別途 OpenGL 1.1 が必要です。
Windows 95用のOpenGL 1.1は下記からダウンロードできます。
ftp://ftp.microsoft.com/Softlib/MSLFILES/OPENGL95.EXE
OSR2.0以降のWindows 95やWindows 98には最初から OpenGL 1.1 が含まれています。
Linux用のJava 3DはOpenGL互換のグラフィックスAPIであるMesa 3.xで動作します。
Mesaに関しては下記URLを参照してください。
LinuxへのMesa 3.xのインストールは後に詳しく解説します。
Java 3Dには、OpenGL ではなく DiretX で動作するバージョンもあります。
だたし本書執筆時点ではDirectX版はまだ正式版が公開されていません。
本書はすべてOpenGL版を元に執筆しています。
Direct Xで動作するJava 3Dを入手するには、
SunのJDC (Java Developer's Connection)に加入する必要があります。
加入は無料です。下記ページから参加申し込みができます。
http://developer.java.sun.com/
Java 3DはJava 2 SDK 1.2以降で動作します。
本書執筆時点での最新バージョンは1.3.0 RC1です。
Java 2 SDK 1.3のダウンロード情報は下記ページを参照してください。
http://java.sun.com/products/jdk/1.3/
著者がダウンロードしたのは下記のファイル名とファイルサイズのものです。
j2sdk1_3_0rc1-win.exe 30,847,507バイト
本書執筆時点でのJava 3D の最新バージョンは1.2 Beta1です。
Java 3D 1.2のダウンロード情報は下記ページを参照してください。
http://java.sun.com/products/java-media/3D/
著者がダウンロードしたのは下記のファイル名とファイルサイズのものです。
java3d1_2beta1-win-opengl_sdk.exe 3,822,563バイト
Java 2 APIドキュメントのダウンロード情報は 下記ページを参照してください。
http://java.sun.com/products/jdk/1.3/
著者がダウンロードしたのは下記のファイル名とファイルサイズのものです。
j2sdk1_3_0rc1-doc.zip 22,181,946バイト
Java 3D APIドキュメントのダウンロード情報は下記を参照してください。
http://java.sun.com/products/java-media/3D/
著者がダウンロードしたのは下記のファイル名とファイルサイズのものです。
java3d1_2beta1-doc.zip 1,340,871バイト
Java 3D言語仕様は下記からダウンロードできます。
http://java.sun.com/products/java-media/3D/j3dguide.zip (HTML版 zipファイル)
著者がダウンロードしたのは以下のファイル名とファイルサイズのものです。
j3dguide.zip 490,169バイト
コンパイラーなどのほかに、Javaのソース・コードを編集するためのエディターが必要になります。
著者は主に秀丸エディタVer. 3.0と、Java開発用のマクロJMaker.macを使用しています。
著者はJava開発用のマクロが充実していること、軽くてカスタマイズが容易なエディターであることなどから秀丸エディタを使用しています。
秀丸エディタは下記からダウンロードできます。
JMaker.macは下記からダウンロードできます。
http://hidemaru.xaxon.co.jp/library/macro.html
著者はまだ使用していませんが、UNIX環境で定評のあるエディターEmacs、その多国語対応版であるMuleなどで動作するJava開発環境にJDE (Java Development Environment fo Emacs)があります。
UNIX版のMuleは、Linuxの配布パッケージにはほとんど収録されていると思います。
Windows版のMuleであるMule for Win32は下記からダウンロードできます。
http://www.vector.co.jp/soft/win95/writing/se021927.html
また、Mule for Win32から発展したエディターであるMeadow Win32は下記からダウンロードできます。
http://www.vector.co.jp/soft/win95/writing/se068653.html
JDEは下記からダウンロードできます。
Windows環境でJDEのインストール、使用方法については、下記Webページに情報があります。
OSR2.0より前のWidows 95にはOpenGL 1.1が付属しません。
(OSRとはOEM Releaseの略です。PCメーカー向けにOEM出荷されたバージョンを意味します)
では、OSR2.0より前か後かどのように見分けるのでしょうか。
Windows 95のタスクバーの[スタート]-[コントロール パネル]-[システム]を表示してください。
Windows 95のバージョン番号が4.00.950 BであればOSR2.0以降です。
バージョン番号4.00.950または4.00.950 aのものはOSR2.0以前のバージョンです。
繰り返しますが、OSR2.0以降のバージョンのWindows 95にはOpenGL 1.1が含まれているので、OpenGL 1.1のインストールは必要ありません。
以下のインストールは、バージョン番号4.00.950 a以前のWindows 95にのみ行ってください。
まず、opengl95.exeを作業用ディレクトリーで実行します。
ここでは、C:\tempをカレントディレクトリーにして実行しました。
[MS-DOSプロンプト]を開いて、以下のコマンドを入力してください。
C:\WINDOWS>cd \temp
C:\temp>opengl95.exe
C:\tempには下記のファイルが展開されます。
C:\temp>dir
ドライブ C: のボリュームラベルは WINDOWS95
ボリュームシリアル番号は xxxx-xxxx
ディレクトリは C:\temp
. | <DIR> | 99-04-12 | 16:12 | . | |
.. | <DIR> | 99-04-12 | 16:12 | .. | |
README | TXT | 4,788 | 96-08-09 | 12:03 | README.TXT |
GLU32 | DLL | 139,712 | 96-07-29 | 12:09 | GLU32.DLL |
OPENGL32 | DLL | 733,296 | 96-07-29 | 12:11 | OPENGL32.DLL |
GL | H | 68,392 | 96-05-22 | 18:52 | GL.H |
GLAUX | H | 12,024 | 96-02-09 | 9:42 | GLAUX.H |
GLU | H | 18,282 | 96-05-17 | 15:35 | GLU.H |
GLAUX | LIB | 1,093,958 | 96-07-16 | 15:41 | GLAUX.LIB |
GLU32 | LIB | 49,514 | 96-06-12 | 15:37 | GLU32.LIB |
OPENGL32 | LIB | 336,274 | 96-07-16 | 15:33 | OPENGL32.LIB |
9 個 | 2,456,240 | バイトのファイルがあります |
この中のREADME.TXTを良く読んでください。
展開されたファイルのうち、以下の2ファイルをWindowsのシステムディレクトリーにコピーします。
glu32.dll
opengl32.dll
Windows 95のディレクトリーがC:\WINDOWSである場合は以下のようになります。
C:\temp>copy opengl32.dll C:\WINDOWS\SYSTEM
C:\temp>copy glu32.dll C:\WINDOWS\SYSTEM
正常にコピーできたかどうか、dirコマンドで確認してみましょう。
C:\WINDOWS\SYSTEM>dir opengl32.dll
ドライブ C: のボリュームラベルは WINDOWS95OPENGL32 | DLL | 733,296 | 96-07-29 | 12:11 | OPENGL32.DLL |
1 個 | 733,296 | バイトのファイルがあります |
C:\WINDOWS\SYSTEM>dir glu32.dll
ドライブ C: のボリュームラベルは WINDOWS95GLU32 | DLL | 139,712 | 96-07-29 | 12:09 | GLU32.DLL |
1 個 | 139,712 | バイトのファイルがあります |
コピーが完了したらWindows 95を再起動してください。
最初に、下記のファイルがWindowsのシステムディレクトリーに正常にコピーされたことを確認してください。
C:\WINDOWS\SYSTEM>dir opengl32.dll
C:\WINDOWS\SYSTEM>dir glu32.dll
OpenGL 1.1の動作確認は、OpenGLを使用したプログラムを実行してみるのが良いでしょう。
ここでは、Microsoftから公開されているOpenGLのサンプルプログラムを使ってみます。
ftp://ftp.microsoft.com/Softlib/MSLFILES/OGLFIX.EXE
注意) oglfix.exeファイルの中には、古いバージョンのopengl32.dll, glu32.dllが含まれています。
Java 3DはOpenGL 1.1でなければ動作しないため、oglfix.exeの中のopengl32.dll, glu32.dllは使用しないでください。
ここでは安全のため、新たに作業用のディレクトリーを作ってoglfix.exeを展開します。
oglfix.exeはC:\downloadにダウンロードしたものとします。
C:\>md ogltemp
C:\>cd ogltemp
C:\ogltemp>c:\download\oglfix.exe
C:\ogltempには下記のファイルが展開されます。
C:\ogltemp>dir
ドライブ C: のボリュームラベルは WINDOWS95
ボリュームシリアル番号は xxxx-xxxx
ディレクトリは C:\ogltemp
. | <DIR> | 99-04-12 | 16:12 | . | |
.. | <DIR> | 99-04-12 | 16:12 | .. | |
README | TXT | 3,578 | 96-01-30 | 13:09 | README.TXT |
GLU32 | DLL | 156,128 | 95-08-23 | 13:02 | GLU32.DLL |
OPENGL32 | DLL | 558,464 | 95-12-13 | 23:18 | OPENGL32.DLL |
GL | H | 58,061 | 95-04-17 | 13:36 | GL.H |
GLAUX | H | 11,944 | 95-04-17 | 13:36 | GLAUX.H |
GLU | H | 16,325 | 95-04-26 | 10:16 | GLU.H |
GLAUX | LIB | 1,254,160 | 95-08-14 | 16:55 | GLAUX.LIB |
GLU32 | LIB | 50,188 | 95-08-23 | 13:02 | GLU32.LIB |
OPENGL32 | LIB | 298,996 | 95-12-13 | 23:15 | OPENGL32.LIB |
MGA | DRV | 112,896 | 95-08-30 | 16:57 | MGA.DRV |
RXDDI | DLL | 46,080 | 95-08-30 | 14:19 | RXDDI.DLL |
SS3DFO | SCR | 100,192 | 95-08-23 | 13:17 | SS3DFO.SCR |
SSFLWBOX | SCR | 61,744 | 95-08-23 | 13:17 | SSFLWBOX.SCR |
SSPIPES | SCR | 84,672 | 95-08-23 | 13:17 | SSPIPES.SCR |
SSTEXT3D | SCR | 96,736 | 95-08-23 | 13:17 | SSTEXT3D.SCR |
15 個 | 2,910,164 | バイトのファイルがあります | |||
このうち拡張子SCRのものは、Windows用の3Dスクリーンセーバーです。
このスクリーンセーバーをWindowsディレクトリーにコピーすると、スクリーンセーバーとして使用できます。
C:\ogltemp>copy *.src c:\windows
[スタート]-[設定]-[コントロールパネル]-[画面]-[スクリーンセーバー]の[スクリーンセーバー]リストから、3Dスクリーンセーバーを選んでみてください。
3Dスクリーンセーバーが実行できればOpenGLは正常に動作しています。
OpenGLについては、OpenGL日本語FAQをぜひ御覧ください。
http://tech.webcity.ne.jp/~andoh/opengl/
jdk1_3_0rc1-win.exe
をダブルクリックして実行してください。
Java 2 SDK 1.3のセットアップが起動します。
Java 2 SDK 1.3のインストール先ディレクトリーは、 デフォルト設定ではC:\jdk1.3です。
注意:
ディレクトリー名にスペースを含むディレクトリーに
インストールする場合は注意が必要です。
インストール後に環境変数
PATHにJava 2 SDKのbinディレクトリーを含める必要がありますが、
このときパス名にスペースが含まれていると
java, javacなどの
Javaコマンドが起動できなくなります。
デフォルトのC:\jdk1.3のままにすることをお奨めします。
Java 2 SDKをインストールすると、
Java 2 RE (Java 2 Runtime Environment)もインストールされます。
Java 2 REをインストールするとJava Plug-inもインストールされます。
Java Plug-inはJava 3DをNetscapeやInternet Explorerなどの
ブラウザーで実行させるときに必要になります。
これでJava 2 SDK 1.3のインストールが終了しました。
Java 2 SDKを動かすには、Java 2 SDKのbinディレクトリーを環境変数PATHに含める必要があります。
コマンドプロンプトで一時的に設定するには次のようにします。
C:\> set PATH=C:\jdk1.3\bin;%PATH%
Windows 95/98では
C:\AUTOEXEC.BAT
で環境変数PATH
に
C:\jdk1.3\bin
を設定すると良いでしょう。
Windows NT 4.0, Windos 2000では
[スタート]-[設定]-[コントロールパネル]-[システム]
で設定します。
Windows 2000では[システムのプロパティ]
ダイアログで[詳細]
タブを選び、
[環境変数(E)...]
ボタンを押します。
[環境変数]
ダイアログの
[システム環境変数]
でPath
を選び、
[編集(I)...]
ボタンを押します。
[システム変数の編集]
ダイアログで
[変数値(V):]
フィールドに
C:\jdk1.3\bin
を追加します。パスは
;
(セミコロン)で区切ってください。
変更された環境変数を有効にするには、 いったんログアウトして再度ログインしてください。
Windows NT 4.0, Windows 2000の場合、Java 2 SDKのインストーラーはjava.exe, javaw.exeをC:\WINNTにインストールします。
(どうしてこういう仕様になっているのかは不明です)
このとき、Windows NT 4.0, Windows 2000ではC:\WINNTが環境変数PATHに含まれてしまうため、Java 3Dの実行に不都合が生じます。
Windows NTのコマンド・プロンプトでjava.exe, javaw.exeを起動したとき、C:\WINNTディレクトリー配下のjava.exe, javaw.exeが実行されます。
C:\WINNTのjava.exe, javaw.exeはC:\jdk1.3\JRE\lib\extディレクトリー配下にインストールされたJava 3Dのライブラリーをロードできず、例外が発生してJava 3Dが実行できなくなります。
C:\jdk1.3\demo\java3d\HelloUniverse>java HelloUniverse Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/j3d/Scene GraphObject
これを回避するには以下の2とおりの方法があります。
最初の方法が簡単です。
PATHの変更で他のソフトに影響が出る場合は2番目の方法で回避してください。
java3d1_2beta1-win-opengl-sdk.exeをダブルクリックして、 Java 3D 1.2 Beta1のインストールを開始してください。
Java 3Dのインストーラーが指定する、
デフォルトのインストールディレクトリーには注意してください。
デフォルトのインストールディレクトリーは
Java 2 SDKの特定バージョンのものが指定されます。
そのバージョンのJava 2 SDKがインストールされていなくても同様です。
Java 2 SDK 1.3のインストール先ディレクトリーは C:\jdk1.3なので、 Java 3Dのインストール先もC:\jdk1.3に変更する必要があります。
[Browse..]
ボタンを押してください。
[Choose Folder]
ダイアログが表示されます。
[Choose Folder]
ダイアログでJava 2 SDKの
インストールディレクトリー(ここではC:\jdk1.3)を選び、
[OK]
ボタンを押してください。
これでJava 3D 1.2 (OpenGL版)のインストールは終了しました。
Java 3D 1.2 (OpenGL版)のインストールファイルの中から、 いくつかの主要なファイルを以下に示します。
C:\ +---jdk1.3 | java3d-utils-src.jar // com.sun.j3d パッケージソース +---jre |---bin | J3D.dll // OpenGL版 Java 3D DLL | j3daudio.dll // Java 3D サウンドDLL +---lib +---ext vecmath.jar // javax.vecmath パッケージアーカイブ j3dcode.jar // javax.media.j3d パッケージアーカイブ j3daudio.jar // com.sun.j3d.audio パッケージアーカイブ j3dutils.jar // com.sun.j3d パッケージアーカイブ
C:\jdk1.3ディレクトリーに、com.sun.j3d
パッケージのソースコードのアーカイブファイルである
java3d-utils-src.jar
がインストールされます。
本書執筆時点では、Java 3Dのソースはまだ公開されていません。
ですが、Java 3Dのユーティリティークラスである
com.sun.j3dパッケージのソースは公開されています。
com.sun.j3dパッケージのソースは、
Java 3DのプログラミングTipsの宝庫ですのでぜひ読んでみてください。
C:\jdk1.3\binディレクトリーには、
Java 3Dの2つのDLLがインストールされます。
J3D.dllはOpenGLに対応したJava 3Dの描画用DLLです。
j3daudio.dllはJava 3DのサウンドDLLです。
これらのDLLはOS依存のグラフィックAPI、サウンドAPIを
Javaから呼び出すために必要なものです。
C:\jdk1.3\jre\lib\extディレクトリーには Java 3DライブラリーのJARアーカイブがインストールされます。
Java 2からJava拡張機能(Java Extention Mechanism)仕様が採用されました。
Java機能拡張のひとつである「インストール機能拡張」と呼ばれる仕組みは、
jre/lib/extにJARアーカイブを置いておけば、
CLASSPATH
で明示的に位置を指定しなくても
クラスがロードされるというものです。
Java 3Dもこの「インストール機能拡張」の仕組みを使って、
Java 3Dのクラスが格納されたJARアーカイブをjre/lib/ext
ディレクトリーにインストールしています。
Java 3Dのコンパイル時や実行時に
ClassNotFoundExceptionが発生する場合、
jre/lib/extディレクトリーに
Java 3DのJARファイルが含まれているかどうか確かめてください。
著者はJava 2のドキュメントを Java 2 SDK 1.3のインストールディレクトリーに展開しました。
C:\>jar xvf j2skd1_3_0beta1-doc.zip
また、Java 3Dのドキュメントを、Java 2のドキュメント展開後に作られたdocsディレクトリーに展開しました。
C:\jdk1.3\docs>jar xvf java3d1_2beta1-doc.zip
上記のコマンドを実行すると、以下のようなディレクトリー構成で展開されます。
C:\ +---jdk1.3 +---doc +---html |---com | +---sun | +---j3d | |---audioengines | | +---javasound | |---loaders | | |---lw3d | | +---objectfile | +---utils | |---applet | |---audio | |---behaviors | | |---interpolators | | |---keyboard | | |---mouse | | +---picking | |---compression | |---geometry | |---image | |---picking | +---universe +---javax |---media | |---j3d | +---volumeimage +---vecmath
著者はJava 3D API Specification をC:\jdk1.2.1\docsディレクトリーに展開しました。
C:\jdk1.3\docs>jar xvf j3dguide.zip
C:\ +---jdk1.3 +---docs +---j3dguide |---shared +---chars
著者はJava 2やJava 3Dのドキュメントファイルを、Windowsデスクトップのショートカットアイコンとして登録して利用しています。
アイコン | 内容 | ファイル名 |
---|---|---|
Java3D Spec | Java 3D API仕様 (英語版) | C:\jdk1.3\docs\j3dguide\j3dTOC.doc.html |
Java3D API | Java 3D APIドキュメント (英語版) | C:\jdk1.3\docs\html\index.html |
Java2 Document | JDK 1.2ドキュメント (日本語版) | C:\jdk1.3\docs\ja\index.html |
Java2 API | JDK 1.2 APIドキュメント (日本語版) | C:\jdk1.3\docs\ja\api\index.html |
Java 3D 1.2をインストールすると
com.sun.j3dパッケージソースのJARアーカイブもインストールされます。
このファイルは次のコマンドで復元してください。
C:\jdk1.3>jar xvf java3d-utils-src.jar
C:\jdk1.3に、以下のようなディレクトリー構成でソースファイルが復元されます。
C:\ +---jdk1.3 +---src +---com +---sun +---j3d |---audioengines // AudioEngineなどのクラス | +---javasound // JavaSoundMixerクラス |---loaders // ファイル・ローダーの基本クラス | |---lw3d // LightWaveファイル・ローダー | +---objectfile // WaveFront .objファイル・ローダー +---utils |---applet // MainFrameクラス |---audio // DistanceAttenuationクラス |---behaviors | |---mouse // マウス処理の基本クラス | |---keyboard // キーボード処理の基本クラス | |---interpolators // アニメーションの基本クラス | +---picking // ピッキングの基本クラス |---compression // ジオメトリー圧縮クラス |---geometry // プリミティブ描画オブジェクト |---image // TextureLoaderクラス |---picking // PickShapeを使ったピッキングクラス +---universe // SimpleUniverseクラス
JBuilder 3 Foundation Editionへのインストールは、 CD-ROMまたは本書サポートページ http://www.javaopen.org/j3dbook/を参照してください。