Это мой vertex_shader.glsl с используемым представлением и выводом после запуска кода:
Код: Выделить всё
#version 330 core
layout(location = 0) in vec3 aPos;
uniform mat4 view;
void main() {
gl_Position = view * vec4(aPos, 1.0);
}

Это мой vertex_shader.glsl без матрицы представления и результат после запуска кода:
Код: Выделить всё
#version 330 core
layout(location = 0) in vec3 aPos;
uniform mat4 view;
void main() {
gl_Position = vec4(aPos, 1.0);
}

Код для отображения треугольника:
Код: Выделить всё
Game.cppКод: Выделить всё
Game::Game() {
window = new Window(800, 600, "Omnia");
shader = new Shader("vertex_shader.glsl", "fragment_shader.glsl");
camera = new Camera(glm::vec3(0.0f, 0.0f, 3.0f), glm::vec3(0.0f, 1.0f, 0.0f), -90.0f, 0.0f);
lastFrameTime = 0.0f;
deltaTime = 0.0f;
setupGraphics();
}
void Game::setupGraphics() {
float vertices[] = {
-0.5f, -0.5f, 0.0f, // Bottom-left
0.5f, -0.5f, 0.0f, // Bottom-right
0.0f, 0.5f, 0.0f // Top-center
};
unsigned int VBO;
glGenVertexArrays(1, &VAO);
glGenBuffers(1, &VBO);
glBindVertexArray(VAO);
glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindVertexArray(0);
}
// Function to print a glm::mat4 matrix
void printMatrix(const glm::mat4& matrix) {
for (int row = 0; row < 4; ++row) {
for (int col = 0; col < 4; ++col) {
std::cout getViewMatrix();
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79249237/how-do-you-use-glms-view-matrix[/url]