Kondara MNU/Linuxの最新版snapshotにはJDK 1.2.2 RC4のRPMが含まれるので JDKのインストールは楽です。
Java 3D 1.1.1 pre-v1は最新版のMesa 3.1ではうまく動作しません。 Mesa 3.0が必要です。
本稿で紹介したソフトウエアの一次配布先を書いておきます。
一次配布先が無いものは開発元サイトの
ダウンロード情報ページを紹介します。
Linux ディストリビューションに依存したもの(RPMファイル)は
そのディストリビューションの一次配布先
またはダウンロード情報ページを書きました。
ソフトウエア | ファイル名 | バイト数 | 一次配布先またはダウンロード情報 |
---|---|---|---|
JDK 1.2.2 RC4 (Kondara snapshot) | jdk-1.2.2_RC4-1k1.i586.rpm | 18,759,168 | http://www.kondara.org/ftplist.html |
unixODBC 1.8.3 (Kondara snapshot) | unixODBC-1.8.3-0k2.i586.rpm | 1,014,311 | |
Java 3D 1.1.1 pre-v1 | java3d1_1_1pre-v1-linux-sdk.tar.bz2 | 2,180,744 | http://www.blackdown.org/java-linux/mirrors.html |
Mesa 3.0 | MesaLib-3.0.tar.gz | 1,096,806 | http://www.mesa3d.org/download.html |
Mesa 3.0デモ | MesaDemos-3.0.tar.gz | 915,369 | |
shuJIT | shujit-0.4.1-bin-linux-glibc21-jdk12.tar.gz | 57,718 | http://www.shudo.net/jit/dist/ |
Blackdown JDK 1.2.2 RC4, Java 3D 1.1.1 pre-v1を
Kondara MNU/Linuxにインストールする方法を説明します。
えんどう は Kondara MNU/Linux 1.0製品版にインストールしました。
Kondara MNU/Linuxについては下記を参照してください。Kondara MNU/Linuxには製品版とフリー版があります。
Kondara MNU/Linuxの製品版とフリー版は次の方法で入手できます。
これを書いている時点 (2000年2月中旬)でも、Java 3DはIntel x86対応の
Version 1.1.1 pre-v1しかリリースされていません。
Linux用のJava 3D 1.1.1 pre-v1の稼働環境は次の通りです。
Linux用のJava 3D は、 OpenGL互換のフリーの 3D グラフィクス API である Mesa 上で稼働します。
Java 3D 1.1.1 pre-v1はMesa 3.1には対応していません。 (*)
Blackdown JDK, Java 3Dの最新バージョンについては下記を参照してください。
また、既知のバグについての情報は必ず参照してください。
http://www.blackdown.org/java-linux/jdk1.2-status/known-bugs.html
本稿では次のソフトウエアのインストールを説明して行きます。
Blackdown JDK 1.2.2を入手します。
これを書いている時点では、Blackdown JDK 1.2.2の最新版はRC4です。
Kondara MNU/Linux製品版1.0にはJDKは付属しませんが、
フリー版の最新バージョンであるKondara snapshotには
Blackdown JDK 1.2.2 RC4が含まれています。
Kondara snapshot(**)
のダウンロード情報は下記を参照してください。
http://www.kondara.org/ftplist.html
snapshot
というディレクトリーがあるわけではありません。Kondara-1.0, Kondara-Zoo
と同じディレクトリー階層にある
Kondara
というディレクトリーがsnapshotです。
えんどう がダウンロードしたのは 以下のファイル名とファイルサイズのものです。
jdk-1.2.2_RC4-1k1.i586.rpm 18,759,168バイト
JDK 1.2.2はLinux kernel 2.2.x, glibc2.1.2以上で動作します。
Kondara snapshotのJDK 1.2.2はunixODBCに依存しています。 インストールにはunixODBCも必要になります。
unixODBC-1.8.3-0k2.i586.rpm 1,014,311バイト
JDK 1.2.2, unixODBCをホームディレクトリー$HOME
にダウンロードしてあるものとします。
インストール作業はroot
権限で行います。
root
としてログインするか、
su
コマンドで
root
ユーザーに切替えて作業してください。
次の例では
unixODBC-1.8.3-0k2.i586.rpm, jdk-1.2.2_RC4-1k1.i586.rpm
をホームディレクトリー$HOME
にダウンロードしています。
$ cd $ su Password: # rpm -ivh unixODBC-1.8.3-0k2.i586.rpm unixODBC ################################################## # rpm -ivh jdk-1.2.2_RC4-1k1.i586.rpm jdk ##################################################
コマンドラインからjavaを実行してみましょう。
$ java -version java version "1.2.2" Classic VM (build Linux_JDK_1.2.2_RC4, native threads, sunwjit)
今度は、Java 2DのサンプルであるJava2DDemoを実行してみます。
$ cd /usr/lib/java/jdk1.2.2/demo/jfc/Java2D/ $ appletviewer Java2Demo.html Warning: Missing charsets in String to FontSet conversion
警告が出ていますが、フォントエラー無く実行できました。
JDK 1.2 には JIT コンパイラー sunwjit が含まれています。
Java Platform 2 SDK Version 1.2.2: Known Bugs
http://www.blackdown.org/java-linux/jdk1.2-status/known-bugs.html
によれば、
int
とdouble
の比較演算が正しくないなど、
sunwjitにはまだ若干の問題点があるようです。
この問題点を回避するには JITコンパイラーを使用しないようにするという方法が考えられます。
JITコンパイラーを使用しないようにするには次の2つの方法があります。
JAVA_COMPLIER=NONE
を追加する-Djava.compiler=NONE
を追加する-J-Djava.compiler=NONE
としてください)別の対処方法として、sunwjit
以外の JIT コンパイラーを使用する方法があります。
えんどう は、首藤一幸さんによるフリーの JIT コンパイラー shuJIT をインストールしました。shuJIT の最新情報については次のサイトを参照してください。
http://www.shudo.net/jit/index-j.html
shuJITの一次配布先は次の通りです。
http://www.shudo.net/jit/dist/
えんどう がダウンロードしたのは以下のファイル名とファイル容量のものです。
shujit-0.4.1-bin-linux-glibc21-jdk12.tar.gz 57,718バイト
shuJITにはglibc2.0対応のものと glibc2.1対応のものがあるので注意してください。
shuJITのアーカイブを展開すると、 カレントディレクトリー配下に以下のディレクトリーとファイルが作成されます。
$ tar xvfz shujit-0.4.1-bin-linux-glibc21-jdk12.tar.gz shujit/README shujit/GPL.txt shujit/libshujit.so
shuJIT のインストール方法については、README
を必ず参照してください。
えんどう は次の方法でインストールしました。
$ cd shujit $ su Password: # cp libshujit.so /usr/lib/java/jdk1.2.2/jre/lib/i386/.
shuJIT を使うには次の2つの方法があります。
JAVA_COMPLIER=shujit
を追加する-Djava.compiler=shujit
を追加する-J-Djava.compiler=shujit
としてください)shuJIT の実行を確認してみましょう。
$ java -Djava.compiler=shujit -version shuJIT for Sun JVM/IA-32 Copyright 1998,1999,2000 by SHUDO Kazuyuki java version "1.2.2" Classic VM (build Linux_JDK_1.2.2_RC4, native threads, shujit)
えんどう は.bash_profiles
で環境変数
JAVA_COMPLIER=shujit
を指定しています。
1999年9月に、Borland (INPRISE) から Linux 用の JIT コンパイラー JBuilder Java 2 Just-In-Time Compiler for Linux がリリースされました。 JBuilder のために開発されたもので、かなり高速なようです。 SunのJDK 1.2.2 RC2 for LinuxにはこのJITコンパイラーが 標準添付されています。
JBuilder Java 2 Just-In-Time Compiler for Linuxは
http://www.borland.com/jbuilder/linux
からダウンロードできます。ただし残念なことに、オープンソースではないようです。
JDK 1.2.2 RC4では標準で native thread が使用されます。
前のバージョンのJDK 1.2 pre-v2では、
native thread使用時の次のような問題点が報告されていました。
ガベージ・コレクションが動作しない、
JFileChooser
でデッドロックが発生する、などです。
SunのJDK 1.2.2 RC2 for Linuxではデフォルトでgreen threadが使用さ
れるようになっているようです。
Blackdown JDK 1.2.2 RC4でも
native threadの使用により問題が発生するかも知れません。
native threadによる問題をが発生したときには、 green threadを使用するようにしてこの問題を回避します。
green thread を使うには次の2つの方法があります。
THREADS_FLAG=green
を追加する-green
を追加する-green
を追加してください)えんどうは.bash_profile
で環境変数
THREADS_FLAG=green
を設定しています。
LinuxでJava 3Dを動かすためには、OpenGL互換のグラフィクスAPIであるMesa 3.0が必要です。
Mesaのダウンロード情報は下記を参照してください。
http://www.mesa3d.org/download.html
えんどう がダウンロードしたのは以下のファイル名とファイルサイズのものです。
MesaLib-3.0.tar.gz 1,096,806バイト // Mesa 3.0ソース MesaDemos-3.0.tar.gz 915,369バイト // Mesa 3.0デモソース
まずMesa 3.0、Mesa 3.0デモのソースを展開します。
えんどうは/usr/local/src/
に展開しました。
$ su Password: # cd /usr/local/src/ # tar xvfz $HOME/MesaLib-3.0.tar.gz # tar xvfz $HOME/MesaDemos-3.0.tar.gz
つぎにmake
を行います。
# cd Mesa-3.0 # make linux-386-elf
make
が終了したら、
ヘッダーファイルとライブラリーをコピーします。
# cp -r include/GL /usr/include # cp lib/* /usr/lib
Mesaの動作テストをしてみましょう。
Mesaのデモを実行してみます。
$ cd /usr/local/src/Mesa-3.0/demos/ $ ls Makefile gears morph3d.c reflect texcyl Makefile.cygnus gears.c multiext reflect.c texcyl.c bounce girl.rgb multiext.c reflect.rgb texobj bounce.c glinfo multitex renormal texobj.c clearspd glinfo.c multitex.c renormal.c trispd clearspd.c glutfx osdemo spectex trispd.c descrip.mms glutfx.c osdemo.c spectex.c winpos drawpix isosurf paltex stex3d winpos.c drawpix.c isosurf.c paltex.c stex3d.c gamma isosurf.dat pointblast tessdemo gamma.c morph3d pointblast.c tessdemo.c $ ./morph3d Morph 3D - Shows morphing platonic polyhedra Author: Marcelo Fernandes Vianna (vianna@cat.cbpf.br) [1] - Tetrahedron [2] - Hexahedron (Cube) [3] - Octahedron [4] - Dodecahedron [5] - Icosahedron [SPACE] - Toggle colored faces [RETURN] - Toggle smooth/flat shading [ESC] - Quit
Java 3D も面白いですが、C で OpenGL (Mesa) プログラミングも面白いと思います。OpenGL プログラミングについては次の書籍を参考にしてください。
書名: OpenGL プログラミングガイド (第2版) OpenGL バ−ジョン 1.1 対応オフィシャルガイド ISBN: 479529710X 著者: OpenGL ARB (Aachitecture Review Board) 出版社: アジソン・ウェスレイ・パブリッシャ−ズ・(星雲社刊) 本体価格: ¥12,000-
グラフィックス・ボードのハードウエア・アクセラレーションがあると、OpenGL, Mesa などのグラフィックス・パフォーマンスは劇的に向上します。
Mesa 環境でのグラフィックス・ボードのハードウエア・アクセラレーショ ンの対応状況については、Mesa のオフィシャル・サイト http://www.mesa3d.org/ を参照してください。
たとえば現時点では、ftp://ftp.mesa3d.org/mesa/misc/nVidia/ に nVidia 対応のドライバーが登録されています。
3dfx Voodoo ボードへの対応状況は http://www-hmw.caribel.pisa.it/fxmesa/index.shtml にあります。
Windows NT に比べると数は多くありませんが、例えば nVidia は今後積極的に Linux にコミットして行くのではないかと予想しています。
XFree86 の次期バージョンである 4.0 では、Mesa, GLX (X-Winod System の OpenGL 拡張) が XFree86 に取り込まれることになるようです。 たとえば pre 4.0 snapshot である、3.9.16 のリリースノート http://www.xfree86.org/snapshots/3.9.16/RELNOTES2.html#11 には次のような記述があります。
2.9. GLX とダイレクト・レンダリング・インフラストラクチャー(DRI) Precision Insight 社は、Red Hat と SGI の協力を受けて、 X11 window での 3D レンダリングの ための GLX 拡張の統合を提供しました。 3D レンダリングのコアになるコンポーネントは Mesa ライブラリーです。 SGI は拡張フレームワークのソースをオープンライセンスの下にリリースしました。 これらは 3D ライブラリーとウインドウシステムの融合を真に提供します。 Precision Insight 社はこれらのコンポーネントを XFree86 の X Server に統合し、 ダイレクトレンダリングのためのインフラストラクチャー (DRI) を追加します。 ダイレクトレンダリングは3Dデータをグラフィクスハードウエアに ダイレクトにシェーディングするための高度に最適化されたパスです。 このリリースは、GMX2000グラフィックカードのための、 アクセラレートされたダイレクトレンダリングのシンプルな実装をdemonstrateします。 将来のリリースでは幅広い3D性能を持つグラフィックディバイスの上で、 ハードウエアアクセラレートされたダイレクトレンダリングが広範にサポートされるでしょう。
XFree86 での GLX のハードウエア・アクセラレーションについては、SGI の以下のページが参考になります。
http://reality.sgi.com/ripperda_engr/glx/
Linux の 3D グラフィック環境はますます充実するのではないかと思います。
Linux用Java 3Dは、 これを書いている時点でもまだ1.1.1 pre-v1 (Intel x86)が公開されているのみです。
Java 3Dのダウンロード情報は下記を参照してください。
http://www.blackdown.org/java-linux/mirrors.html
えんどう がダウンロードしたのは次のファイル名とファイルサイズのものです。
java3d1_1_1pre-v1-linux-sdk_tar.bz2 2,180,744バイト
以下の例では、ホームディレクトリー $HOME にダウンロードしました。
このファイルはjdk1.2
ディレクトリー配下に格納されているので、
このままではJDK 1.2.2にインストールできません。
このためいったん任意の作業用ディレクトリーに展開します。
$ su Password: # cd # mkdir tmp # cd tmp # tar xvfI $HOME/java3d1_1_1pre-v1-linux-sdk_tar.bz2 jdk1.2/ jdk1.2/jre/ jdk1.2/jre/lib/ jdk1.2/jre/lib/i386/ jdk1.2/jre/lib/i386/libJ3D.so jdk1.2/jre/lib/i386/libj3daudio.so jdk1.2/jre/lib/ext/ jdk1.2/jre/lib/ext/vecmath.jar jdk1.2/jre/lib/ext/j3dcore.jar jdk1.2/jre/lib/ext/j3daudio.jar jdk1.2/jre/lib/ext/j3dutils.jar jdk1.2/demo/ jdk1.2/demo/java3d/ jdk1.2/demo/java3d/Appearance/ jdk1.2/demo/java3d/Appearance/AppearanceTest.java jdk1.2/demo/java3d/Appearance/AppearanceTest.class jdk1.2/demo/java3d/Appearance/Tetrahedron.java jdk1.2/demo/java3d/Appearance/Tetrahedron.class jdk1.2/demo/java3d/AppearanceMixed/ jdk1.2/demo/java3d/AppearanceMixed/AppearanceMixed.java jdk1.2/demo/java3d/AppearanceMixed/AppearanceMixed.class jdk1.2/demo/java3d/AppearanceMixed/AppearanceMixed$MyCanvas3D.class jdk1.2/demo/java3d/AppearanceMixed/Tetrahedron.java jdk1.2/demo/java3d/AppearanceMixed/Tetrahedron.class jdk1.2/demo/java3d/AWT_Interaction/ jdk1.2/demo/java3d/AWT_Interaction/AWTInteraction.java jdk1.2/demo/java3d/AWT_Interaction/AWTInteraction.class jdk1.2/demo/java3d/Billboard/ jdk1.2/demo/java3d/Billboard/Bboard.java jdk1.2/demo/java3d/Billboard/Bboard.class jdk1.2/demo/java3d/Billboard/MouseRotateY.java jdk1.2/demo/java3d/Billboard/MouseRotateY.class jdk1.2/demo/java3d/ConicWorld/ jdk1.2/demo/java3d/ConicWorld/ConicWorld.java jdk1.2/demo/java3d/ConicWorld/ConicWorld.class jdk1.2/demo/java3d/ConicWorld/FlipCylinder.java jdk1.2/demo/java3d/ConicWorld/FlipCylinder.class jdk1.2/demo/java3d/ConicWorld/README jdk1.2/demo/java3d/ConicWorld/SimpleCylinder.java jdk1.2/demo/java3d/ConicWorld/SimpleCylinder.class jdk1.2/demo/java3d/ConicWorld/TexturedCone.java jdk1.2/demo/java3d/ConicWorld/TexturedCone.class jdk1.2/demo/java3d/ConicWorld/TexturedSphere.java jdk1.2/demo/java3d/ConicWorld/TexturedSphere.class jdk1.2/demo/java3d/FourByFour/ jdk1.2/demo/java3d/FourByFour/BigCube.java jdk1.2/demo/java3d/FourByFour/BigCube.class jdk1.2/demo/java3d/FourByFour/Board.java jdk1.2/demo/java3d/FourByFour/Board.class jdk1.2/demo/java3d/FourByFour/Canvas2D.java jdk1.2/demo/java3d/FourByFour/Canvas2D.class jdk1.2/demo/java3d/FourByFour/Cube.java jdk1.2/demo/java3d/FourByFour/Cube.class jdk1.2/demo/java3d/FourByFour/Cylinder.java jdk1.2/demo/java3d/FourByFour/Cylinder.class jdk1.2/demo/java3d/FourByFour/FourByFour.java jdk1.2/demo/java3d/FourByFour/FourByFour.class jdk1.2/demo/java3d/FourByFour/FourByFour$killAdapter.class jdk1.2/demo/java3d/FourByFour/ID.java jdk1.2/demo/java3d/FourByFour/ID.class jdk1.2/demo/java3d/FourByFour/PickDragBehavior.java jdk1.2/demo/java3d/FourByFour/PickDragBehavior.class jdk1.2/demo/java3d/FourByFour/Poles.java jdk1.2/demo/java3d/FourByFour/Poles.class jdk1.2/demo/java3d/FourByFour/Positions.java jdk1.2/demo/java3d/FourByFour/Positions.class jdk1.2/demo/java3d/FourByFour/README jdk1.2/demo/java3d/FourByFour/fbf.html jdk1.2/demo/java3d/FourByFour/instructions.txt jdk1.2/demo/java3d/FourByFour/scores.txt jdk1.2/demo/java3d/GearTest/ jdk1.2/demo/java3d/GearTest/Gear.java jdk1.2/demo/java3d/GearTest/Gear.class jdk1.2/demo/java3d/GearTest/GearBox.java jdk1.2/demo/java3d/GearTest/GearBox.class jdk1.2/demo/java3d/GearTest/GearTest.java jdk1.2/demo/java3d/GearTest/GearTest.class jdk1.2/demo/java3d/GearTest/Shaft.java jdk1.2/demo/java3d/GearTest/Shaft.class jdk1.2/demo/java3d/GearTest/SpurGear.java jdk1.2/demo/java3d/GearTest/SpurGear.class jdk1.2/demo/java3d/GearTest/SpurGearThinBody.java jdk1.2/demo/java3d/GearTest/SpurGearThinBody.class jdk1.2/demo/java3d/HelloUniverse/ jdk1.2/demo/java3d/HelloUniverse/HelloUniverse.html jdk1.2/demo/java3d/HelloUniverse/HelloUniverse.java jdk1.2/demo/java3d/HelloUniverse/HelloUniverse.class jdk1.2/demo/java3d/Lightwave/ jdk1.2/demo/java3d/Lightwave/README.txt jdk1.2/demo/java3d/Lightwave/Viewer.java jdk1.2/demo/java3d/Lightwave/Viewer.class jdk1.2/demo/java3d/Lightwave/ballcone.lws jdk1.2/demo/java3d/Lightwave/greenball.lwo jdk1.2/demo/java3d/Lightwave/redcone.lwo jdk1.2/demo/java3d/LOD/ jdk1.2/demo/java3d/LOD/LOD.class jdk1.2/demo/java3d/LOD/LOD.java jdk1.2/demo/java3d/Morphing/ jdk1.2/demo/java3d/Morphing/ColorCube.java jdk1.2/demo/java3d/Morphing/ColorCube.class jdk1.2/demo/java3d/Morphing/ColorPyramidDown.java jdk1.2/demo/java3d/Morphing/ColorPyramidDown.class jdk1.2/demo/java3d/Morphing/ColorPyramidUp.java jdk1.2/demo/java3d/Morphing/ColorPyramidUp.class jdk1.2/demo/java3d/Morphing/Morphing.java jdk1.2/demo/java3d/Morphing/Morphing.class jdk1.2/demo/java3d/Morphing/MorphingBehavior.java jdk1.2/demo/java3d/Morphing/MorphingBehavior.class jdk1.2/demo/java3d/Morphing/Pyramid2Cube.java jdk1.2/demo/java3d/Morphing/Pyramid2Cube.class jdk1.2/demo/java3d/Morphing/hand1.obj jdk1.2/demo/java3d/Morphing/hand2.obj jdk1.2/demo/java3d/Morphing/hand3.obj jdk1.2/demo/java3d/ObjLoad/ jdk1.2/demo/java3d/ObjLoad/ObjLoad.java jdk1.2/demo/java3d/ObjLoad/ObjLoad.class jdk1.2/demo/java3d/PackageInfo/ jdk1.2/demo/java3d/PackageInfo/PackageInfo.java jdk1.2/demo/java3d/PackageInfo/PackageInfo.class jdk1.2/demo/java3d/PickTest/ jdk1.2/demo/java3d/PickTest/ColorCube.java jdk1.2/demo/java3d/PickTest/ColorCube.class jdk1.2/demo/java3d/PickTest/ColorPyramidDown.java jdk1.2/demo/java3d/PickTest/ColorPyramidDown.class jdk1.2/demo/java3d/PickTest/ColorPyramidUp.java jdk1.2/demo/java3d/PickTest/ColorPyramidUp.class jdk1.2/demo/java3d/PickTest/CubeIQA.java jdk1.2/demo/java3d/PickTest/CubeIQA.class jdk1.2/demo/java3d/PickTest/GullCG.java jdk1.2/demo/java3d/PickTest/GullCG.class jdk1.2/demo/java3d/PickTest/BoltCG.java jdk1.2/demo/java3d/PickTest/BoltCG.class jdk1.2/demo/java3d/PickTest/CubeQA.java jdk1.2/demo/java3d/PickTest/CubeQA.class jdk1.2/demo/java3d/PickTest/IcosahedronITSA.java jdk1.2/demo/java3d/PickTest/IcosahedronITSA.class jdk1.2/demo/java3d/PickTest/IcosahedronTSA.java jdk1.2/demo/java3d/PickTest/IcosahedronTSA.class jdk1.2/demo/java3d/PickTest/OctahedronITFA.java jdk1.2/demo/java3d/PickTest/OctahedronITFA.class jdk1.2/demo/java3d/PickTest/OctahedronTFA.java jdk1.2/demo/java3d/PickTest/OctahedronTFA.class jdk1.2/demo/java3d/PickTest/TetrahedronITA.java jdk1.2/demo/java3d/PickTest/TetrahedronITA.class jdk1.2/demo/java3d/PickTest/TetrahedronTA.java jdk1.2/demo/java3d/PickTest/TetrahedronTA.class jdk1.2/demo/java3d/PickTest/MorphingBehavior.java jdk1.2/demo/java3d/PickTest/MorphingBehavior.class jdk1.2/demo/java3d/PickTest/PickTestBounds.html jdk1.2/demo/java3d/PickTest/PickTestBounds.java jdk1.2/demo/java3d/PickTest/PickTestBounds.class jdk1.2/demo/java3d/PickTest/PickTestGeometry.html jdk1.2/demo/java3d/PickTest/PickTestGeometry.java jdk1.2/demo/java3d/PickTest/PickTestGeometry.class jdk1.2/demo/java3d/PickText3D/ jdk1.2/demo/java3d/PickText3D/PickText3DBounds.java jdk1.2/demo/java3d/PickText3D/PickText3DBounds.class jdk1.2/demo/java3d/PickText3D/PickText3DGeometry.java jdk1.2/demo/java3d/PickText3D/PickText3DGeometry.class jdk1.2/demo/java3d/PlatformGeometry/ jdk1.2/demo/java3d/PlatformGeometry/SimpleGeometry.java jdk1.2/demo/java3d/PlatformGeometry/SimpleGeometry.class jdk1.2/demo/java3d/PureImmediate/ jdk1.2/demo/java3d/PureImmediate/PureImmediate.html jdk1.2/demo/java3d/PureImmediate/PureImmediate.java jdk1.2/demo/java3d/PureImmediate/PureImmediate.class jdk1.2/demo/java3d/ReadRaster/ jdk1.2/demo/java3d/ReadRaster/ReadRaster.java jdk1.2/demo/java3d/ReadRaster/ReadRaster.class jdk1.2/demo/java3d/ReadRaster/myCanvas3D.class jdk1.2/demo/java3d/ReadRaster/myRotationInterpolator.class jdk1.2/demo/java3d/Sound/ jdk1.2/demo/java3d/Sound/SimplerSound.java jdk1.2/demo/java3d/Sound/SimplerSound.class jdk1.2/demo/java3d/Sound/SimpleSounds.java jdk1.2/demo/java3d/Sound/SimpleSounds.class jdk1.2/demo/java3d/Sound/MoveAppBoundingLeaf.java jdk1.2/demo/java3d/Sound/MoveAppBoundingLeaf.class jdk1.2/demo/java3d/Sound/ReverberateSound.java jdk1.2/demo/java3d/Sound/ReverberateSound.class jdk1.2/demo/java3d/Sound/SimpleSoundsBehavior.java jdk1.2/demo/java3d/Sound/SimpleSoundsBehavior.class jdk1.2/demo/java3d/Sound/AudioBehaviorMoveOne.java jdk1.2/demo/java3d/Sound/AudioBehaviorMoveOne.class jdk1.2/demo/java3d/Sound/AudioReverberate.java jdk1.2/demo/java3d/Sound/AudioReverberate.class jdk1.2/demo/java3d/Sound/hello_universe.au jdk1.2/demo/java3d/Sound/README.release jdk1.2/demo/java3d/Sound/roar.au jdk1.2/demo/java3d/Sound/techno_machine.au jdk1.2/demo/java3d/SphereMotion/ jdk1.2/demo/java3d/SphereMotion/SphereMotion.html jdk1.2/demo/java3d/SphereMotion/SphereMotion.java jdk1.2/demo/java3d/SphereMotion/SphereMotion.class jdk1.2/demo/java3d/SplineAnim/ jdk1.2/demo/java3d/SplineAnim/SplineAnim.java jdk1.2/demo/java3d/SplineAnim/SplineAnim.class jdk1.2/demo/java3d/Text2D/ jdk1.2/demo/java3d/Text2D/MoverBehavior.java jdk1.2/demo/java3d/Text2D/MoverBehavior.class jdk1.2/demo/java3d/Text2D/Text2DTest.java jdk1.2/demo/java3d/Text2D/Text2DTest.class jdk1.2/demo/java3d/Text3D/ jdk1.2/demo/java3d/Text3D/Text3DLoad.java jdk1.2/demo/java3d/Text3D/Text3DLoad.class jdk1.2/demo/java3d/TextureTest/ jdk1.2/demo/java3d/TextureTest/TextureImage.java jdk1.2/demo/java3d/TextureTest/TextureImage.class jdk1.2/demo/java3d/TickTockCollision/ jdk1.2/demo/java3d/TickTockCollision/Box.java jdk1.2/demo/java3d/TickTockCollision/Box.class jdk1.2/demo/java3d/TickTockCollision/CollisionDetector.java jdk1.2/demo/java3d/TickTockCollision/CollisionDetector.class jdk1.2/demo/java3d/TickTockCollision/TickTockCollision.html jdk1.2/demo/java3d/TickTockCollision/TickTockCollision.java jdk1.2/demo/java3d/TickTockCollision/TickTockCollision.class jdk1.2/demo/java3d/TickTockPicking/ jdk1.2/demo/java3d/TickTockPicking/Cube.java jdk1.2/demo/java3d/TickTockPicking/Cube.class jdk1.2/demo/java3d/TickTockPicking/PickHighlightBehavior.java jdk1.2/demo/java3d/TickTockPicking/PickHighlightBehavior.class jdk1.2/demo/java3d/TickTockPicking/Tetrahedron.java jdk1.2/demo/java3d/TickTockPicking/Tetrahedron.class jdk1.2/demo/java3d/TickTockPicking/TickTockPicking.java jdk1.2/demo/java3d/TickTockPicking/TickTockPicking.class jdk1.2/demo/java3d/VirtualInputDevice/ jdk1.2/demo/java3d/VirtualInputDevice/ButtonPositionControls.class jdk1.2/demo/java3d/VirtualInputDevice/ButtonPositionControls.java jdk1.2/demo/java3d/VirtualInputDevice/HelloUniverse.class jdk1.2/demo/java3d/VirtualInputDevice/HelloUniverse.java jdk1.2/demo/java3d/VirtualInputDevice/PositionControls.class jdk1.2/demo/java3d/VirtualInputDevice/PositionControls.java jdk1.2/demo/java3d/VirtualInputDevice/RotationControls.class jdk1.2/demo/java3d/VirtualInputDevice/RotationControls.java jdk1.2/demo/java3d/VirtualInputDevice/SensorBehavior.class jdk1.2/demo/java3d/VirtualInputDevice/SensorBehavior.java jdk1.2/demo/java3d/VirtualInputDevice/VirtualInputDevice.class jdk1.2/demo/java3d/VirtualInputDevice/VirtualInputDevice.java jdk1.2/demo/java3d/VirtualInputDevice/WheelControls.class jdk1.2/demo/java3d/VirtualInputDevice/WheelControls.java jdk1.2/demo/java3d/geometry/ jdk1.2/demo/java3d/geometry/p51_mustang.obj jdk1.2/demo/java3d/geometry/galleon.obj jdk1.2/demo/java3d/images/ jdk1.2/demo/java3d/images/apimage.jpg jdk1.2/demo/java3d/images/bg.jpg jdk1.2/demo/java3d/images/earth.jpg jdk1.2/demo/java3d/images/stone.jpg jdk1.2/demo/java3d/images/ttimage.jpg jdk1.2/java3d-utils-src.jar jdk1.2/README.Java3D-jdk jdk1.2/README.Java3D.linux jdk1.2/LICENSE.Java3D
つぎに、作業用ディレクトリーに出来たjdk1.2
配下のファイルを/usr/lib/java/jdk1.2.2/
にコピーします。
# cp -r jdk1.2/* /usr/lib/java/jdk1.2.2/.
Java 3Dのデモを実行してみます。
$ cd /usr/lib/java/jdk1.2.2/demo/java3d/TextureTest/ $ java TextureImage ../images/bg.jpg
Win32 では、ガベージコレクションのときアニメーションが一瞬止まって
見えるという現象がありましたが、Linux ではこの現象はほとんど気にな
りません。
Linux用のJava 3Dの完成度はかなり高いと思います。