Posted by
mpleasance on
Jun 14, 2012; 8:07pm
URL: https://forum.jogamp.org/Loading-half-float-textures-using-JOGL-possible-bug-tp4025221.html
I have texture data in half float format that I would like to load into textures.
The call to glTexImage2D fails using GL2.GL_HALF_FLOAT as the type.
Below is the complete call that I make:
gl.glTexImage2D(this.texture_[index].getTarget(),
0,
GL2.GL_LUMINANCE16F,
width,
height,
0,
GL.GL_LUMINANCE,
GL2.GL_HALF_FLOAT,
buffer);
Calling glGetError afterwards indicates that an invalid enum is being used.
I checked the enum values and GL2.GL_HALF_FLOAT = 36193 (0x8D61).
This corresponds to HALF_FLOAT_OES tokens defined in the OES_vertex_half_float and OES_texture_float extensions against OpenGL 2.0 ES.
http://www.khronos.org/registry/gles/extensions/OES/OES_vertex_half_float.txthttp://www.khronos.org/registry/gles/extensions/OES/OES_texture_float.txtI believe that the type I want to be using is HALF_FLOAT_ARB which is specified in the ARB_half_float_pixel extension (extension specific to using half float as pixel data). The value of this token is 5131 (0x140B).
http://www.opengl.org/registry/specs/ARB/half_float_pixel.txtIn JOGL, this value is defined by GL2.GL_HALF_APPLE, but when I try to use this for the type parameter in glTexImage2D I get the following exception:
Caused by: javax.media.opengl.GLException: type 0x140b/format 0x1909 not supported [yet], pls notify the maintainer in case this is our bug.
at com.jogamp.opengl.util.GLBuffers.sizeof(GLBuffers.java:505)
at jogamp.opengl.gl4.GL4bcImpl.imageSizeInBytes(GL4bcImpl.java:34462)
at jogamp.opengl.gl4.GL4bcImpl.glTexImage2D(GL4bcImpl.java:25283)
Inspecting GLBuffers.java, GL2.GL_HALF_APPLE is not in the list of accepted types in the sizeof function.
If I convert my half float data to float and use GL_FLOAT for the type, everything works as expected.
If I keep the data in half float and specify unsigned short, then the call to glTexImage2D works, but it isn't really what I need.
I'm using jogamp 2.0-rc8 and all of the relevant float/half float extensions are present.
Am I doing something wrong or is this a bug?