使用JOGL画图

作为较大项目的一部分,我试图使用JOGL实施一项将3D渲染导出为位图格式的功能。为此,我们创建了GLJPanel并绘制了所需的场景,然后提取位图。只要系统在屏幕上至少有一个可见窗口,所有这些都可以正常工作-不一定是包含要绘制的面板的窗口。

但是,如果我们尝试在不显示任何窗口的情况下执行此操作,则GLJPanel将不会绘制。逐步遍历JOGL源代码,我发现除非具有有效的对等对象,否则它不会绘制-本质上除非已调用addNotify()。该文档说,仅当面板成为可见窗口层次结构的一部分时,才调用addNotify()。更改为GLCanvas并没有太大区别-失败模式不同。未设置WindowsOnscreenGLDrawable.realized,这意味着lockSurface返回LOCK_SURFACE_NOT_READY,导致makeCurrent()失败。

在如何创建可以创建和导出3D场景而无需使其窗口可见的Java应用程序方面,将提供任何帮助。

回答:

不知道我是否应该回答自己的问题,但是我发现现在可以正常工作。

关键是GLPbuffer,它是屏幕外的GLAutoDrawable,可以在没有可见的组件层次结构的情况下创建。

本文 有助于使其正常工作。在确认其功能正常之前,我将不接受该答案。

以上是 使用JOGL画图 的全部内容, 来源链接: utcz.com/qa/401987.html

回到顶部