- 摄像机原理(蓝色L轴是错的,其实是Z轴)
- 代码:1.原点;2.Z轴(注意正则化);3.求右轴(Z轴和坐标系Y轴求叉乘,然后正则化);最后做正交求上轴
- 世界坐标变成视觉坐标
1.lookat矩阵(就是PVM中的View矩阵)(就是图形学里边的View transformation):lookat函数就是求View矩阵的函数其中参数分别为:生相机位置,目标位置,相机方向。
2.过程:定义视锥,正则化图形,先位移后旋转(先位移后旋转的求逆)(TR求逆就是RT,R是正交矩阵)
旋转矩阵是正交矩阵
使用lookat函数
- 让相机绕着圆心旋转(实际上是对View进行修改达到相机不动其他物体绕着相机动)
//动态变化摄像机位置放到while循环里边,for循环外边
float radius = 10.0f; //半径
float camX = sin(glfwGetTime())* radius;
float camZ = cos(glfwGetTime())* radius;
view = glm::lookAt(glm::vec3(camX, 0.0f, camZ)/*相机位置*/,
glm::vec3(0.0f, 0.0f, 0.0f)/*看圆心*/,
glm::vec3(0.0f, 1.0f, 0.0f));
结果: