gpt4 book ai didi

java - 为什么我的离屏渲染 Canvas3D 不起作用?

转载 作者:行者123 更新时间:2023-12-01 16:10:43 25 4
gpt4 key购买 nike

我一直在尝试使用 Java3D 1.5.2 使离屏渲染正常工作。 。在我的source code我一直在尝试附加一个扩展的 Canvas3D 来对 SimpleUniverse 进行离屏渲染,但这样做会破坏渲染:

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

完整的源代码有点太大,无法粘贴到 StackOverflow 上,因此我通过 Pastie 通过 here 提供了它。 .

第 63 行已被注释掉,并由普通 Canvas3D 进行屏幕渲染。它将渲染一个立方体并将其显示在 JFrame 中。但是,如果您删除注释,屏幕外渲染将导致屏幕上渲染不渲染。此外,离屏渲染将返回“大黑无”BufferedImage

我想知道如何使离屏渲染工作,即将旋转立方体的场景渲染到缓冲图像。我一直在查看 Java3D 提供的离屏渲染示例代码,他们也这样做(除了他们使用 Raster 对象将离屏缓冲区渲染回一个屏幕窗口)。

最佳答案

可能是 Screen3D 的物理尺寸错误。该值应该是物理屏幕的大小(以米为单位)。您可以使用以下方法进行测试:

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

这些值来自 Screen3D javadoc 的顶部。有问题的行与上面的代码一起工作,至少对我来说:)

设置错误的物理尺寸也可能会改变渲染图像的纵横比。

关于java - 为什么我的离屏渲染 Canvas3D 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1346347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com