Opengl — Форма Не Установлена, Несмотря На Правильное Местоположение

  • Автор темы Cypegoopaug82
  • Обновлено
  • 22, Oct 2024
  • #1

Я пытаюсь написать простой рендеринг треугольной сетки с помощью OpenGL.

 
 
 #version 330 core

layout (location = 0) in vec3 vertexPosition_modelspace;
layout (location = 1) in vec3 vertexNormal_modelspace;
layout (location = 2) in vec2 textureCoords_modelspace;

uniform mat4 matModel;

layout(std140) uniform Camera{

mat4 matView;

mat4 matProjection;
};

out vec2 textureCoords;

void main(){    

textureCoords = textureCoords_modelspace;

gl_Position =  matProjection * matView * matModel * vec4(vertexPosition_modelspace, 1.0);
}
 

Это мой код, связанный с униформой. Я убедился в этом glUseProgram(program_) вызывается перед выполнением этого метода.
Также глм::mat4 действительно содержит правильные значения и программа_ имеет значение 3, поэтому оно кажется действительным.
Местоположение отображается как 0

Вот как я называю этот метод:

shader_->BindProgram(); shader_->SetUniformMatrix4("matModel", transformation); texture_->BindTexture(); mesh_->Draw(); texture_->FreeTexture(); shader_->FreeProgram();

Теперь у меня есть простой вершинный шейдер.

void ShaderProgram::SetUniformMatrix4(std::string name, glm::mat4 matrix) { GLint location = glGetUniformLocation(program_, name.c_str()); if (location != -1) { glUniformMatrix4fv(location, 1, GL_FALSE, &matrix[0][0]); } }

Я ничего не вижу на экране, и это основная ошибка.
При отладке с помощью Nvidia-NSight я обнаружил, что все значения, кроме matModel установлены правильно. matModel содержит все нули, поэтому модель не рисуется.

Почему matModel всегда ноль, даже когда я пытаюсь установить форму?

#opengl #шейдер #c++

Cypegoopaug82


Рег
25 Oct, 2024

Тем
70

Постов
181

Баллов
541
  • 26, Oct 2024
  • #2

Кажется, что в опубликованном мной коде нет ничего плохого.

Я удалил свою полную сборку и пересобрал ее, и теперь она работает.

 

Sa4ok


Рег
14 Jul, 2020

Тем
86

Постов
200

Баллов
630
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно