使用Pygame + PyOpenGL,绘制到Surface而不是直接显示?

时间:2017-03-06 04:58:34

标签: python python-3.x opengl pygame

我正在制作低保真,低分辨率(1024x576)的游戏,我希望我能够完成超级采样(在2048x1152渲染游戏然后按比例缩小),而不是正确的抗锯齿。

麻烦的是,我没有看到任何方法将OpenGL命令渲染到内存表面而不是显示表面。有办法吗?

2 个答案:

答案 0 :(得分:0)

使用https://www.pygame.org/docs/ref/surface.html#pygame.Surface.blit你可以做image.blit(image2)并使用你想要的任何特殊标志

答案 1 :(得分:0)

不要忘记:显示对象继承自Surfaces。所以你可以将屏幕blit到另一个Surface并缩小它!使用相应模块创建子流程,使用dummy视频驱动程序初始化Display(如headless_no_windows_needed.py Pygame示例中所示),使用PixelArray将Surface转换为简单列表,通过IPC,将其接收到主进程,并将其blit到没有OPENGL标志的Display。您也可以使用FBO。