15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci ATI_texture_float 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_ATI_texture_float 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContact 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Rob Mace, AMD (rob.mace 'at' amd.com) 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciStatus 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci Complete. 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ciVersion 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ci Last Modified Date: November 4, 2006 205bd8deadSopenharmony_ci Revision: 5 215bd8deadSopenharmony_ci 225bd8deadSopenharmony_ciNumber 235bd8deadSopenharmony_ci 245bd8deadSopenharmony_ci 280 255bd8deadSopenharmony_ci 265bd8deadSopenharmony_ciDependencies 275bd8deadSopenharmony_ci 285bd8deadSopenharmony_ci OpenGL 1.1 or EXT_texture is required. 295bd8deadSopenharmony_ci 305bd8deadSopenharmony_ci The extension is written against the OpenGL 1.3 Specification. 315bd8deadSopenharmony_ci 325bd8deadSopenharmony_ci 335bd8deadSopenharmony_ciOverview 345bd8deadSopenharmony_ci 355bd8deadSopenharmony_ci This extension adds texture internal formats with 32 and 16 bit 365bd8deadSopenharmony_ci floating-point components. The 32 bit floating-point components 375bd8deadSopenharmony_ci are in the standard IEEE float format. The 16 bit floating-point 385bd8deadSopenharmony_ci components have 1 sign bit, 5 exponent bits, and 10 mantissa bits. 395bd8deadSopenharmony_ci Floating-point components are clamped to the limits of the range 405bd8deadSopenharmony_ci representable by their format. 415bd8deadSopenharmony_ci 425bd8deadSopenharmony_ci 435bd8deadSopenharmony_ciIssues 445bd8deadSopenharmony_ci 455bd8deadSopenharmony_ci 1. Should we expose a GL_FLOAT16_ATI pixel type so that the 16 bit 465bd8deadSopenharmony_ci float textures can be directly loaded? 475bd8deadSopenharmony_ci 485bd8deadSopenharmony_ci RESOLUTION: This will be exposed in a separate extension. 495bd8deadSopenharmony_ci 505bd8deadSopenharmony_ci 515bd8deadSopenharmony_ciNew Procedures and Functions 525bd8deadSopenharmony_ci 535bd8deadSopenharmony_ci None 545bd8deadSopenharmony_ci 555bd8deadSopenharmony_ci 565bd8deadSopenharmony_ciNew Tokens 575bd8deadSopenharmony_ci 585bd8deadSopenharmony_ci Accepted by the <internalFormat> parameter of TexImage1D, 595bd8deadSopenharmony_ci TexImage2D, and TexImage3D: 605bd8deadSopenharmony_ci 615bd8deadSopenharmony_ci RGBA_FLOAT32_ATI 0x8814 625bd8deadSopenharmony_ci RGB_FLOAT32_ATI 0x8815 635bd8deadSopenharmony_ci ALPHA_FLOAT32_ATI 0x8816 645bd8deadSopenharmony_ci INTENSITY_FLOAT32_ATI 0x8817 655bd8deadSopenharmony_ci LUMINANCE_FLOAT32_ATI 0x8818 665bd8deadSopenharmony_ci LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 675bd8deadSopenharmony_ci RGBA_FLOAT16_ATI 0x881A 685bd8deadSopenharmony_ci RGB_FLOAT16_ATI 0x881B 695bd8deadSopenharmony_ci ALPHA_FLOAT16_ATI 0x881C 705bd8deadSopenharmony_ci INTENSITY_FLOAT16_ATI 0x881D 715bd8deadSopenharmony_ci LUMINANCE_FLOAT16_ATI 0x881E 725bd8deadSopenharmony_ci LUMINANCE_ALPHA_FLOAT16_ATI 0x881F 735bd8deadSopenharmony_ci 745bd8deadSopenharmony_ci 755bd8deadSopenharmony_ci 765bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL 1.3 Specification (OpenGL 775bd8deadSopenharmony_ciOperation) 785bd8deadSopenharmony_ci 795bd8deadSopenharmony_ci Add a new Section 2.1.2, (p. 6): 805bd8deadSopenharmony_ci 815bd8deadSopenharmony_ci 2.1.2 16 Bit Floating-Point 825bd8deadSopenharmony_ci 835bd8deadSopenharmony_ci A 16 bit floating-point number has 1 sign bit (s), 5 exponent 845bd8deadSopenharmony_ci bits (e), and 10 mantissa bits (m). The value (v) of a 16 bit 855bd8deadSopenharmony_ci floating-point number is determined by the following pseudo code: 865bd8deadSopenharmony_ci 875bd8deadSopenharmony_ci if (e != 0) 885bd8deadSopenharmony_ci v = (-1)^s * 2^(e-15) * 1.m # normalized 895bd8deadSopenharmony_ci else if (f == 0) 905bd8deadSopenharmony_ci v = (-1)^s * 0 # zero 915bd8deadSopenharmony_ci else 925bd8deadSopenharmony_ci v = (-1)^s * 2^(e-14) * 0.m # denormalized 935bd8deadSopenharmony_ci 945bd8deadSopenharmony_ci It is acceptable for an implementation to treat denormalized 16 bit 955bd8deadSopenharmony_ci floating-point numbers as zero. 965bd8deadSopenharmony_ci 975bd8deadSopenharmony_ci There are no NAN or infinity values for 16 bit floating-point. 985bd8deadSopenharmony_ci 995bd8deadSopenharmony_ci 1005bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL 1.3 Specification (Rasterization) 1015bd8deadSopenharmony_ci 1025bd8deadSopenharmony_ci Section 3.8.1, (p. 116), change the last sentence on the page to: 1035bd8deadSopenharmony_ci 1045bd8deadSopenharmony_ci Each R, G, B, and A value so generated is clamped based on the 1055bd8deadSopenharmony_ci component type in the <internalFormat>. Fixed-point components 1065bd8deadSopenharmony_ci are clamped to [0, 1]. Floating-point components are clamped 1075bd8deadSopenharmony_ci to the limits of the range representable by their format. 32 1085bd8deadSopenharmony_ci bit floating- point components are in the standard IEEE float 1095bd8deadSopenharmony_ci format. 16 bit floating-point components have 1 sign bit, 5 1105bd8deadSopenharmony_ci exponent bits, and 10 mantissa bits. 1115bd8deadSopenharmony_ci 1125bd8deadSopenharmony_ci Section 3.8.1, (p. 119), add the following to table 3.16: 1135bd8deadSopenharmony_ci 1145bd8deadSopenharmony_ci Sized Base R G B A L I 1155bd8deadSopenharmony_ci Internal Format Internal Format bits bits bits bits bits bits 1165bd8deadSopenharmony_ci --------------------------- --------------- ---- ---- ---- ---- ---- ---- 1175bd8deadSopenharmony_ci RGBA_FLOAT32_ATI RGBA f32 f32 f32 f32 1185bd8deadSopenharmony_ci RGB_FLOAT32_ATI RGB f32 f32 f32 1195bd8deadSopenharmony_ci ALPHA_FLOAT32_ATI ALPHA f32 1205bd8deadSopenharmony_ci INTENSITY_FLOAT32_ATI INTENSITY f32 1215bd8deadSopenharmony_ci LUMINANCE_FLOAT32_ATI LUMINANCE f32 1225bd8deadSopenharmony_ci LUMINANCE_ALPHA_FLOAT32_ATI LUMINANCE_ALPHA f32 f32 1235bd8deadSopenharmony_ci RGBA_FLOAT16_ATI RGBA f16 f16 f16 f16 1245bd8deadSopenharmony_ci RGB_FLOAT16_ATI RGB f16 f16 f16 1255bd8deadSopenharmony_ci ALPHA_FLOAT16_ATI ALPHA f16 1265bd8deadSopenharmony_ci INTENSITY_FLOAT16_ATI INTENSITY f16 1275bd8deadSopenharmony_ci LUMINANCE_FLOAT16_ATI LUMINANCE f16 1285bd8deadSopenharmony_ci LUMINANCE_ALPHA_FLOAT16_ATI LUMINANCE_ALPHA f16 f16 1295bd8deadSopenharmony_ci 1305bd8deadSopenharmony_ci 1315bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL 1.3 Specification (Per-Fragment 1325bd8deadSopenharmony_ciOperations and the Frame Buffer) 1335bd8deadSopenharmony_ci 1345bd8deadSopenharmony_ci None 1355bd8deadSopenharmony_ci 1365bd8deadSopenharmony_ci 1375bd8deadSopenharmony_ciAdditions to Chapter 5 of the OpenGL 1.3 Specification (Special 1385bd8deadSopenharmony_ciFunctions) 1395bd8deadSopenharmony_ci 1405bd8deadSopenharmony_ci None 1415bd8deadSopenharmony_ci 1425bd8deadSopenharmony_ci 1435bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL 1.3 Specification (State and 1445bd8deadSopenharmony_ciState Requests) 1455bd8deadSopenharmony_ci 1465bd8deadSopenharmony_ci None 1475bd8deadSopenharmony_ci 1485bd8deadSopenharmony_ci 1495bd8deadSopenharmony_ciErrors 1505bd8deadSopenharmony_ci 1515bd8deadSopenharmony_ci None 1525bd8deadSopenharmony_ci 1535bd8deadSopenharmony_ci 1545bd8deadSopenharmony_ciNew State 1555bd8deadSopenharmony_ci 1565bd8deadSopenharmony_ci None 1575bd8deadSopenharmony_ci 1585bd8deadSopenharmony_ci 1595bd8deadSopenharmony_ciNew Implementation Dependent State 1605bd8deadSopenharmony_ci 1615bd8deadSopenharmony_ci None 1625bd8deadSopenharmony_ci 1635bd8deadSopenharmony_ci 1645bd8deadSopenharmony_ciRevision History 1655bd8deadSopenharmony_ci 1665bd8deadSopenharmony_ci Date: 11/4/2006 1675bd8deadSopenharmony_ci Revision: 5 1685bd8deadSopenharmony_ci - Updated contact info after ATI/AMD merger. 1695bd8deadSopenharmony_ci 1705bd8deadSopenharmony_ci Date: 12/4/2002 1715bd8deadSopenharmony_ci Revision: 4 1725bd8deadSopenharmony_ci - Added Section 2.1.2 16 Bit Floating-Point. 1735bd8deadSopenharmony_ci 1745bd8deadSopenharmony_ci Date: 9/11/2002 1755bd8deadSopenharmony_ci Revision: 3 1765bd8deadSopenharmony_ci - Changed description of float clamping to be consistent with 1775bd8deadSopenharmony_ci WGL_ATI_pixel_format_float. 1785bd8deadSopenharmony_ci 1795bd8deadSopenharmony_ci Date: 9/6/2002 1805bd8deadSopenharmony_ci Revision: 2 1815bd8deadSopenharmony_ci - Changed unsigned integer components to fixed-point components. 1825bd8deadSopenharmony_ci - Resolved GL_FLOAT16_ATI issue. 1835bd8deadSopenharmony_ci - Cleaned up typos. 1845bd8deadSopenharmony_ci 1855bd8deadSopenharmony_ci Date: 8/18/2002 1865bd8deadSopenharmony_ci Revision: 1 1875bd8deadSopenharmony_ci - First draft for circulation. 188