なぜ私のオフスクリーンレンダリングは動作しませんCanvas3D?
-
20-09-2019 - |
質問
私が使用して、動作するように画面のレンダリングをオフにするために Java3Dの1.5.2 にしようとしてきました。私は、オフスクリーンCanvas3D
するレンダリングを行います拡張SimpleUniverse
を添付しようとしてきたの私のソースコードでしかし壊れるそうするレンダリングます:
62. // FOR SOME REASON THIS BREAKS RENDERING
63. universe.getViewer().getView().addCanvas3D(canvas);
完全なソースコードは、私は上Pastieを経由して、それが利用可能にStackOverflowの上に貼り付けるには少し大きすぎます>。
ライン63はコメントアウトと普通Canvas3Dは、画面上のレンダリングを行う持ってきました。これは、キューブをレンダリングしJFrame
でこれを表示します。しかし、あなたがコメントを削除する場合は、オフスクリーンレンダリングレンダリングではないから、画面上の1の原因となります。また、オフスクリーンレンダリングは「大きな黒い何も」BufferedImage
を返します。
私は、すなわち、オフスクリーンレンダリングの仕事を作る方法を知っているバッファリングされたイメージに回転キューブのシーンをレンダリングしたいと思います。 Java3Dのは、オフスクリーンレンダリングのためのサンプルコードを提供で私が見てきたし、彼らは(彼らは画面上のウィンドウに戻ってオフスクリーンバッファをレンダリングするRaster
オブジェクトを使用することを除いて)だけでなく、このようにそれを行います。
解決
これは間違っているScreen3Dの物理的寸法であるかもしれません。値はメートル単位で物理画面の大きさになっています。あなたがしてテストすることができます:
screen3D.setPhysicalScreenWidth(0.0254/90.0 * destWidth);
screen3D.setPhysicalScreenHeight(0.0254/90.0 * destHeight);
の値は、Screen3D Javadocの上からです。問題の行は、
:)少なくとも私のために、上記のコードと一緒に働いまた、レンダリングされた画像のアスペクト比を変更することが間違った物理的寸法を設定します。