Advertisement
Guest User

ModelRenderer

a guest
Aug 22nd, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. package bogo.kaayo.graphics.model;
  2.  
  3. import bogo.kaayo.Rb;
  4. import bogo.kaayo.graphics.Camera;
  5. import bogo.kaayo.graphics.shaders.Shader;
  6.  
  7. public class ModelRenderer{
  8. private Camera cam;
  9. private Model model;
  10. private Shader shader;
  11.  
  12. public void begin(Camera cam){
  13. this.cam = cam;
  14. Rb.GL20.glEnable(Rb.GL20.GL_DEPTH_TEST);
  15. Rb.GL20.glEnable(Rb.GL20.GL_CULL_FACE);
  16. //Rb.GL20.glCullFace(Rb.GL20.GL_FRONT);
  17. }
  18.  
  19. public void render(ModelEntity entity){
  20. model = entity.model;
  21. shader = model.getShader();
  22.  
  23. shader.start();
  24.  
  25. shader.loadAttribute("vertices",3,Rb.GL20.GL_FLOAT,Rb.D3D*Rb.FLOAT_SIZE_BYTES,model.getMesh().vertexBuffer);
  26. shader.loadAttribute("textures",3,Rb.GL20.GL_FLOAT,Rb.D3D*Rb.FLOAT_SIZE_BYTES,model.getMesh().textureBuffer);
  27. shader.loadAttribute("normals",3,Rb.GL20.GL_FLOAT,Rb.D3D*Rb.FLOAT_SIZE_BYTES,model.getMesh().normalBuffer);
  28.  
  29. shader.loadUniformMatrix4("transformation",entity.getTransformationMatrix());
  30. shader.loadUniformMatrix4("projection",cam.projection);
  31. shader.loadUniformMatrix4("view",cam.getInverted());
  32. shader.loadUniformVector3("lightPos",entity.light.getLightPosition());
  33.  
  34. Rb.GL20.glDrawElements(Rb.GL20.GL_TRIANGLES,entity.model.getMesh().indices.length,Rb.GL20.GL_UNSIGNED_SHORT,entity.model.getMesh().indexBuffer);
  35. shader.stop();
  36.  
  37. shader = null;
  38. model = null;
  39. }
  40.  
  41. public void end(){
  42. cam = null;
  43. Rb.GL20.glDisable(Rb.GL20.GL_DEPTH_TEST);
  44. Rb.GL20.glDisable(Rb.GL20.GL_CULL_FACE);
  45. }
  46.  
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement