0
votes

Can somebody tell me if it is possible to use full precision floating point 2DTextures on the iPad2? (full precision = single precision)

By printing out the implemented OpenGL extensions on the iPad2 using

glGetString(GL_EXTENSIONS)

I figured out that both OES_texture_half_float and OES_texture_float are supported.

However, using GL_HALF_FLOAT_OES as the textures type works fine,

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_HALF_FLOAT_OES, NULL);

whereas using GL_FLOAT results in an incomplete framebuffer object.

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_FLOAT, NULL);

Am I making something wrong here or are full precision floating point textures just not supported?

Thank u in advance.

1

1 Answers

1
votes

The OES_texture_float extension provides for 32-bit floating point textures to be used as inputs, but that doesn't mean that you can render into them. The EXT_color_buffer_half_float adds the capability for iOS devices (I believe A5 GPUs and higher) to render into 16-bit half float textures, but not 32-bit full float ones.

I don't believe that any of the current iOS devices allow for rendering into full 32-bit float textures, just to use them as inputs when rendering a scene.