15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci ATI_envmap_bumpmap 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_ATI_envmap_bumpmap 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContact 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Dan Ginsburg, AMD (dan.ginsburg 'at' amd.com) 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ci 145bd8deadSopenharmony_ciVersion 155bd8deadSopenharmony_ci 165bd8deadSopenharmony_ci Date: 11/04/2006 175bd8deadSopenharmony_ci Revision: 1.02 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ciNumber 205bd8deadSopenharmony_ci 215bd8deadSopenharmony_ci 244 225bd8deadSopenharmony_ci 235bd8deadSopenharmony_ciDependencies 245bd8deadSopenharmony_ci 255bd8deadSopenharmony_ci EXT_texture_env_combine is required by this extension. 265bd8deadSopenharmony_ci ARB_multitexture is required by this extension. 275bd8deadSopenharmony_ci 285bd8deadSopenharmony_ciOverview 295bd8deadSopenharmony_ci 305bd8deadSopenharmony_ci This extension adds environment mapped bump mapping (EMBM) to the GL. 315bd8deadSopenharmony_ci The method exposed by this extension is to use a dependent texture 325bd8deadSopenharmony_ci read on a bumpmap (du,dv) texture to offset the texture coordinates 335bd8deadSopenharmony_ci read into a map on another texture unit. This (du,dv) offset is also 345bd8deadSopenharmony_ci rotated through a user-specified rotation matrix to get the texture 355bd8deadSopenharmony_ci coordinates into the appropriate space. 365bd8deadSopenharmony_ci 375bd8deadSopenharmony_ci A new texture format is introduced in order for specifying the (du,dv) 385bd8deadSopenharmony_ci bumpmap texture. This map represents -1 <= du,dv <= 1 offsets to 395bd8deadSopenharmony_ci be applied to the texture coordinates used to read into the base 405bd8deadSopenharmony_ci map. Additionally, the (du,dv) offsets are transformed by a rotation 415bd8deadSopenharmony_ci matrix that this extension allows the user to specify. Further, a 425bd8deadSopenharmony_ci new color operation is added to EXT_texture_env_combine to specify 435bd8deadSopenharmony_ci both that bumpmapping is enabled and which texture unit to apply 445bd8deadSopenharmony_ci the bump offset to. 455bd8deadSopenharmony_ci 465bd8deadSopenharmony_ciIssues 475bd8deadSopenharmony_ci 485bd8deadSopenharmony_ci None known. 495bd8deadSopenharmony_ci 505bd8deadSopenharmony_ciNew Procedures and Functions 515bd8deadSopenharmony_ci 525bd8deadSopenharmony_ci void TexBumpParameter[i|f]vATI(enum pname, TYPE *param) 535bd8deadSopenharmony_ci 545bd8deadSopenharmony_ci void GetTexBumpParameter[i|f]vATI(enum pname, TYPE *param) 555bd8deadSopenharmony_ci 565bd8deadSopenharmony_ciNew Tokens 575bd8deadSopenharmony_ci 585bd8deadSopenharmony_ci Accepted by the <pname> parameter of TexBumpParameter[i|f]vATI 595bd8deadSopenharmony_ci 605bd8deadSopenharmony_ci BUMP_ROT_MATRIX_ATI 0x8775 615bd8deadSopenharmony_ci 625bd8deadSopenharmony_ci Accepted by the <pname> parameter of GetTexBumpParameter[i|f]vATI 635bd8deadSopenharmony_ci 645bd8deadSopenharmony_ci BUMP_ROT_MATRIX_ATI 655bd8deadSopenharmony_ci BUMP_ROT_MATRIX_SIZE_ATI 0x8776 665bd8deadSopenharmony_ci BUMP_NUM_TEX_UNITS_ATI 0x8777 675bd8deadSopenharmony_ci BUMP_TEX_UNITS_ATI 0x8778 685bd8deadSopenharmony_ci 695bd8deadSopenharmony_ci Accepted by the <format> parameter of GetTexImage and TexImage2D 705bd8deadSopenharmony_ci 715bd8deadSopenharmony_ci DUDV_ATI 0x8779 725bd8deadSopenharmony_ci DU8DV8_ATI 0x877A 735bd8deadSopenharmony_ci 745bd8deadSopenharmony_ci Accepted by the <components> parameter of TexImage2D 755bd8deadSopenharmony_ci 765bd8deadSopenharmony_ci DUDV_ATI 775bd8deadSopenharmony_ci DU8DV8_ATI 785bd8deadSopenharmony_ci 795bd8deadSopenharmony_ci Accepted by the <params> parameter of TexEnvf, TexEnvi, TexEnvfv, 805bd8deadSopenharmony_ci and TexEnviv when the <pname> parameter value is COMBINE_RGB_EXT 815bd8deadSopenharmony_ci 825bd8deadSopenharmony_ci BUMP_ENVMAP_ATI 0x877B 835bd8deadSopenharmony_ci 845bd8deadSopenharmony_ci Accepted by the <pname> parameter of TexEnvf, TexEnvi, TexEnvfv, 855bd8deadSopenharmony_ci and TexEnviv when the <target> parameter value is TEXTURE_ENV 865bd8deadSopenharmony_ci 875bd8deadSopenharmony_ci BUMP_TARGET_ATI 0x877C 885bd8deadSopenharmony_ci 895bd8deadSopenharmony_ci Accepted by the <params> parameter of TexEnvf, TexEnvi, TexEnvfv, 905bd8deadSopenharmony_ci and TexEnviv when the <pname> parameter value is BUMP_TARGET_ATI 915bd8deadSopenharmony_ci 925bd8deadSopenharmony_ci TEXTURE0_ARB 935bd8deadSopenharmony_ci TEXTURE1_ARB 945bd8deadSopenharmony_ci TEXTURE2_ARB 955bd8deadSopenharmony_ci TEXTURE3_ARB 965bd8deadSopenharmony_ci TEXTURE4_ARB 975bd8deadSopenharmony_ci TEXTURE5_ARB 985bd8deadSopenharmony_ci TEXTURE6_ARB 995bd8deadSopenharmony_ci TEXTURE7_ARB 1005bd8deadSopenharmony_ci TEXTURE8_ARB 1015bd8deadSopenharmony_ci TEXTURE9_ARB 1025bd8deadSopenharmony_ci TEXTURE10_ARB 1035bd8deadSopenharmony_ci TEXTURE11_ARB 1045bd8deadSopenharmony_ci TEXTURE12_ARB 1055bd8deadSopenharmony_ci TEXTURE13_ARB 1065bd8deadSopenharmony_ci TEXTURE14_ARB 1075bd8deadSopenharmony_ci TEXTURE15_ARB 1085bd8deadSopenharmony_ci TEXTURE16_ARB 1095bd8deadSopenharmony_ci TEXTURE17_ARB 1105bd8deadSopenharmony_ci TEXTURE18_ARB 1115bd8deadSopenharmony_ci TEXTURE19_ARB 1125bd8deadSopenharmony_ci TEXTURE20_ARB 1135bd8deadSopenharmony_ci TEXTURE21_ARB 1145bd8deadSopenharmony_ci TEXTURE22_ARB 1155bd8deadSopenharmony_ci TEXTURE23_ARB 1165bd8deadSopenharmony_ci TEXTURE24_ARB 1175bd8deadSopenharmony_ci TEXTURE25_ARB 1185bd8deadSopenharmony_ci TEXTURE26_ARB 1195bd8deadSopenharmony_ci TEXTURE27_ARB 1205bd8deadSopenharmony_ci TEXTURE28_ARB 1215bd8deadSopenharmony_ci TEXTURE29_ARB 1225bd8deadSopenharmony_ci TEXTURE30_ARB 1235bd8deadSopenharmony_ci TEXTURE31_ARB 1245bd8deadSopenharmony_ci 1255bd8deadSopenharmony_ci 1265bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL 1.2.1 Specification (Operation): 1275bd8deadSopenharmony_ci 1285bd8deadSopenharmony_ci None 1295bd8deadSopenharmony_ci 1305bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL 1.2.1 Specification (Rasterization) 1315bd8deadSopenharmony_ci 1325bd8deadSopenharmony_ci - (p.144, Table 3.15) Add row to table: 1335bd8deadSopenharmony_ci 1345bd8deadSopenharmony_ci "Base Internal Format RGBA Values Internal Components 1355bd8deadSopenharmony_ci -------------------- ----------- ------------------- 1365bd8deadSopenharmony_ci DUDV_ATI undefined U,V" 1375bd8deadSopenharmony_ci 1385bd8deadSopenharmony_ci - (p. 155, Table 3.16) Add rows to table, add last two columns: 1395bd8deadSopenharmony_ci 1405bd8deadSopenharmony_ci "Sized Base R G B A L I U V 1415bd8deadSopenharmony_ci Internal Format Internal Format bits bits bits bits bits bits bits bits 1425bd8deadSopenharmony_ci --------------- --------------- ---- ---- ---- ---- ---- ---- ---- ---- 1435bd8deadSopenharmony_ci DU8DV8_ATI DUDV_ATI 8 8" 1445bd8deadSopenharmony_ci 1455bd8deadSopenharmony_ci - (p. 136 Table 3.18) Add Row: 1465bd8deadSopenharmony_ci 1475bd8deadSopenharmony_ci "Base REPLACE MODULATE 1485bd8deadSopenharmony_ci Internal Format Texture Function Texture Function 1495bd8deadSopenharmony_ci --------------- ---------------- ---------------- 1505bd8deadSopenharmony_ci DUDV_ATI undefined undefined" 1515bd8deadSopenharmony_ci 1525bd8deadSopenharmony_ci - (p. 137 Table 3.19) Add Row: 1535bd8deadSopenharmony_ci 1545bd8deadSopenharmony_ci "Base DECAL BLEND 1555bd8deadSopenharmony_ci Internal Format Texture Function Texture Function 1565bd8deadSopenharmony_ci --------------- ---------------- ---------------- 1575bd8deadSopenharmony_ci DUDV_ATI undefined undefined" 1585bd8deadSopenharmony_ci 1595bd8deadSopenharmony_ci 1605bd8deadSopenharmony_ci Table 3.23: Correspondence of texture components to source 1615bd8deadSopenharmony_ci components for COMBINE_RGB_EXT and COMBINE_ALPHA_EXT arguments" 1625bd8deadSopenharmony_ci 1635bd8deadSopenharmony_ci - (p.138, add new section 3.8.11) 1645bd8deadSopenharmony_ci 1655bd8deadSopenharmony_ci "3.8.11 Texture Bump Parameters 1665bd8deadSopenharmony_ci 1675bd8deadSopenharmony_ci The parameters for environment mapped bump mapping are set through 1685bd8deadSopenharmony_ci the entry point: 1695bd8deadSopenharmony_ci 1705bd8deadSopenharmony_ci void TexBumpParameter[i|f]vATI(enum pname, TYPE *param) 1715bd8deadSopenharmony_ci 1725bd8deadSopenharmony_ci When pname is BUMP_ROT_MATRIX_ATI, the rotation matrix applied to 1735bd8deadSopenharmony_ci each (du, dv) coordinate read from the bumpmap is specified 1745bd8deadSopenharmony_ci (see section 3.8.9 on environment mapped bump mapping). The size 1755bd8deadSopenharmony_ci of the rotation matrix can vary across implementations (to allow for 1765bd8deadSopenharmony_ci future expansion with support for offsets to more than just two 1775bd8deadSopenharmony_ci coordinates). This size can be queried for using: 1785bd8deadSopenharmony_ci 1795bd8deadSopenharmony_ci void GetTexBumpParamter[i|f]vATI(enum pname, TYPE *param) 1805bd8deadSopenharmony_ci 1815bd8deadSopenharmony_ci with pname as BUMP_ROT_MATRIX_SIZE_ATI. This returns the number 1825bd8deadSopenharmony_ci of entries in the BUMP_ROT_MATRIX. When pname is BUMP_NUM_TEX_UNITS_ATI, 1835bd8deadSopenharmony_ci the number of texture units that support bump mapping is returned. 1845bd8deadSopenharmony_ci Given this, an array of supported texture units that support bumpmapping 1855bd8deadSopenharmony_ci can be queried. When pname is BUMP_TEX_UNITS_ATI, an array of size 1865bd8deadSopenharmony_ci BUMP_NUM_TEX_UNITS_ATI is returned in which each element is one of the 1875bd8deadSopenharmony_ci valid texture units (TEXTURE0_ARB, TEXTURE1_ARB, etc.)." 1885bd8deadSopenharmony_ci 1895bd8deadSopenharmony_ci - After Table 3.20 in EXT_texture_env_combine: 1905bd8deadSopenharmony_ci 1915bd8deadSopenharmony_ci "In addition, a special-case COMBINE_RGB_EXT function exists for performing 1925bd8deadSopenharmony_ci environment mapped bump mapping. This function does not behave as 1935bd8deadSopenharmony_ci the standard combine functions. Instead, it specifies that the given 1945bd8deadSopenharmony_ci texture unit has a bumpmap which will be used to offset the texture coordinate 1955bd8deadSopenharmony_ci reads onto another unit. 1965bd8deadSopenharmony_ci 1975bd8deadSopenharmony_ci The texture unit which the bumpmap will bump is specified by setting the 1985bd8deadSopenharmony_ci BUMP_TARGET_ATI to be a valid texture unit. 1995bd8deadSopenharmony_ci 2005bd8deadSopenharmony_ci Environment mapped bump mapping then works as follows: 2015bd8deadSopenharmony_ci 2025bd8deadSopenharmony_ci The (du,dv) offset map specified on the texture unit with BUMP_ENVMAP_ATI 2035bd8deadSopenharmony_ci will be used to offset the texture coordinates read into the map on the 2045bd8deadSopenharmony_ci BUMP_TARGET_ATI unit. The (du,dv) texel will be fetched from the bumpmap 2055bd8deadSopenharmony_ci at the texture coordinate specified for the bumpmap. This (du,dv) texel 2065bd8deadSopenharmony_ci will then be rotated through the BUMP_ROT_MATRIX: 2075bd8deadSopenharmony_ci 2085bd8deadSopenharmony_ci du' = du * Rot[00] + dv * Rot[01] 2095bd8deadSopenharmony_ci dv' = du * Rot[10] + dv * Rot[11] 2105bd8deadSopenharmony_ci 2115bd8deadSopenharmony_ci (du',dv') will then be used to offset the (u,v) coordinates used to read 2125bd8deadSopenharmony_ci into the texture on BUMP_TARGET_ATI: 2135bd8deadSopenharmony_ci 2145bd8deadSopenharmony_ci u = u + du' 2155bd8deadSopenharmony_ci v = v + dv' 2165bd8deadSopenharmony_ci 2175bd8deadSopenharmony_ci These final coordinates are then used to fetch from the texture on 2185bd8deadSopenharmony_ci BUMP_TARGET_ATI." 2195bd8deadSopenharmony_ci 2205bd8deadSopenharmony_ci 2215bd8deadSopenharmony_ci - Change to table 3.23 in EXT_texture_env_combine: 2225bd8deadSopenharmony_ci 2235bd8deadSopenharmony_ci "Base Internal Format RGB Values Alpha Value 2245bd8deadSopenharmony_ci -------------------- ---------- ----------- 2255bd8deadSopenharmony_ci ALPHA 0, 0, 0 At 2265bd8deadSopenharmony_ci LUMINANCE Lt, Lt, Lt 1 2275bd8deadSopenharmony_ci LUMINANCE_ALPHA Lt, Lt, Lt At 2285bd8deadSopenharmony_ci INTENSITY It, It, It It 2295bd8deadSopenharmony_ci RGB Rt, Gt, Bt 1 2305bd8deadSopenharmony_ci RGBA Rt, Gt, Bt At 2315bd8deadSopenharmony_ci DUDV_ATI 0, 0, 0 1 2325bd8deadSopenharmony_ci " 2335bd8deadSopenharmony_ci 2345bd8deadSopenharmony_ci 2355bd8deadSopenharmony_ci 2365bd8deadSopenharmony_ciAdditions to Chapter 4: 2375bd8deadSopenharmony_ci 2385bd8deadSopenharmony_ci None 2395bd8deadSopenharmony_ci 2405bd8deadSopenharmony_ciAdditions to Chapter 5: 2415bd8deadSopenharmony_ci 2425bd8deadSopenharmony_ci None 2435bd8deadSopenharmony_ci 2445bd8deadSopenharmony_ciAdditions to Chapter 6: 2455bd8deadSopenharmony_ci 2465bd8deadSopenharmony_ci None 2475bd8deadSopenharmony_ci 2485bd8deadSopenharmony_ciAdditions to the GLX Specification 2495bd8deadSopenharmony_ci 2505bd8deadSopenharmony_ci None 2515bd8deadSopenharmony_ci 2525bd8deadSopenharmony_ci 2535bd8deadSopenharmony_ciGLX Protocol 2545bd8deadSopenharmony_ci 2555bd8deadSopenharmony_ci None 2565bd8deadSopenharmony_ci 2575bd8deadSopenharmony_ciDependencies on EXT_point_parameters 2585bd8deadSopenharmony_ci 2595bd8deadSopenharmony_ci 2605bd8deadSopenharmony_ciErrors 2615bd8deadSopenharmony_ci 2625bd8deadSopenharmony_ci INVALID_ENUM if TexBumpParameter[i|f]vATI is called with pname not equal to 2635bd8deadSopenharmony_ci BUMP_ROT_MATRIX_ATI. 2645bd8deadSopenharmony_ci 2655bd8deadSopenharmony_ci INVALID_ENUM if GetTexBumpParameter[i|f]vATI is called with pname not equal 2665bd8deadSopenharmony_ci to BUMP_ROT_MATRIX_ATI, BUMP_ROT_MATRIX_SIZE_ATI, BUMP_NUM_TEX_UNITS_ATI, 2675bd8deadSopenharmony_ci or BUMP_TEX_UNITS_ATI. 2685bd8deadSopenharmony_ci 2695bd8deadSopenharmony_ci INVALID_VALUE if the combineRGB function is set on a unit not supported as 2705bd8deadSopenharmony_ci queried with BUMP_TEX_UNITS_ATI. 2715bd8deadSopenharmony_ci 2725bd8deadSopenharmony_ciNew State 2735bd8deadSopenharmony_ci 2745bd8deadSopenharmony_ci Get Value Get Command Type Minimum Value Description 2755bd8deadSopenharmony_ci --------- ----------- ---- ------------- ----------- 2765bd8deadSopenharmony_ci BUMP_ROT_MATRIX_ATI GetTexBumpParameterfv n x F - Bump rotation matrix on current unit 2775bd8deadSopenharmony_ci BUMP_ROT_MATRIX_SIZE_ATI GetTexBumpParameteriv Z+ 4 Bump rotation matrix size 2785bd8deadSopenharmony_ci BUMP_NUM_TEX_UNITS_ATI GetTexBumpParameteriv Z+ 1 Number of bump texture units 2795bd8deadSopenharmony_ci BUMP_TEX_UNITS_ATI GetTexBumpParameteriv n x Z+ - Supported bump texture units 2805bd8deadSopenharmony_ci 2815bd8deadSopenharmony_ci 2825bd8deadSopenharmony_ciNew Implementation Dependent State 2835bd8deadSopenharmony_ci 2845bd8deadSopenharmony_ci None 2855bd8deadSopenharmony_ci 2865bd8deadSopenharmony_ci 2875bd8deadSopenharmony_ciRevision History 2885bd8deadSopenharmony_ci 2895bd8deadSopenharmony_ci Date: 11/4/2006 2905bd8deadSopenharmony_ci Revision: 1.02 2915bd8deadSopenharmony_ci - Updated contact info after ATI/AMD merger. 2925bd8deadSopenharmony_ci 2935bd8deadSopenharmony_ci Date: 1/09/2003 2945bd8deadSopenharmony_ci Revision: 1.01 2955bd8deadSopenharmony_ci - Added an error condition. 2965bd8deadSopenharmony_ci 2975bd8deadSopenharmony_ci Date: 8/21/2001 2985bd8deadSopenharmony_ci Revision: 1.0 2995bd8deadSopenharmony_ci - First release. 3005bd8deadSopenharmony_ci 301