| Name |
| |
| ATI_texture_float |
| |
| Name Strings |
| |
| GL_ATI_texture_float |
| |
| Contact |
| |
| Rob Mace, AMD (rob.mace 'at' amd.com) |
| |
| Status |
| |
| Complete. |
| |
| Version |
| |
| Last Modified Date: November 4, 2006 |
| Revision: 5 |
| |
| 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: 11/4/2006 |
| Revision: 5 |
| - Updated contact info after ATI/AMD merger. |
| |
| 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. |