Tag: glm math

了解glm :: lookAt()

我正在学习一个教程来学习OpenGL,其中他们使用glm::lookAt()函数来构build一个视图,但我无法理解glm::lookAt() ,显然没有详细的GLM文档。 任何人都可以帮我理解glm::lookAt()的参数和工作吗? GLM文件说: detail::tmat4x4<T> glm::gtc::matrix_transform::lookAt ( detail::tvec3< T > const & eye, detail::tvec3< T > const & center, detail::tvec3< T > const & up ) 我目前的理解是,相机位于eye ,面向center 。 (我不知道这是什么)

转换模型matrix

用glm设置ViewMatrix很容易: glm::lookAt(Position, Direction, UpVector); 但如果我尝试使用modelMatrix函数,我会得到comfusing值(模型不在正确的位置,也旋转看起来不正确)。 我只是想设置一个对象相同的方式设置相机。 我可以使用lookat funktion并在之后做一些更改吗? 或者我必须为此编写自己的function? 如果是的话,怎么样? 我用这个固定了位置: m_Orientation = glm::lookAtLH(Position, Direction, UpVector); m_Orientation[3][0] = -m_Orientation[3][0]; m_Orientation[3][1] = -m_Orientation[3][1]; m_Orientation[3][2] = -m_Orientation[3][2]; 也在vertexshader里面我使用这个: gl_Position = CameraMatrix * ModelMatrix * Pos; 其中CameraMatrix是一个viewProjectionMatrix,ModelMatrix(我的问题)和Pos是我的顶点在模型空间的位置