// Camera.h
#ifndef CAMERA_H_
#define CAMERA_H_
#include "Math.h"
class Camera
{
private:
Vector3 direction ; // 朝向
float aspectRatio ; // 宽高比
public:
Vector3 position ; // 位置
// 根据视距和水平视域,宽高比,来确定的近裁剪面尺寸
float nearLeft ;
float nearRight ;
float nearBottom ;
float nearTop ;
float nearDistance ;
float farDistance ;
float fov ;
float yzFov ; // yz平面视域角
float viewPortWidth ; // 视口宽度
float viewPortHeight ; // 视口高度
Matrix4X4 toClip ; // 相机空间变换到裁剪空间
Matrix4X4 toOriginInverse ; // 相机变换到局部坐标轴与世界坐标轴重合用到的矩阵
Camera(float fov, float viewPortWidth, float viewPortHeight) ;
~Camera() ;
// 更新摄像机参数
void Update(float nearDistance, float farDistance, float yzFov, float screenWidth, float screenHeight) ;
void Strafe(float unit) ; // 左右
void Fly(float unit) ; // 上下
void Walk(float unit) ; // 前后
void BuildWroldToCameraMatrix() ;
void BuildCameraToClipMatrix() ;
} ;
#endif
Camera.h
最新推荐文章于 2023-08-22 14:52:08 发布