From 8350b85aa1230bfaff3c97685b72c8389a7de223 Mon Sep 17 00:00:00 2001 From: k Date: Wed, 9 Apr 2025 09:41:04 -0400 Subject: [PATCH] Added 2nd texture and removed rgb --- shaders/MVPTexNoRGBVert.glsl | 15 +++++++++++++++ shaders/TexNoRGBFrag.glsl | 12 ++++++++++++ src/main.cpp | 20 ++++++++++++-------- 3 files changed, 39 insertions(+), 8 deletions(-) create mode 100644 shaders/MVPTexNoRGBVert.glsl create mode 100644 shaders/TexNoRGBFrag.glsl diff --git a/shaders/MVPTexNoRGBVert.glsl b/shaders/MVPTexNoRGBVert.glsl new file mode 100644 index 0000000..9f20f08 --- /dev/null +++ b/shaders/MVPTexNoRGBVert.glsl @@ -0,0 +1,15 @@ +#version 330 core +layout (location = 0) in vec3 aPos; +layout (location = 1) in vec2 aTexCoord; + +out vec2 TexCoord; + +uniform mat4 model; +uniform mat4 view; +uniform mat4 projection; + +void main() +{ + gl_Position = projection * view * model * vec4(aPos, 1.0); + TexCoord = aTexCoord; +} diff --git a/shaders/TexNoRGBFrag.glsl b/shaders/TexNoRGBFrag.glsl new file mode 100644 index 0000000..c2cb536 --- /dev/null +++ b/shaders/TexNoRGBFrag.glsl @@ -0,0 +1,12 @@ +#version 330 core +out vec4 FragColor; + +in vec3 ourColor; +in vec2 TexCoord; + +uniform sampler2D tex0; + +void main() +{ + FragColor = texture(tex0, TexCoord); +} diff --git a/src/main.cpp b/src/main.cpp index cbfba97..65f806c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -48,20 +48,20 @@ int main(void) { GL_STATIC_DRAW); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(float), (void *)0); - glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(float), (void *)0); - glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 5 * sizeof(float), + glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 5 * sizeof(float), (void *)(3 * sizeof(float))); glEnableVertexAttribArray(0); /*pos*/ - glEnableVertexAttribArray(1); /*rgb*/ - glEnableVertexAttribArray(2); /*tex_cord*/ + glEnableVertexAttribArray(1); /*tex_cord*/ - Shader *shaderProgram = - new Shader("./shaders/MVPTexVert.glsl", "./shaders/TexFrag.glsl"); + Shader *shaderProgram = new Shader("./shaders/MVPTexNoRGBVert.glsl", + "./shaders/TexNoRGBFrag.glsl"); Texture *texture = new Texture(GL_TEXTURE_2D, "./texture/container.jpg"); + Texture *texture2 = new Texture(GL_TEXTURE_2D, "./texture/brick.jpg"); - Camera *cam = new Camera(glm::vec3(0.0, 0.0, 5.0),-90.0f, 0.0f,45.0,800.0/600); + Camera *cam = + new Camera(glm::vec3(0.0, 0.0, 5.0), -90.0f, 0.0f, 45.0, 800.0 / 600); while (!glfwWindowShouldClose(window)) { @@ -72,12 +72,16 @@ int main(void) { shaderProgram->setInt("Tex0", 0); shaderProgram->setMat4("view", cam->getView()); shaderProgram->setMat4("projection", cam->getProjection()); - texture->bind(GL_TEXTURE0); glBindVertexArray(VAO); glEnable(GL_DEPTH_TEST); for (unsigned int i = 0; i < 10; i++) { + if (i % 2 == 0) { + texture->bind(GL_TEXTURE0); + } else { + texture2->bind(GL_TEXTURE0); + } glm::mat4 model = glm::mat4(1.0f); model = glm::translate(model, cubePositions[i]);