WaterShader.java 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package eu.tankernn.gameEngine.renderEngine.water;
  2. import eu.tankernn.gameEngine.renderEngine.shaders.ShaderProgram;
  3. import eu.tankernn.gameEngine.renderEngine.shaders.UniformFloat;
  4. import eu.tankernn.gameEngine.renderEngine.shaders.UniformMatrix;
  5. import eu.tankernn.gameEngine.renderEngine.shaders.UniformSampler;
  6. import eu.tankernn.gameEngine.renderEngine.shaders.UniformVec3;
  7. import eu.tankernn.gameEngine.renderEngine.shaders.UniformViewMatrix;
  8. public class WaterShader extends ShaderProgram {
  9. private final static String VERTEX_FILE = "/eu/tankernn/gameEngine/renderEngine/water/waterVertex.glsl";
  10. private final static String FRAGMENT_FILE = "/eu/tankernn/gameEngine/renderEngine/water/waterFragment.glsl";
  11. protected UniformMatrix modelMatrix = new UniformMatrix("modelMatrix");
  12. protected UniformViewMatrix viewMatrix = new UniformViewMatrix("viewMatrix");
  13. protected UniformMatrix projectionMatrix = new UniformMatrix("projectionMatrix");
  14. protected UniformSampler reflectionTexture = new UniformSampler("reflectionTexture");
  15. protected UniformSampler refractionTexture = new UniformSampler("refractionTexture");
  16. protected UniformSampler dudvMap = new UniformSampler("dudvMap");
  17. protected UniformFloat moveFactor = new UniformFloat("moveFactor");
  18. protected UniformVec3 cameraPosition = new UniformVec3("cameraPosition");
  19. protected UniformSampler normalMap = new UniformSampler("normalMap");
  20. protected UniformSampler depthMap = new UniformSampler("depthMap");
  21. public WaterShader() {
  22. super(VERTEX_FILE, FRAGMENT_FILE, "position");
  23. super.getLightUniformLocations();
  24. super.storeAllUniformLocations(modelMatrix, viewMatrix, projectionMatrix, reflectionTexture, refractionTexture,
  25. dudvMap, moveFactor, cameraPosition, normalMap, depthMap);
  26. }
  27. public void connectTextureUnits() {
  28. reflectionTexture.loadTexUnit(0);
  29. refractionTexture.loadTexUnit(1);
  30. dudvMap.loadTexUnit(2);
  31. normalMap.loadTexUnit(3);
  32. depthMap.loadTexUnit(4);
  33. }
  34. }