我一直在努力使屏幕渲染工作,使用Java3D 1.5.2。在我source code我一直在試圖附加擴展Canvas3D
,會做離屏渲染SimpleUniverse
,但是這樣做會破壞渲染:爲什麼我的屏幕渲染Canvas3D不起作用?
62. // FOR SOME REASON THIS BREAKS RENDERING
63. universe.getViewer().getView().addCanvas3D(canvas);
完整的源代碼是有點太大,粘貼StackOverflow,所以我通過Pastie通過here提供。
第63行已被註釋掉,並有普通的Canvas3D在屏幕上呈現。它將渲染一個立方體並將其顯示在JFrame
中。但是,如果您刪除了註釋,那麼屏幕外渲染將導致屏幕上的不渲染。此外,屏幕渲染將返回一個「大黑什麼都沒有」BufferedImage
。
我想知道如何進行屏幕外渲染工作,即將旋轉的多維數據集的場景渲染爲緩衝圖像。我一直在研究Java3D提供的用於離屏渲染的示例代碼,並且它們也是這樣做的(除了它們使用Raster
對象來將屏幕外緩衝區渲染回屏幕窗口)。
甜,它的作品!順便問一句,你到底需要做些什麼才能讓程序退出。它仍然在運行,即使渲染完成,就好像一些資源仍在運行一樣,我不能把手指放在它正在做的地方。 (我打電話給universe.cleanup(),但似乎不夠)。那之後我會接受答案。 – Spoike 2009-09-03 07:07:35
我會嘗試.dispose()所有框架。如果這不起作用,然後調用System.exit(0),這會殺死jvm。如果你需要jvm繼續運行,那麼需要更多的研究:) – Melv 2009-09-03 07:41:33
是的,我想通過使用System.exit(0),但我不需要任何更優雅的東西,所以沒關係。謝謝。 – Spoike 2009-09-03 07:42:46