簡體   English   中英

為什么我的屏幕外渲染Canvas3D無法正常工作?

[英]Why does my off screen rendering Canvas3D not work?

我一直在嘗試使用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對象將屏幕外的緩沖區渲染回屏幕上的窗口)。

Screen3D的物理尺寸可能是錯誤的。 該值應為以米為單位的物理屏幕的大小。 您可以測試:

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

這些值來自Screen3D javadoc的頂部。 問題行與上面的代碼一起工作,至少對我來說是這樣:)

設置錯誤的物理尺寸也可能會更改渲染圖像的縱橫比。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM