Java3d からグラフィックを印刷しようとすると、一部のコンピューター (Intel ベースのグラフィック カード) が印刷時に完全にクラッシュします。この例外があります。
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)
DefaultRenderingErrorListener.errorOccurred:
CONTEXT_CREATION_ERROR: Renderer: Error creating Canvas3D graphics context
graphicsDevice = Win32GraphicsDevice[screen=0]
canvas = visualization.show3D.show.print.OffScreenCanvas3D[canvas0,0,0,3000x2167,invalid]
Java 3D ERROR : OpenGL 1.2 or better is required (GL_VERSION=1.1)
Java Result: 1
OpenGL 1.2 にアップグレードする必要があると言われましたが、確認したところ、既に 1.5 がインストールされています (エラー メッセージは正確ではありません)。
String glVersion = (String)getCanvas3D().queryProperties().get("native.version");
IllegalRenderingStateException をキャッチしようとしましたが、うまくいきません。JVM はいずれにしてもクラッシュします。Intel ベースのグラフィック カードで印刷機能を使用する方法を知っている人はいませんか?