使用pygame和OpenGL调整窗口大小时的适当行为(透视投影)

我正在尝试重新创建当我使用 pygame 使用 glfw 来管理窗口here时得到的行为,code

我在这里使用 glfw

def window_resize(window,width,height):
    glViewport(0,height)
    projection = pyrr.matrix44.create_perspective_projection_matrix(45,width/height,0.1,100)
    glUniformMatrix4fv(proj_loc,1,GL_FALSE,projection)

现在,使用 pygame

def window_resize(event):
    if event.type == pygame.VIDEORESIZE:
        glViewport(0,event.w,event.h)
        # print(event.w,event.h) # To see if there were changes
        projection = pyrr.matrix44.create_perspective_projection_matrix(45,1.0*event.w/event.h,100)
        glUniformMatrix4fv(proj_loc,projection)
        pygame.display.flip()

我认为这是完全相同的,他们应该这样做,但事实并非如此。我该如何解决?

编辑: 当我调整窗口大小时,我希望可以使用透视投影进行自动调整,但是当我使用pygame时,它将无法正常工作。 Here是一些图片,用来解释我想要的行为和所得到的。

cbleong1 回答:使用pygame和OpenGL调整窗口大小时的适当行为(透视投影)

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3016538.html

大家都在问