我可以在本地 Wamp 服务器上使用 OpenGL 吗?

Can I use OpenGL on a local Wamp server?

提问人:ShayneM 提问时间:4/23/2020 最后编辑:genpfaultShayneM 更新时间:4/23/2020 访问量:123

问:

我的项目由一个网站组成,用户在其中输入一个音乐XML文件,并接收基于该XML文件的视频(类似于合成)。我正在使用 python 解析 XML 文件并获取所有有用的信息。有了这些信息,我正在使用带有 glut 的 PyOpenGL 来创建动画,并使用 OpenCV 将每一帧保存到视频中。

我能够在本地运行该程序并且它可以工作。现在我正在尝试在我的 Wamp 服务器中使用该程序。所以我的问题是,我该如何去做?我的计划是用PHP调用程序,但似乎什么也没发生。我已经在返回字符串并且有效的简单测试文件上进行了测试。我做了一些研究,发现我可以使用 xvfb 进行无头服务器渲染。知道如何使用 PyOpenGL/Glut 实现这一点吗?另外,是否可以使用 PHP,或者我应该使用其他东西来调用我的 Python 程序?shell_exec()shell_exec()shell_exec()

python opengl 服务器 pyopengl

评论


答:

0赞 datenwolf 4/23/2020 #1

首先,决定您是否需要/想要 GPU 加速。如果您的目标系统甚至没有 GPU,那么尝试磨练 GPU 加速的 OpenGL 上下文创建几乎没有用处。

接下来,您应该接受,您将无法再使用 GLUT,因为 GLUT 在实现时考虑了创建屏幕窗口。

如果您可以在没有 GPU 的情况下生活并依赖软件光栅化,您应该研究 OSMesa https://mesa3d.org/osmesa.html

如果您需要 GPU 加速,请检查您将在哪个 GPU 上运行。如果它是 NVidia 的,请查看他们的优秀博客,了解如何使用 EGL 创建无头渲染上下文 https://devblogs.nvidia.com/egl-eye-opengl-visualization-without-x-server/

如果是 AMD 或 Intel GPU,那么理论上 EGL 也应该可以工作。但是,使用 DRM+GBM 通常会产生更好的结果。在 https://github.com/eduble/gl 上可以找到一个示例项目

评论

0赞 ShayneM 4/24/2020
谢谢你的回答。我对 EGL 和 OSMesa 进行了一些研究,发现使用 EGL 创建无头渲染上下文的大多数示例都是在 Linux/Ubuntu 服务器上使用 C。使用 wamp 服务器而不是 Linux/Ubuntu 服务器会有很大的区别吗?
0赞 datenwolf 4/25/2020
@ShayneM:OSMesa 在 Windows 中的工作方式与在 Linux 中的工作方式几乎相同。然而,无头 OpenGL GPU 加速和 Windows 并不顺利。在 Linux 上已经够难了。但是使用 Vulkan 而不是 OpenGL 会非常简单。事实上,Vulkan 无头渲染不涉及任何与操作系统相关的编程!