レンダリングにjava3dを使用してJavaで記述された3D地球儀アプリケーションに取り組んでいます。基本的に、開発スナップショットからプログラムファイルディレクトリにファイルをコピーするWindowsインストーラーがあります。develスナップショットからは正常に実行されますが、インストール後に実行すると、次のようになります。
Java 3D ERROR : OpenGL 1.2 or better is required (GL_VERSION=1.1)
javax.media.j3d.IllegalRenderingStateException: GL_VERSION
at javax.media.j3d.NativePipeline.createNewContext(Native Method)
at javax.media.j3d.NativePipeline.createNewContext(NativePipeline.java:2736)
at javax.media.j3d.Canvas3D.createNewContext(Canvas3D.java:4895)
at javax.media.j3d.Canvas3D.createNewContext(Canvas3D.java:2421)
at javax.media.j3d.Renderer.doWork(Renderer.java:895)
at javax.media.j3d.J3dThread.run(J3dThread.java:256)
開発ディレクトリ内のすべてのライブラリとjarを比較しましたが、ファイルはすべてまったく同じであり、欠落しているものはありません。それは最も奇妙なことです。グラフィックドライバを更新しました(ただし、開発スナップショットから問題なく実行されるため、明らかに十分です)。Canvas3Dを作成し、それにColorCubeを追加できる単純なjava3dアプリを作成しました。正常に動作します。Ps私たちの開発スナップショットには、すべてのdll、jar、および実行元のjreが含まれています。すべてのライブラリとjvmのバージョンをログに記録しますが、これらはdevelスナップショットとインストールされたアプリケーションから生成されたログでまったく同じです。java.exe(.. \ jre \ bin \ java.exe)への明示的なパスを使用して実行するため、PATH変数は機能しません。
これをデバッグするためのアイデアを探しています。すべてのGL属性、特にGL_VERSIONを出力する単純なJavaアプリを作成して、2つのセットアップ間の定量化可能な違いを示したいと思います。java3dのドキュメントはそれをカバーしておらず、GL_VERSIONの問題をインターネットで検索するたびに、ドライバーを更新するように指示されています。
ああ、私はNvidia QuadroFX3800カードを持っています。実は2つ。
要約すると...
Q1:java3dアプリケーションのGL_VERSIONをどのように出力しますか?
Q2:一体何が起こっているのですか?