float parallaxScale = 0.05f;
public void applyParameters(Material program) {
super.applyParameters(program);
Texture terrain = Assets.getTexture("engine:terrain");
Texture terrainNormal = Assets.getTexture("engine:terrainNormal");
Texture terrainHeight = Assets.getTexture("engine:terrainHeight");
Texture water = Assets.getTexture("engine:waterStill");
Texture lava = Assets.getTexture("engine:lavaStill");
Texture waterNormal = Assets.getTexture("engine:waterNormal");
Texture waterNormalAlt = Assets.getTexture("engine:waterNormalAlt");
Texture effects = Assets.getTexture("engine:effects");
if (terrain == null || water == null || lava == null || waterNormal == null || effects == null) {
return;
}
int texId = 0;
GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
glBindTexture(GL11.GL_TEXTURE_2D, terrain.getId());
program.setInt("textureAtlas", texId++, true);
GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
glBindTexture(GL11.GL_TEXTURE_2D, water.getId());
program.setInt("textureWater", texId++, true);
GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
glBindTexture(GL11.GL_TEXTURE_2D, lava.getId());
program.setInt("textureLava", texId++, true);
GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
glBindTexture(GL11.GL_TEXTURE_2D, waterNormal.getId());
program.setInt("textureWaterNormal", texId++, true);
GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
glBindTexture(GL11.GL_TEXTURE_2D, waterNormalAlt.getId());
program.setInt("textureWaterNormalAlt", texId++, true);
GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
glBindTexture(GL11.GL_TEXTURE_2D, effects.getId());
program.setInt("textureEffects", texId++, true);
GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);
DefaultRenderingProcess.getInstance().bindFboTexture("sceneReflected");
program.setInt("textureWaterReflection", texId++, true);
GL13.glActiveTexture(GL13.GL_TEXTURE0 + texId);