您的位置:首页 > 运维架构

OPENGL学习视频(十)

2016-11-06 18:52 204 查看
添加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()

}
完成照相机坐标系的转换
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息