Я пытался заставить работать рендеринг вне экрана, используя Java3D 1.5.2 . В моем исходном коде я пытался присоединить расширенный Canvas3D
, который будет выполнять внеэкранный рендеринг, к SimpleUniverse
, но это нарушит рендер:
62. // FOR SOME REASON THIS BREAKS RENDERING
63. universe.getViewer().getView().addCanvas3D(canvas);
Полный исходный код слишком велик, чтобы его можно было вставить в StackOverflow, поэтому я сделал его доступным через Pastie через здесь .
Строка 63 была закомментирована и имеет обычную Canvas3D для визуализации на экране. Он отобразит куб и отобразит его в JFrame
. Однако, если вы удалите комментарий, закадровый рендеринг заставит экранный рендеринг не рендериться. Кроме того, закадровый рендеринг вернет «большое черное ничто» BufferedImage
.
Я хотел бы знать, как заставить работать внеэкранный рендеринг, то есть визуализировать сцену повернутого куба в буферизованное изображение. Я смотрел на предоставленный Java3D пример кода для рендеринга за пределами экрана, и они делают это так же (за исключением того, что они используют объект Raster
для рендеринга внеэкранного буфера обратно в экранное окно) .