- Add face counter in Mesh3D - Switch objects map to std::unique_ptr<Mesh3D> - Update VAO/VBO binding syntax accordingly - Adjust cube rendering logic and camera position - Simplify vertex data, load external model instead of hardcoded vertices - Change main window size to 1000x1000 - Clean up includes and debug prints
45 lines
1.4 KiB
C++
45 lines
1.4 KiB
C++
#include "ShaderProgram.h"
|
|
#include "Texture2D.h"
|
|
#include "engine.h"
|
|
#include "loops.h"
|
|
#include <GL/glew.h>
|
|
#include <GLFW/glfw3.h>
|
|
#include <glm/glm.hpp>
|
|
#include <glm/gtc/matrix_transform.hpp>
|
|
#include <glm/gtc/type_ptr.hpp>
|
|
#include <iostream>
|
|
|
|
|
|
void djalim::cube(GLFWwindow* window, djalim::ShaderProgram shader, Objects3D& objects){
|
|
|
|
shader.use();
|
|
shader.setUniform("ourTexture", 0);
|
|
|
|
(objects["cube"])->texture.bind();
|
|
|
|
//std::cout << &(objects["cube"].texture) << std::endl;
|
|
//textures["cube"].bind();
|
|
|
|
// Matrice de Projection
|
|
glm::mat4 projection = glm::perspective(glm::radians(45.0f), 800.0f / 600.0f, 0.1f, 100.0f);
|
|
shader.setUniform("projection", projection); // Assurez-vous que setUniform pour mat4 est implémenté
|
|
|
|
// Matrice de Vue
|
|
glm::mat4 view = glm::lookAt(glm::vec3(0.0f, 0.0f, 11.0f), // Position caméra
|
|
glm::vec3(0.0f, 2.0f, 0.0f), // Cible
|
|
glm::vec3(0.0f, 1.0f, 0.0f)); // Axe Haut
|
|
shader.setUniform("view", view);
|
|
|
|
// Matrice Modèle
|
|
glm::mat4 model = glm::mat4(1.0f);
|
|
///model = glm::rotate(model, (float)glfwGetTime() * glm::radians(50.0f), glm::vec3(0.5f, 1.0f, 0.0f));
|
|
shader.setUniform("model", model);
|
|
|
|
// Dessiner le cube
|
|
glBindVertexArray((objects["cube"])->VAO);
|
|
glDrawArrays(GL_TRIANGLES, 0, (objects["cube"])->numFaces * 3);
|
|
|
|
//std::cout << objects["cube"].VAO << std::endl;
|
|
|
|
}
|