【问题标题】:How can I draw using pygame, while also drawing with pyopengl?如何使用 pygame 进行绘图,同时使用 pyopengl 进行绘图?
【发布时间】:2021-03-10 02:35:51
【问题描述】:

我有一个用 python 编写的程序,它使用 pygame 和 pyopengl。唯一的问题是,我无法使用 pygame.draw 在屏幕上绘制任何东西,这是我将用于与我的程序交互的东西。我想知道是否有一种方法可以使用pygame的系统进行绘制,同时也可以使用其背后的pyopengl绘制3D。

【问题讨论】:

  • 你不能直接这样做

标签: python pygame pyopengl


【解决方案1】:

你不能直接这样做。

但是,您可以使用pygame.draw 模块或pygame.Surface.blitpygame.Surface 对象上绘图。使用pygame.PixelArray 直接访问表面上的像素。使用像素生成 OpenGL Texture 对象。这个纹理可以在 OpenGL 中使用。

在另一个方向,您可以渲染到 OpenGL RenderbufferTexture 对象(请参阅 Framebuffers)。使用glReadPixelsglGetTexImage 将纹理加载到GPU 上,并使用pygame.image.frombuffer 创建一个pygame.Surface


另请参阅Does PyGame do 3d?PyGame and ModernGL libraryPyGame and OpenGL 4 PyGame and OpenGL immediate mode (Legacy OpenGL)

【讨论】:

  • 我不知道如何获取像素数组并生成纹理对象。有OpenGL函数吗?
  • @ZacharyMilner 当我读到你的问题时,我以为你熟悉 OpenGL。抱歉,但是要解释 OpenGL 中的所有必要步骤对于单个 Stack Overflow 答案来说太宽泛了。我建议阅读一个很好的教程。我最喜欢的是 C++ (LearnOpenGL)。但也有一个适用于 Python 的好方法:Python Opengl
  • 是的,我不太熟悉它,因为我通常使用 2D。我制作了一个非常糟糕的 3D 渲染器,但我可能会尝试制作它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 2012-05-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多