我正在製作一個低保真,低分辨率(1024x576)的遊戲,我希望能夠通過超取樣(渲染遊戲在2048x1152然後縮小比例)而不是正確的抗鋸齒來逃脫。使用Pygame + PyOpenGL,繪製到Surface而不是直接顯示?
問題是,我沒有看到任何方式將OpenGL命令渲染到內存表面而不是顯示錶面。有沒有辦法?
我正在製作一個低保真,低分辨率(1024x576)的遊戲,我希望能夠通過超取樣(渲染遊戲在2048x1152然後縮小比例)而不是正確的抗鋸齒來逃脫。使用Pygame + PyOpenGL,繪製到Surface而不是直接顯示?
問題是,我沒有看到任何方式將OpenGL命令渲染到內存表面而不是顯示錶面。有沒有辦法?
使用https://www.pygame.org/docs/ref/surface.html#pygame.Surface.blit你可以做image.blit(圖像2),並使用你想要的任何特殊標誌與
不要忘記:顯示對象從表面繼承。所以你可以將屏幕移動到另一個Surface並縮小它!使用相應的模塊創建一個子進程,使用dummy
視頻驅動程序初始化Display(如headless_no_windows_needed.py
Pygame示例所示),使用PixelArray通過IPC將Surface轉換爲簡單列表,並在主進程中接收它並將其blit沒有OPENGL標誌的顯示器。你也可以使用FBO。
你看過OpenGL中的framebuffer對象(fbos)嗎?您可以創建一個fbo,附加一個紋理,然後使用該紋理,只要你喜歡。如果你仍然爲此苦苦掙扎,我可以寫一個答案。 – CodeSurgeon
即使像這樣的低分辨率,SSAA也很昂貴。你看過OpenGL包含的默認MSAA嗎?另一種選擇可能是基於着色器的方法,如基本模糊圖像邊緣的FXAA。 – CodeSurgeon