Advertisement
Guest User

Untitled

a guest
Nov 21st, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. void Laborator6::RenderSimpleMesh(Mesh *mesh, Shader *shader, const glm::mat4 & modelMatrix, int tag)
  2. {
  3. if (!mesh || !shader || !shader->GetProgramID())
  4. return;
  5.  
  6. // render an object using the specified shader and the specified position
  7. glUseProgram(shader->program);
  8.  
  9. // TODO : get shader location for uniform mat4 "Model"
  10. int location = glGetUniformLocation(shader->program, "Model");
  11. // TODO : set shader uniform "Model" to modelMatrix
  12. glUniformMatrix4fv(location, 1, GL_FALSE, glm::value_ptr(modelMatrix));
  13. // TODO : get shader location for uniform mat4 "View"
  14. location = glGetUniformLocation(shader->program, "View");
  15. // TODO : set shader uniform "View" to viewMatrix
  16. glm::mat4 viewMatrix = camera->GetViewMatrix();
  17. glUniformMatrix4fv(location, 1, GL_FALSE, glm::value_ptr(viewMatrix));
  18. // TODO : get shader location for uniform mat4 "Projection"
  19. location = glGetUniformLocation(shader->program, "Projection");
  20. // TODO : set shader uniform "Projection" to projectionMatrix
  21. glUniformMatrix4fv(location, 1, GL_FALSE, glm::value_ptr(projectionMatrix));
  22. // Draw the object
  23. glBindVertexArray(mesh->GetBuffers()->VAO);
  24. glDrawElements(mesh->GetDrawMode(), static_cast<int>(mesh->indices.size()), GL_UNSIGNED_SHORT, 0);
  25.  
  26. glUniformMatrix4fv(shader->loc_view_matrix, 1, GL_FALSE, glm::value_ptr(camera->GetViewMatrix()));
  27. glUniformMatrix4fv(shader->loc_projection_matrix, 1, GL_FALSE, glm::value_ptr(projectionMatrix));
  28. glUniformMatrix4fv(shader->loc_model_matrix, 1, GL_FALSE, glm::value_ptr(modelMatrix));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement