// Create a temporary image base light twice as high that will contain sky image in the top part
BufferedImage imageBaseLightImage = new BufferedImage(skyImage.getWidth(),
skyImage.getHeight() * 2, BufferedImage.TYPE_INT_RGB);
Graphics2D g2D = (Graphics2D)imageBaseLightImage.getGraphics();
g2D.drawRenderedImage(skyImage, null);
g2D.dispose();
File imageFile = OperatingSystem.createTemporaryFile("ibl", ".png");
ImageIO.write(imageBaseLightImage, "png", imageFile);
this.sunflow.parameter("texture", imageFile.getAbsolutePath());
this.sunflow.parameter("center", new Vector3(-1, 0, 0));