我需要为 OpenGL LWJGL使用 Java 包装器开发应用程序.该应用程序将以无头模式在远程服务器上运行。考虑到LWJGL(和其他API)中的GL上下文是通过Canvas等Java UI元素创建的事实,我试图了解是否以及如何可能。在我的情况下,我需要能够在不创建窗口的情况下初始化 GL 上下文,因为绘图目标将是像素缓冲区将从其渲染到纹理的 FBO。虽然已经在 LWJGL 中调用了 PBuffer(我猜是像素缓冲区)对象,但有一种可能的解决方案。它确实不需要通过窗口创建的 GL 上下文,因为它在内部创建它。我不想同时使用这种方法,因为它比较旧概念(并且更弱)比帧缓冲区对象,并且因为我使用的是 OGL 3.3 -> 。所以我真的不想与任何旧的管道遗留混合。
我基本上有两个问题:
1.我可以在不设置用于基于 FBO 的渲染的窗口的情况下创建上下文(无头模式)吗?
2.如果第一个问题的答案是否定的,那么我是否可以在远程服务器上运行这样一个为了上下文访问而仍在初始化窗口的应用程序?
更新:这个问题可以结束了。我通过使用 PBuffers 完成的第一次初始化测试它以设置上下文。然后 FBO 渲染按预期工作。