我一直在尝试使用Java3D 1.5.2使屏幕外渲染正常工作。在我的源代码中,我一直在尝试附加一个扩展Canvas3D
,它将进行屏幕外渲染SimpleUniverse
,但这样做会破坏渲染:
62. // FOR SOME REASON THIS BREAKS RENDERING
63. universe.getViewer().getView().addCanvas3D(canvas);
完整的源代码有点太大,无法粘贴到 StackOverflow 上,所以我通过 Pastie 在这里提供了它。
第 63 行已被注释掉,并让普通的 Canvas3D 进行屏幕渲染。它将渲染一个立方体并将其显示在JFrame
. 但是,如果您删除评论,屏幕外渲染将导致屏幕上的内容无法渲染。此外,屏幕外渲染将返回 "big black nothing" BufferedImage
。
我想知道如何使屏幕外渲染工作,即将旋转立方体的场景渲染为缓冲图像。我一直在查看 Java3D 提供的屏幕外渲染示例代码,他们也这样做(除了他们使用Raster
对象将屏幕外缓冲区渲染回屏幕窗口之外)。