小编Hen*_*ble的帖子

OpenGL正交投影

我正在尝试在OpenGL中设置正交投影,但似乎无法找到为什么这个三角形无法正确渲染(它不可见).我使用相同代码的透视投影(当然除了我的顶点坐标和投影矩阵)并且它工作正常.我将三角形顶点构造为:

Vertex vertices[] = { Vertex(glm::vec3(0, 600, 0.0),        glm::vec2(0.0, 0.0)),
                      Vertex(glm::vec3(300, 0, 0.0),        glm::vec2(0.5, 1.0)),
                      Vertex(glm::vec3(800 , 600, 0.0),     glm::vec2(1.0, 0.0)) };
Run Code Online (Sandbox Code Playgroud)

我的相机构造函数是:

Camera::Camera(const glm::vec3& pos, int width, int height) {

    ortho = glm::ortho(0, width, height, 0, 0, 1000);
    this->position = pos;
    this->up = glm::vec3(0.0f, 1.0f, 0.0f);
    this->forward = glm::vec3(0.0f, 0.0f, 1.0f);

}
Run Code Online (Sandbox Code Playgroud)

我称之为:

camera = Camera(glm::vec3(0, 0, 2), window->getSize().x, window->getSize().y);
Run Code Online (Sandbox Code Playgroud)

窗口是800乘600像素.我通过函数将变换上传到着色器:

 void Shader::update(const Transform& transform, const Camera& camera) {

     glm::mat4 model = camera.getProjection() * transform.getModel();

     glUniformMatrix4fv(uniforms[TRANSFORM_U], 1, GL_FALSE, &model[0][0]); …
Run Code Online (Sandbox Code Playgroud)

c++ opengl

8
推荐指数
1
解决办法
9966
查看次数

标签 统计

c++ ×1

opengl ×1