提问人:ShayneM 提问时间:4/23/2020 最后编辑:genpfaultShayneM 更新时间:4/23/2020 访问量:123
我可以在本地 Wamp 服务器上使用 OpenGL 吗?
Can I use OpenGL on a local Wamp server?
问:
我的项目由一个网站组成,用户在其中输入一个音乐XML文件,并接收基于该XML文件的视频(类似于合成)。我正在使用 python 解析 XML 文件并获取所有有用的信息。有了这些信息,我正在使用带有 glut 的 PyOpenGL 来创建动画,并使用 OpenCV 将每一帧保存到视频中。
我能够在本地运行该程序并且它可以工作。现在我正在尝试在我的 Wamp 服务器中使用该程序。所以我的问题是,我该如何去做?我的计划是用PHP调用程序,但似乎什么也没发生。我已经在返回字符串并且有效的简单测试文件上进行了测试。我做了一些研究,发现我可以使用 xvfb 进行无头服务器渲染。知道如何使用 PyOpenGL/Glut 实现这一点吗?另外,是否可以使用 PHP,或者我应该使用其他东西来调用我的 Python 程序?shell_exec()
shell_exec()
shell_exec()
答:
首先,决定您是否需要/想要 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 上可以找到一个示例项目
评论