当前位置: 首页 > 面试题库 >

使用JOGL画图

郎正初
2023-03-14
问题内容

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

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

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


问题答案:

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

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

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

我还应该说答案来自这个论坛,而不是我自己的大脑。



 类似资料:
  • 主要内容:JOGL 使用Swing的Frame,JOGL 使用Swing的Frame 示例JOGL 使用Swing的Frame Swing 是一个轻量级的图形用户界面工具包,用于开发基于窗口的应用程序。java.swing 包为 Swing API 提供了各种类。 现在,我们将通过以下步骤使用 Canvas 和 Swing 创建一个简单的框架:  遵循《JOGL Frame框架》搭建 JOGL 的基本结构。 使用 Swing 的 JFrame 类创建框架。 现在,使用 add() 方法

  • 主要内容:JOGL 使用AWT的Farme,JOGL 使用AWT的Farme 示例JOGL 使用AWT的Farme AWT(Abstract Window Toolkit)是一个应用程序编程接口,用于开发基于窗口的应用程序。AWT 提供的组件重量大且依赖于平台。该java.awt中的包中包含API的各种AWT类。 AWT(Abstract Window Toolkit)是一个应用程序编程接口,用于开发基于窗口的应用程序。AWT 提供的组件重量大且依赖于平台。该java.awt中

  • JOGL 是Java对于OpenGl的绑定(Java Bindings for OpenGL). 示例代码: import net.java.games.jogl.*;public class HelloWorld {   public static void main (String args[]) {       try {         System.loadLibrary("jogl")

  • 主要内容:JOGL 内置Primitive参数, JOGLDisplay() 方法, JOGL Primitive绘制线 示例, 作为一个开放的图形库,我们可以在 JOGL 中绘制不同的形状,如圆形、三角形、正方形。因此,为了绘制这些形状,Open GL 提供了有助于 JOGL 绘制 2D 和 3D 尺寸图形的基元。 OpenGL Primitive 提供了各种内置参数,根据这些参数可以绘制不同的形状。每个参数在绘制图形中都有一些特定的作用。 JOGL 内置Primitive参数 以下是 JOG

  • 主要内容:JOGL GLCanvas 类,JOGL GLJPanel 类,JOGL GLCapibilities类 在本节中,我们将了解 JOGL 提供的类。通过这些类,我们可以在Java代码中添加OpenGL的功能。 以下是 JOGL 提供的重要类: GLCanvas 和 GLJPanel 类是实现 GLAutoDrawable 接口并用作 Open GL 命令的绘图表面的 GUI 类。 GLCanvas 类 GLJPanel 类 GLProfile 类 GLCapabilities 类 JO

  • 主要内容:JOGL GLEventListener 接口,JOGL GLEventListener 方法,JOGL GLAutoDrawable 接口,JOGL GLAutoDrawable 方法要创建一个JOGL程序,需要了解以下接口: GLEventListener 接口 GLAutodrawable 接口 JOGL GLEventListener 接口 GLEventListener 接口存在于javax.media.opengl包中。它提供了一种基于事件的机制来执行 OpenGL 渲染。