1Name 2 3 ATI_texture_float 4 5Name Strings 6 7 GL_ATI_texture_float 8 9Contact 10 11 Rob Mace, AMD (rob.mace 'at' amd.com) 12 13Status 14 15 Complete. 16 17Version 18 19 Last Modified Date: November 4, 2006 20 Revision: 5 21 22Number 23 24 280 25 26Dependencies 27 28 OpenGL 1.1 or EXT_texture is required. 29 30 The extension is written against the OpenGL 1.3 Specification. 31 32 33Overview 34 35 This extension adds texture internal formats with 32 and 16 bit 36 floating-point components. The 32 bit floating-point components 37 are in the standard IEEE float format. The 16 bit floating-point 38 components have 1 sign bit, 5 exponent bits, and 10 mantissa bits. 39 Floating-point components are clamped to the limits of the range 40 representable by their format. 41 42 43Issues 44 45 1. Should we expose a GL_FLOAT16_ATI pixel type so that the 16 bit 46 float textures can be directly loaded? 47 48 RESOLUTION: This will be exposed in a separate extension. 49 50 51New Procedures and Functions 52 53 None 54 55 56New Tokens 57 58 Accepted by the <internalFormat> parameter of TexImage1D, 59 TexImage2D, and TexImage3D: 60 61 RGBA_FLOAT32_ATI 0x8814 62 RGB_FLOAT32_ATI 0x8815 63 ALPHA_FLOAT32_ATI 0x8816 64 INTENSITY_FLOAT32_ATI 0x8817 65 LUMINANCE_FLOAT32_ATI 0x8818 66 LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 67 RGBA_FLOAT16_ATI 0x881A 68 RGB_FLOAT16_ATI 0x881B 69 ALPHA_FLOAT16_ATI 0x881C 70 INTENSITY_FLOAT16_ATI 0x881D 71 LUMINANCE_FLOAT16_ATI 0x881E 72 LUMINANCE_ALPHA_FLOAT16_ATI 0x881F 73 74 75 76Additions to Chapter 2 of the OpenGL 1.3 Specification (OpenGL 77Operation) 78 79 Add a new Section 2.1.2, (p. 6): 80 81 2.1.2 16 Bit Floating-Point 82 83 A 16 bit floating-point number has 1 sign bit (s), 5 exponent 84 bits (e), and 10 mantissa bits (m). The value (v) of a 16 bit 85 floating-point number is determined by the following pseudo code: 86 87 if (e != 0) 88 v = (-1)^s * 2^(e-15) * 1.m # normalized 89 else if (f == 0) 90 v = (-1)^s * 0 # zero 91 else 92 v = (-1)^s * 2^(e-14) * 0.m # denormalized 93 94 It is acceptable for an implementation to treat denormalized 16 bit 95 floating-point numbers as zero. 96 97 There are no NAN or infinity values for 16 bit floating-point. 98 99 100Additions to Chapter 3 of the OpenGL 1.3 Specification (Rasterization) 101 102 Section 3.8.1, (p. 116), change the last sentence on the page to: 103 104 Each R, G, B, and A value so generated is clamped based on the 105 component type in the <internalFormat>. Fixed-point components 106 are clamped to [0, 1]. Floating-point components are clamped 107 to the limits of the range representable by their format. 32 108 bit floating- point components are in the standard IEEE float 109 format. 16 bit floating-point components have 1 sign bit, 5 110 exponent bits, and 10 mantissa bits. 111 112 Section 3.8.1, (p. 119), add the following to table 3.16: 113 114 Sized Base R G B A L I 115 Internal Format Internal Format bits bits bits bits bits bits 116 --------------------------- --------------- ---- ---- ---- ---- ---- ---- 117 RGBA_FLOAT32_ATI RGBA f32 f32 f32 f32 118 RGB_FLOAT32_ATI RGB f32 f32 f32 119 ALPHA_FLOAT32_ATI ALPHA f32 120 INTENSITY_FLOAT32_ATI INTENSITY f32 121 LUMINANCE_FLOAT32_ATI LUMINANCE f32 122 LUMINANCE_ALPHA_FLOAT32_ATI LUMINANCE_ALPHA f32 f32 123 RGBA_FLOAT16_ATI RGBA f16 f16 f16 f16 124 RGB_FLOAT16_ATI RGB f16 f16 f16 125 ALPHA_FLOAT16_ATI ALPHA f16 126 INTENSITY_FLOAT16_ATI INTENSITY f16 127 LUMINANCE_FLOAT16_ATI LUMINANCE f16 128 LUMINANCE_ALPHA_FLOAT16_ATI LUMINANCE_ALPHA f16 f16 129 130 131Additions to Chapter 4 of the OpenGL 1.3 Specification (Per-Fragment 132Operations and the Frame Buffer) 133 134 None 135 136 137Additions to Chapter 5 of the OpenGL 1.3 Specification (Special 138Functions) 139 140 None 141 142 143Additions to Chapter 6 of the OpenGL 1.3 Specification (State and 144State Requests) 145 146 None 147 148 149Errors 150 151 None 152 153 154New State 155 156 None 157 158 159New Implementation Dependent State 160 161 None 162 163 164Revision History 165 166 Date: 11/4/2006 167 Revision: 5 168 - Updated contact info after ATI/AMD merger. 169 170 Date: 12/4/2002 171 Revision: 4 172 - Added Section 2.1.2 16 Bit Floating-Point. 173 174 Date: 9/11/2002 175 Revision: 3 176 - Changed description of float clamping to be consistent with 177 WGL_ATI_pixel_format_float. 178 179 Date: 9/6/2002 180 Revision: 2 181 - Changed unsigned integer components to fixed-point components. 182 - Resolved GL_FLOAT16_ATI issue. 183 - Cleaned up typos. 184 185 Date: 8/18/2002 186 Revision: 1 187 - First draft for circulation. 188