OpenGL Camera 一直围绕原点旋转

OpenGL Camera keeps rotating around the origin

这段代码没有错误,但是当我 运行 代码时,相机没问题,我可以环顾四周等等。我一移动,它就开始围绕它的产卵原点旋转。

相机代码: http://hatebin.com/iiceqotcpu

主要代码mouse_callback

def mouse_callback(window, xpos, ypos):
    global first_mouse,lastX, lastY
    if first_mouse:
        lastX = xpos
        lastY = ypos
        first_mouse = False

    xoffset = xpos - lastX
    yoffset = lastY - ypos

    lastX = xpos
    lastY = ypos

    cam.process_mouse_movement(xoffset, yoffset)

视图矩阵的平移部分应该在旋转部分之前,因为您必须将旋转应用于点的相对位置。

# before
return translation * rotation

# after
return rotation * translation