私はJava3D 1.5.2を使用して画面レンダリングを動作させようとしています。私のsource codeでは、私はSimpleUniverse
にオフスクリーンレンダリングを行います拡張Canvas3D
を添付しようとしてきたが、これは破壊されるレンダリング:オフスクリーンレンダリングCanvas3Dが機能しないのはなぜですか?
62. // FOR SOME REASON THIS BREAKS RENDERING
63. universe.getViewer().getView().addCanvas3D(canvas);
完全なソースコードは、上のペーストには少し大きすぎますStackOverflowので、Pastie経由でhere以上で利用可能にしました。
Line 63はコメントアウトされており、通常のCanvas3Dでは画面上のレンダリングが行われています。キューブをレンダリングし、これをJFrame
に表示します。ただし、コメントを削除すると、オフスクリーンレンダリングによってオンスクリーンのレンダリングが行われなくなります。また、オフスクリーンレンダリングは "大きな黒い何も" BufferedImage
を返します。
私はオフスクリーンレンダリング作業を行う方法、つまり、回転したキューブのシーンをバッファリングされたイメージにレンダリングする方法を知りたいと思います。私はJava3Dでオフスクリーン描画のサンプルコードを提供してきましたが、オフスクリーンバッファをスクリーン上のウィンドウに戻すためにはRaster
オブジェクトを使用する点を除いて同様です。
甘い、それは動作します! Btwは、プログラムを終了させるために私がしなければならないことをしています。あたかもリソースがまだ動いているかのようにレンダリングが実行されても、まだ実行中です。 (私はuniverse.cleanup()を呼び出していますが、十分ではないようです)。私はその答えを受け入れます。 – Spoike
私はすべてのフレームを.dispose()しようとします。それでも動作しない場合は、System.exit(0)を呼び出すと、jvmが終了します。あなたがjvmを実行し続ける必要があるなら、より多くの研究が必要です:) – Melv
ええ、私はSystem.exit(0)を使用して考え出しましたが、それ以上の優雅さは必要ないので大丈夫です。ありがとう。 – Spoike