OPENGL学习视频(十)

来源:互联网 发布:公布经济数据 编辑:程序博客网 时间:2024/05/17 23:20
添加Camera.h
#pragma once
class Camera
{
  public:
      Camera(const glm::vec3& pos,float fov,float  aspect,float zNear,float zFar)
      {
              this->pos=pos;
              this->forword=glm::vec3(0.0f,0.0f,1.0f);
              this->up=glm::vec3(0.0f,1.0f,1.0f);
              this->projection=glm::perspective(fov,aspect,zNear,zFar);
      }
     ~Camera();
  private:
      glm::mat4  projection;
      gm::vec3   pos;
      glm::vec3  forword;
      glm::vec3  up;
}
世界坐标系到照相机坐标系的转换
inline glm::mat4 GetViewProjection()  const
{
     glm::lookAt(pos,pos+forward,up);//第一个参数是脑袋的位置,第二个参数是看物体的方向,第三个参数是头顶的方向  

}

在main.cpp中
#define WIDTH 800
#define HEIGHT 600
Camera  camera(glm::vec3(0,0,-3),70.0f,(float)WIDTH/(float)HEIGHT,0.01F,1000.0f);
在shader中
void Update(const Transform& transform,const Camera& camera)
{
      glm::mat4  model=camera.GetViewProjection()

}
完成照相机坐标系的转换
0 0
原创粉丝点击