Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Laborator6::RenderSimpleMesh(Mesh *mesh, Shader *shader, const glm::mat4 & modelMatrix, int tag)
- {
- if (!mesh || !shader || !shader->GetProgramID())
- return;
- // render an object using the specified shader and the specified position
- glUseProgram(shader->program);
- // TODO : get shader location for uniform mat4 "Model"
- int location = glGetUniformLocation(shader->program, "Model");
- // TODO : set shader uniform "Model" to modelMatrix
- glUniformMatrix4fv(location, 1, GL_FALSE, glm::value_ptr(modelMatrix));
- // TODO : get shader location for uniform mat4 "View"
- location = glGetUniformLocation(shader->program, "View");
- // TODO : set shader uniform "View" to viewMatrix
- glm::mat4 viewMatrix = camera->GetViewMatrix();
- glUniformMatrix4fv(location, 1, GL_FALSE, glm::value_ptr(viewMatrix));
- // TODO : get shader location for uniform mat4 "Projection"
- location = glGetUniformLocation(shader->program, "Projection");
- // TODO : set shader uniform "Projection" to projectionMatrix
- glUniformMatrix4fv(location, 1, GL_FALSE, glm::value_ptr(projectionMatrix));
- // Draw the object
- glBindVertexArray(mesh->GetBuffers()->VAO);
- glDrawElements(mesh->GetDrawMode(), static_cast<int>(mesh->indices.size()), GL_UNSIGNED_SHORT, 0);
- glUniformMatrix4fv(shader->loc_view_matrix, 1, GL_FALSE, glm::value_ptr(camera->GetViewMatrix()));
- glUniformMatrix4fv(shader->loc_projection_matrix, 1, GL_FALSE, glm::value_ptr(projectionMatrix));
- glUniformMatrix4fv(shader->loc_model_matrix, 1, GL_FALSE, glm::value_ptr(modelMatrix));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement