0

Java3D 1.5.2を使用して、オフスクリーンレンダリングを機能させようとしています。私のソース コードCanvas3Dでは、オフスクリーン レンダリングを行う拡張を にアタッチしようとしましたSimpleUniverseが、そうするとレンダリングが中断されます。

62.  // FOR SOME REASON THIS BREAKS RENDERING
63.  universe.getViewer().getView().addCanvas3D(canvas);

完全なソース コードは、StackOverflow に貼り付けるには少し大きすぎるため、ここのPasteie から入手できるようにしました。

63 行目はコメント アウトされており、通常の Canvas3D が画面上でレンダリングを行います。立方体をレンダリングし、これをJFrame. ただし、コメントを削除すると、オフスクリーン レンダリングにより、オンスクリーン レンダリングがレンダリングされなくなります。また、オフスクリーン レンダリングは "big black nothing" を返しますBufferedImage

オフスクリーン レンダリングを機能させる方法、つまり、回転した立方体のシーンをバッファ イメージにレンダリングする方法を知りたいです。Java3D が提供するオフスクリーン レンダリング用のサンプル コードを見てきましたが、これも同じように実行されます (Rasterオブジェクトを使用してオフスクリーン バッファをオンスクリーン ウィンドウにレンダリングすることを除いて)。

4

1 に答える 1

1

Screen3D の物理的な寸法が間違っている可能性があります。値は、メートル単位の物理画面のサイズであると想定されています。次の方法でテストできます。

screen3D.setPhysicalScreenWidth(0.0254/90.0 * destWidth);
screen3D.setPhysicalScreenHeight(0.0254/90.0 * destHeight);

値は、Screen3D javadoc の先頭からのものです。問題のある行は、少なくとも私にとっては上記のコードと一緒に機能しました:)

間違った物理寸法を設定すると、レンダリング イメージの縦横比も変わる場合があります。

于 2009-09-02T22:54:44.157 に答える