Back to the OpenGL extension cross reference

GL_ATI_texture_float


Name


    ATI_texture_float

Name Strings


    GL_ATI_texture_float

Contact


    Rob Mace, ATI Research (mace 'at' ati.com)

Status


    Complete.

Version


    Last Modified Date: December 4, 2002
Revision: 4

Number


    280

Dependencies


    OpenGL 1.1 or EXT_texture is required.

The extension is written against the OpenGL 1.3 Specification.


Overview


    This extension adds texture internal formats with 32 and 16 bit
floating-point components. The 32 bit floating-point components
are in the standard IEEE float format. The 16 bit floating-point
components have 1 sign bit, 5 exponent bits, and 10 mantissa bits.
Floating-point components are clamped to the limits of the range
representable by their format.


Issues


    1. Should we expose a GL_FLOAT16_ATI pixel type so that the 16 bit
float textures can be directly loaded?

RESOLUTION: This will be exposed in a separate extension.


New Procedures and Functions


   None


New Tokens


    Accepted by the <internalFormat> parameter of TexImage1D,
TexImage2D, and TexImage3D:

RGBA_FLOAT32_ATI 0x8814
RGB_FLOAT32_ATI 0x8815
ALPHA_FLOAT32_ATI 0x8816
INTENSITY_FLOAT32_ATI 0x8817
LUMINANCE_FLOAT32_ATI 0x8818
LUMINANCE_ALPHA_FLOAT32_ATI 0x8819
RGBA_FLOAT16_ATI 0x881A
RGB_FLOAT16_ATI 0x881B
ALPHA_FLOAT16_ATI 0x881C
INTENSITY_FLOAT16_ATI 0x881D
LUMINANCE_FLOAT16_ATI 0x881E
LUMINANCE_ALPHA_FLOAT16_ATI 0x881F



Additions to Chapter 2 of the OpenGL 1.3 Specification (OpenGL Operation)


    Add a new Section 2.1.2, (p. 6):

2.1.2 16 Bit Floating-Point

A 16 bit floating-point number has 1 sign bit (s), 5 exponent
bits (e), and 10 mantissa bits (m). The value (v) of a 16 bit
floating-point number is determined by the following pseudo code:

if (e != 0)
v = (-1)^s * 2^(e-15) * 1.m # normalized
else if (f == 0)
v = (-1)^s * 0 # zero
else
v = (-1)^s * 2^(e-14) * 0.m # denormalized

It is acceptable for an implementation to treat denormalized 16 bit
floating-point numbers as zero.

There are no NAN or infinity values for 16 bit floating-point.


Additions to Chapter 3 of the OpenGL 1.3 Specification (Rasterization)


    Section 3.8.1, (p. 116), change the last sentence on the page to:

Each R, G, B, and A value so generated is clamped based on the
component type in the <internalFormat>. Fixed-point components
are clamped to [0, 1]. Floating-point components are clamped
to the limits of the range representable by their format. 32
bit floating- point components are in the standard IEEE float
format. 16 bit floating-point components have 1 sign bit, 5
exponent bits, and 10 mantissa bits.

Section 3.8.1, (p. 119), add the following to table 3.16:

Sized Base R G B A L I
Internal Format Internal Format bits bits bits bits bits bits
--------------------------- --------------- ---- ---- ---- ---- ---- ----
RGBA_FLOAT32_ATI RGBA f32 f32 f32 f32
RGB_FLOAT32_ATI RGB f32 f32 f32
ALPHA_FLOAT32_ATI ALPHA f32
INTENSITY_FLOAT32_ATI INTENSITY f32
LUMINANCE_FLOAT32_ATI LUMINANCE f32
LUMINANCE_ALPHA_FLOAT32_ATI LUMINANCE_ALPHA f32 f32
RGBA_FLOAT16_ATI RGBA f16 f16 f16 f16
RGB_FLOAT16_ATI RGB f16 f16 f16
ALPHA_FLOAT16_ATI ALPHA f16
INTENSITY_FLOAT16_ATI INTENSITY f16
LUMINANCE_FLOAT16_ATI LUMINANCE f16
LUMINANCE_ALPHA_FLOAT16_ATI LUMINANCE_ALPHA f16 f16


Additions to Chapter 4 of the OpenGL 1.3 Specification (Per-Fragment Operations and the Frame Buffer)


    None


Additions to Chapter 5 of the OpenGL 1.3 Specification (Special Functions)


    None


Additions to Chapter 6 of the OpenGL 1.3 Specification (State and State Requests)


    None


Errors


    None


New State


    None


New Implementation Dependent State


    None


Revision History


   Date: 12/4/2002
Revision: 4
- Added Section 2.1.2 16 Bit Floating-Point.

Date: 9/11/2002
Revision: 3
- Changed description of float clamping to be consistent with
WGL_ATI_pixel_format_float.

Date: 9/6/2002
Revision: 2
- Changed unsigned integer components to fixed-point components.
- Resolved GL_FLOAT16_ATI issue.
- Cleaned up typos.

Date: 8/18/2002
Revision: 1
- First draft for circulation.

Implementation Support


   List of OpenGL implementations supporting the GL_ATI_texture_float extension

Original File


   Original text file for the GL_ATI_texture_float extension


Page generated on Sun Nov 20 18:40:34 2005