Dandelion 1.1.1
A light-weight 3D builder for educational usage
|
表示观察点的相机,既可以用于预览视角,也可以用于渲染视角。 更多...
#include <camera.h>
Public 成员函数 | |
Camera (const Eigen::Vector3f &position, const Eigen::Vector3f &target, float near_plane=0.1f, float far_plane=10.0f, float fov_y_degrees=45.0f, float aspect_ratio=1.33f) | |
Eigen::Matrix4f | view () |
Eigen::Matrix4f | projection () |
Public 属性 | |
Eigen::Vector3f | position |
Eigen::Vector3f | target |
float | near_plane |
float | far_plane |
float | fov_y_degrees |
float | aspect_ratio |
Eigen::Vector3f | world_up |
表示观察点的相机,既可以用于预览视角,也可以用于渲染视角。
这个类封装了从观察点、按一定视角去观察目标点的功能,可以完成相应的几何计算, 包括观察矩阵和投影矩阵 (view & projection matrix)。 预览场景中相机的显示不由 Camera 类自己负责,它的功能只是存储参数并构造变换矩阵。 Dandelion 工作于渲染模式下时,Scene 对象将主动渲染一个相机视锥。
Camera::Camera | ( | const Eigen::Vector3f & | position, |
const Eigen::Vector3f & | target, | ||
float | near_plane = 0.1f, | ||
float | far_plane = 10.0f, | ||
float | fov_y_degrees = 45.0f, | ||
float | aspect_ratio = 1.33f ) |
position | 相机位置(观察点) |
target | 相机指向的目标点 |
near_plane | 可视范围近平面到观察坐标系原点的距离(正值) |
far_plane | 可视范围远平面到观察坐标系原点的距离(正值) |
fov_y_degrees | 高度方向(Y 方向)的视角大小,单位是角度 |
aspect_ratio | 宽高比,即视角的宽度 / 高度 |
Matrix4f Camera::projection | ( | ) |
获取该相机的 Projection 矩阵,对应投影变换。
Matrix4f Camera::view | ( | ) |
获取该相机的 View 矩阵,对应观察变换。
float Camera::aspect_ratio |
可视范围的宽度与高度之比。
float Camera::far_plane |
可视范围远平面到观察坐标系原点的距离(正值)。
float Camera::fov_y_degrees |
Y 方向(上下)的视角大小。
float Camera::near_plane |
可视范围近平面到观察坐标系原点的距离(正值)。
Eigen::Vector3f Camera::position |
相机的位置(视点)。
Eigen::Vector3f Camera::target |
相机看向的位置(目标点)。
Eigen::Vector3f Camera::world_up |
世界坐标系中的“上”方向向量,用于求相机坐标系的正交基。