EntityShader.java 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package eu.tankernn.gameEngine.renderEngine.entities;
  2. import eu.tankernn.gameEngine.shaders.ShaderProgram;
  3. import eu.tankernn.gameEngine.shaders.UniformBoolean;
  4. import eu.tankernn.gameEngine.shaders.UniformFloat;
  5. import eu.tankernn.gameEngine.shaders.UniformMatrix;
  6. import eu.tankernn.gameEngine.shaders.UniformSampler;
  7. import eu.tankernn.gameEngine.shaders.UniformVec2;
  8. import eu.tankernn.gameEngine.shaders.UniformVec3;
  9. import eu.tankernn.gameEngine.shaders.UniformVec4;
  10. import eu.tankernn.gameEngine.shaders.UniformViewMatrix;
  11. public class EntityShader extends ShaderProgram {
  12. private static final String VERTEX_FILE = "/eu/tankernn/gameEngine/renderEngine/entities/vertexShader.glsl";
  13. private static final String FRAGMENT_FILE = "/eu/tankernn/gameEngine/renderEngine/entities/fragmentShader.glsl";
  14. protected UniformMatrix transformationMatrix = new UniformMatrix("transformationMatrix");
  15. protected UniformMatrix projectionMatrix = new UniformMatrix("projectionMatrix");
  16. protected UniformViewMatrix viewMatrix = new UniformViewMatrix("viewMatrix");
  17. protected UniformFloat shineDamper = new UniformFloat("shineDamper");
  18. protected UniformFloat reflectivity = new UniformFloat("reflectivity");
  19. protected UniformBoolean useFakeLighting = new UniformBoolean("useFakeLighting");
  20. protected UniformVec3 skyColor = new UniformVec3("skyColor");
  21. protected UniformFloat numberOfRows = new UniformFloat("numberOfRows");
  22. protected UniformVec2 offset = new UniformVec2("offset");
  23. protected UniformVec4 plane = new UniformVec4("plane");
  24. protected UniformMatrix toShadowMapSpace = new UniformMatrix("toShadowMapSpace");
  25. protected UniformSampler shadowMap = new UniformSampler("shadowMap");
  26. protected UniformSampler specularMap = new UniformSampler("specularMap");
  27. protected UniformBoolean usesSpecularMap = new UniformBoolean("usesSpecularMap");
  28. protected UniformSampler modelTexture = new UniformSampler("modelTexture");
  29. protected UniformVec3 cameraPosition = new UniformVec3("cameraPosition");
  30. protected UniformSampler enviroMap = new UniformSampler("enviroMap");
  31. public EntityShader() {
  32. super(VERTEX_FILE, FRAGMENT_FILE, "position", "textureCoords", "normal");
  33. super.getLightUniformLocations();
  34. super.storeAllUniformLocations(transformationMatrix, projectionMatrix, viewMatrix, shineDamper, reflectivity,
  35. useFakeLighting, skyColor, numberOfRows, offset, plane, toShadowMapSpace, shadowMap, specularMap,
  36. usesSpecularMap, modelTexture, cameraPosition, enviroMap);
  37. }
  38. public void connectTextureUnits() {
  39. shadowMap.loadTexUnit(5);
  40. modelTexture.loadTexUnit(0);
  41. specularMap.loadTexUnit(1);
  42. enviroMap.loadTexUnit(10);
  43. }
  44. }