import javax.media.opengl.GL2; import javax.media.opengl.GLAutoDrawable; public class OpenExrTextureTest extends JoglApp { private int[] textures; private GL2 gl; OpenExrTextureTest(String Name_value, int x, int y) { super(Name_value, x, y); } public void init(GLAutoDrawable drawable) { gl = drawable.getGL().getGL2(); //get the texture data OpenExrReaderMain exrReader = new OpenExrReaderMain(); exrReader.readExrFile("C:\\pathToAnOpenExrFile.exr"); OpenExrReaderMain.Texture textureHDR = exrReader.getOpenExrTexture(0, 0, exrReader.getHeight(), exrReader.getWidth(), true, OpenExrReaderMain.RGB_CHANNEL);; textures = new int[1]; gl.glEnable(GL2.GL_TEXTURE_2D); gl.glGenTextures(1, textures, 0); gl.glBindTexture(GL2.GL_TEXTURE_2D, textures[0]); gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_MIN_FILTER, GL2.GL_NEAREST); gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_MAG_FILTER, GL2.GL_NEAREST); gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_WRAP_S, GL2.GL_CLAMP_TO_EDGE); gl.glTexParameteri(GL2.GL_TEXTURE_2D, GL2.GL_TEXTURE_WRAP_T, GL2.GL_CLAMP_TO_EDGE); gl.glPixelStorei(GL2.GL_UNPACK_ALIGNMENT, 1); gl.glTexImage2D(GL2.GL_TEXTURE_2D, 0, GL2.GL_FLOAT_RGBA32_NV, textureHDR.getWidth(), textureHDR.getHeight(), 0, GL2.GL_RGBA, GL2.GL_HALF_FLOAT, textureHDR.getPixels()); super.init(drawable); } public void display(GLAutoDrawable drawable) { super.display(drawable); gl = drawable.getGL().getGL2(); int edgeLength = 10; Vector3d position = new Vector3d(0.0, 0.0, 0.0); //front gl.glActiveTexture(GL2.GL_TEXTURE0); gl.glBindTexture(GL2.GL_TEXTURE_2D, textures[0]); gl.glBegin(GL2.GL_QUADS); gl.glMultiTexCoord2f(GL2.GL_TEXTURE0, 0.0f, 0.0f); gl.glVertex3d(-edgeLength + position.x, -edgeLength + position.y, -edgeLength + position.z); gl.glMultiTexCoord2f(GL2.GL_TEXTURE0, 1.0f, 0.0f); gl.glVertex3d(edgeLength + position.x, -edgeLength + position.y, -edgeLength + position.z); gl.glMultiTexCoord2f(GL2.GL_TEXTURE0, 1.0f, 1.0f); gl.glVertex3d(edgeLength + position.x, edgeLength + position.y, -edgeLength + position.z); gl.glMultiTexCoord2f(GL2.GL_TEXTURE0, 0.0f, 1.0f); gl.glVertex3d(-edgeLength + position.x, edgeLength + position.y, -edgeLength + position.z); gl.glEnd(); } public static void main(String[] args) { new OpenExrTextureTest("OpenExrTextureTest", 800, 600); } }