相机 观察空间(Camera/View Space)

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了相机 观察空间(Camera/View Space)相关的知识,希望对你有一定的参考价值。

  1. 相机是什么?

以摄像机的视角作为场景原点时场景中所有的顶点坐标:观察矩阵把所有的世界坐标变换为相对于摄像机位置与方向的观察坐标。

位置、观察的方向、一个指向它右侧的向量以及一个指向它上方的向量。细心的读者可能已经注意到我们实际上创建了一个三个单位轴相互垂直的、以摄像机的位置为原点的坐标系

//方向向量(Direction Vector): 指向摄像机的z轴正方向
glm::vec3 cameraTarget = glm::vec3(0.0f, 0.0f, 0.0f);
glm::vec3 cameraDirection = glm::normalize(cameraPos - cameraTarget);
 
//上轴
glm::vec3 up = glm::vec3(0.0f, 1.0f, 0.0f); 

// 右向量(Right Vector):  代表摄像机空间的x轴的正方向
glm::vec3 cameraRight = glm::normalize(glm::cross(up, cameraDirection));

//相机:上向量(Up Vector)和方向向量进行叉乘。
glm::vec3 cameraUp = glm::cross(cameraDirection, cameraRight);

以上是关于相机 观察空间(Camera/View Space)的主要内容,如果未能解决你的问题,请参考以下文章

相机 观察空间(Camera/View Space)

相机 观察空间(Camera/View Space)

Clip Space、NDC、Screen Space

WebGL5---三维空间的观察

如何使用 Android Java Camera View 模块创建自定义 React Native 组件?

实现一个复杂的基于旋转的相机