我正在使用 python 的 cgkit Mat44.lookat 方法,我想知道它是否正确实现。我写了作者,但到目前为止没有得到答复。我的问题可能很愚蠢,但我真的很想了解我的程序出了什么问题。
如果我做 :
camera_to_world_matrix = mat4.lookAt(eye=vec3(0,0,1), target=vec3(0,0,-3), up=vec3(0,1,0))
world_to_camera_matrix = camera_to_world_matrix.inverse()
pos_in_camera_space = world_to_camera_matrix * vec3(0,0,-10)
在我看来,pos_in_camera_space
应该等于vec3(0,0,-11)
:两个位置之间的距离是 11 个单位,因为我们是在右手系统中,所以相机看向 z 轴的负部分。
但我明白vec3(0,0,11)
了,我不明白为什么。
编辑:我使用 OpenGl3,因此使用着色器。