15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci EXT_light_texture 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_EXT_light_texture 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciVersion 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Last Modified Date: September 26, 1998 125bd8deadSopenharmony_ci Author Revision: $Header: //depot/main/doc/registry/extensions/EXT/light_texture.spec#15 $ 135bd8deadSopenharmony_ci 145bd8deadSopenharmony_ciNumber 155bd8deadSopenharmony_ci 165bd8deadSopenharmony_ci 117 175bd8deadSopenharmony_ci 185bd8deadSopenharmony_ciDependencies 195bd8deadSopenharmony_ci 205bd8deadSopenharmony_ci OpenGL 1.1 is required. 215bd8deadSopenharmony_ci EXT_fragment_lighting is required. 225bd8deadSopenharmony_ci EXT_multitexture affects the definition of this extension. 235bd8deadSopenharmony_ci SGIX_shadow affects the definition of this extension. 245bd8deadSopenharmony_ci SGIX_color_range affects the definition of this extension. 255bd8deadSopenharmony_ci 265bd8deadSopenharmony_ciOverview 275bd8deadSopenharmony_ci 285bd8deadSopenharmony_ci This extension defines a general mechanism for substituting the 295bd8deadSopenharmony_ci fragment color computed during texture environment processing in 305bd8deadSopenharmony_ci place of other fragment attributes such as the fragment normal, or 315bd8deadSopenharmony_ci as sources for some of the computations in the fragment processing 325bd8deadSopenharmony_ci pipeline, for example as material or light parameters in the 335bd8deadSopenharmony_ci fragment lighting computations. 345bd8deadSopenharmony_ci 355bd8deadSopenharmony_ci 365bd8deadSopenharmony_ci Cf ----------------------+ 375bd8deadSopenharmony_ci | +-> to lighting parameters 385bd8deadSopenharmony_ci v | 395bd8deadSopenharmony_ci +------------+ +--------+ +-------------+ 405bd8deadSopenharmony_ci | | | | | | 415bd8deadSopenharmony_ci | texel |------->| texenv |-----| texture |---> Cf' (to Light Environment 425bd8deadSopenharmony_ci | generation | | | | application | or Fog) 435bd8deadSopenharmony_ci | | | | | | 445bd8deadSopenharmony_ci +------------+ +--------+ +-------------+ 455bd8deadSopenharmony_ci 465bd8deadSopenharmony_ci 475bd8deadSopenharmony_ciPatent Note 485bd8deadSopenharmony_ci 495bd8deadSopenharmony_ci To the extent that SGI has patent rights that are unavoidably 505bd8deadSopenharmony_ci infringed by all implementations of this extension, SGI will, upon 515bd8deadSopenharmony_ci request, grant a license under such patent rights to the requesting 525bd8deadSopenharmony_ci party subject to reasonable terms and conditions, and without 535bd8deadSopenharmony_ci incremental charge or fee. Such license shall be non-exclusive, and 545bd8deadSopenharmony_ci non-transferable, and shall be limited to implementations of the 555bd8deadSopenharmony_ci extension in combination with any conformance certified 565bd8deadSopenharmony_ci implementation of the OpenGL API. Such license is expressly 575bd8deadSopenharmony_ci contingent upon a grant back of a non-exclusive, royalty-free, 585bd8deadSopenharmony_ci perpetual, worldwide license to SGI and its OpenGL licensees under 595bd8deadSopenharmony_ci the requesting party's patent rights that are unavoidably infringed 605bd8deadSopenharmony_ci by all implementations of this extension or OpenGL. 615bd8deadSopenharmony_ci 625bd8deadSopenharmony_ciIssues 635bd8deadSopenharmony_ci 645bd8deadSopenharmony_ci * normal3 rather than normal? 655bd8deadSopenharmony_ci 665bd8deadSopenharmony_ci * other parameters, spotlight fall off, ... 675bd8deadSopenharmony_ci 685bd8deadSopenharmony_ci * implications of extended range colors. (do we clamp to [0,1]?) 695bd8deadSopenharmony_ci 705bd8deadSopenharmony_ci * TexturePath or DirectTexture rather than ApplyTexture? 715bd8deadSopenharmony_ci 725bd8deadSopenharmony_ci * special handling for alpha or luminance textures? (colormask?) 735bd8deadSopenharmony_ci 745bd8deadSopenharmony_ci * more tokens for driving multiple inputs, e.g. AMBIENT_DIFFUSE_AND_SPECULAR 755bd8deadSopenharmony_ci 765bd8deadSopenharmony_ci * normals need to be in the range [-1,1] 775bd8deadSopenharmony_ci 785bd8deadSopenharmony_ci when a texture is used as a normal, its components are scaled 795bd8deadSopenharmony_ci and biased to the range [-1,1]. 805bd8deadSopenharmony_ci 815bd8deadSopenharmony_ci 825bd8deadSopenharmony_ciNew Procedures and Functions 835bd8deadSopenharmony_ci 845bd8deadSopenharmony_ci void ApplyTextureEXT(enum mode); 855bd8deadSopenharmony_ci void TextureLightEXT(enum pname) 865bd8deadSopenharmony_ci void TextureMaterialEXT(enum face, enum mode); 875bd8deadSopenharmony_ci 885bd8deadSopenharmony_ciNew Tokens 895bd8deadSopenharmony_ci 905bd8deadSopenharmony_ci Accepted by the <mode> parameter of ApplyTextureEXT: 915bd8deadSopenharmony_ci 925bd8deadSopenharmony_ci FRAGMENT_MATERIAL_EXT 0x8349 935bd8deadSopenharmony_ci FRAGMENT_NORMAL_EXT 0x834A 945bd8deadSopenharmony_ci FRAGMENT_DEPTH_EXT 0x8452 955bd8deadSopenharmony_ci FRAGMENT_COLOR_EXT 0x834C 965bd8deadSopenharmony_ci 975bd8deadSopenharmony_ci (*note*: FRAGMENT_DEPTH_EXT value changed from 0x834B on promotion 985bd8deadSopenharmony_ci from SGIX, to avoid collision with EXT_fog_coord). 995bd8deadSopenharmony_ci 1005bd8deadSopenharmony_ci Accepted by the <pname> parameter of TextureLightEXT: 1015bd8deadSopenharmony_ci 1025bd8deadSopenharmony_ci ATTENUATION_EXT 0x834D 1035bd8deadSopenharmony_ci SHADOW_ATTENUATION_EXT 0x834E 1045bd8deadSopenharmony_ci 1055bd8deadSopenharmony_ci Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, 1065bd8deadSopenharmony_ci and GetDoublev: 1075bd8deadSopenharmony_ci 1085bd8deadSopenharmony_ci TEXTURE_APPLICATION_MODE_EXT 0x834F 1095bd8deadSopenharmony_ci TEXTURE_LIGHT_EXT 0x8350 1105bd8deadSopenharmony_ci TEXTURE_MATERIAL_FACE_EXT 0x8351 1115bd8deadSopenharmony_ci TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 1125bd8deadSopenharmony_ci 1135bd8deadSopenharmony_ci 1145bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.1 Specification (OpenGL Operation) 1155bd8deadSopenharmony_ci 1165bd8deadSopenharmony_ci None 1175bd8deadSopenharmony_ci 1185bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.1 Specification (Rasterization) 1195bd8deadSopenharmony_ci 1205bd8deadSopenharmony_ci Immediately before section 3.9 Fog: 1215bd8deadSopenharmony_ci 1225bd8deadSopenharmony_ci Section 3.X Texture Application 1235bd8deadSopenharmony_ci 1245bd8deadSopenharmony_ci The command 1255bd8deadSopenharmony_ci 1265bd8deadSopenharmony_ci ApplyTextureEXT(enum mode); 1275bd8deadSopenharmony_ci 1285bd8deadSopenharmony_ci determines how the color produced as a result of texture 1295bd8deadSopenharmony_ci environment processing is used for subsequent fragment 1305bd8deadSopenharmony_ci operations. Table 3.X.1 summarizes the interpretation of color 1315bd8deadSopenharmony_ci values for the values of the <mode> parameter. 1325bd8deadSopenharmony_ci 1335bd8deadSopenharmony_ci 1345bd8deadSopenharmony_ci -- 1355bd8deadSopenharmony_ci FRAGMENT_COLOR_EXT color is used as fragment color value 1365bd8deadSopenharmony_ci FRAGMENT_DEPTH_EXT color is used as fragment depth value 1375bd8deadSopenharmony_ci FRAGMENT_LIGHT0_EXT color is specified parameter for fragment light 0 1385bd8deadSopenharmony_ci ... 1395bd8deadSopenharmony_ci FRAGMENT_LIGHTn_EXT color is specified parameter for fragment light n 1405bd8deadSopenharmony_ci FRAGMENT_MATERIAL_EXT color is specified material parameter(s) 1415bd8deadSopenharmony_ci FRAGMENT_NORMAL_EXT color is used as fragment normal 1425bd8deadSopenharmony_ci 1435bd8deadSopenharmony_ci Table 3.X.1 ApplyTextureEXT 1445bd8deadSopenharmony_ci -- 1455bd8deadSopenharmony_ci 1465bd8deadSopenharmony_ci If <mode> is FRAGMENT_COLOR_EXT then the post-texture-environment 1475bd8deadSopenharmony_ci color is used as the fragment color during later fragment 1485bd8deadSopenharmony_ci computations. This is the default behavior. If <mode> is not 1495bd8deadSopenharmony_ci FRAGMENT_COLOR_EXT then the fragment color is the 1505bd8deadSopenharmony_ci pre-texture-environment color. 1515bd8deadSopenharmony_ci 1525bd8deadSopenharmony_ci If <mode> is FRAGMENT_DEPTH_EXT then the red component of the 1535bd8deadSopenharmony_ci post-texture-environment color replaces the depth value for the 1545bd8deadSopenharmony_ci fragment. 1555bd8deadSopenharmony_ci 1565bd8deadSopenharmony_ci If <mode> is FRAGMENT_NORMAL_EXT then the R, G, and B components 1575bd8deadSopenharmony_ci of the post-texture-environment color are used to compute the 1585bd8deadSopenharmony_ci components nx, ny, and nz of the fragment normal vector as follows: 1595bd8deadSopenharmony_ci 1605bd8deadSopenharmony_ci nx = 2*R-1 1615bd8deadSopenharmony_ci ny = 2*G-1 1625bd8deadSopenharmony_ci nz = 2*B-1 1635bd8deadSopenharmony_ci 1645bd8deadSopenharmony_ci In effect, the post-texture-environment color components are scaled 1655bd8deadSopenharmony_ci and biased so that their range is [-1,1]. 1665bd8deadSopenharmony_ci 1675bd8deadSopenharmony_ci If <mode> is one of FRAGMENT_LIGHT0_EXT .. FRAGMENT_LIGHTn_EXT 1685bd8deadSopenharmony_ci then the post-texture-environment color substitutes a fragment 1695bd8deadSopenharmony_ci lighting parameter of the light indicated by <mode> during the 1705bd8deadSopenharmony_ci lighting computation for that fragment. The substututed lighting 1715bd8deadSopenharmony_ci parameter is specified by the TextureLightEXT command described 1725bd8deadSopenharmony_ci in Section 3.X.2. 1735bd8deadSopenharmony_ci 1745bd8deadSopenharmony_ci If <mode> is FRAGMENT_MATERIAL_EXT then the 1755bd8deadSopenharmony_ci post-texture-environment color substitutes a fragment material 1765bd8deadSopenharmony_ci parameter during the lighting computation for that fragment. The 1775bd8deadSopenharmony_ci fragment material parameter substituted is specified by the 1785bd8deadSopenharmony_ci TextureMaterialEXT command described in Section 3.X.3. 1795bd8deadSopenharmony_ci 1805bd8deadSopenharmony_ci If <mode> is changed from FRAGMENT_MATERIAL_EXT or 1815bd8deadSopenharmony_ci FRAGMENT_LIGHT0_EXT .. FRAGMENT_LIGHTn_EXT to another value, the 1825bd8deadSopenharmony_ci corresponding material or light parameter reverts back to the 1835bd8deadSopenharmony_ci current state value for that parameter, i.e., the value most 1845bd8deadSopenharmony_ci recently specified with one of the FragmentMaterial{T}[v]EXT or 1855bd8deadSopenharmony_ci FragmentLight{T}[v]EXT commands. In particular, the state 1865bd8deadSopenharmony_ci parameters corresponding to the portions of the fragment lighting 1875bd8deadSopenharmony_ci computations being substituted by the texture application mode 1885bd8deadSopenharmony_ci continue to track the values specified by the 1895bd8deadSopenharmony_ci FragmentMaterial{T}[v]EXT and FragmentLight{T}[v]EXT commands. 1905bd8deadSopenharmony_ci 1915bd8deadSopenharmony_ci 1925bd8deadSopenharmony_ci Section 3.X.2 Texture Applied to Light Parameters 1935bd8deadSopenharmony_ci 1945bd8deadSopenharmony_ci The command 1955bd8deadSopenharmony_ci 1965bd8deadSopenharmony_ci TextureLightEXT(enum pname); 1975bd8deadSopenharmony_ci 1985bd8deadSopenharmony_ci determines which fragment light parameter is substituted with the 1995bd8deadSopenharmony_ci post-texture-environment color when the texture application mode 2005bd8deadSopenharmony_ci is one of the fragment lights. <pname> is one of AMBIENT, DIFFUSE, 2015bd8deadSopenharmony_ci SPECULAR, or ATTENUATION_EXT. If <pname> is AMBIENT, DIFFUSE, or 2025bd8deadSopenharmony_ci SPECULAR then the ambient, diffuse, or specular intensity 2035bd8deadSopenharmony_ci parameter is substituted. If <pname> is ATTENUATION_EXT, then 2045bd8deadSopenharmony_ci the attenuation term att_i from equation (2.4) is subsituted with 2055bd8deadSopenharmony_ci the value of the red component of the post-texture-environment 2065bd8deadSopenharmony_ci color. If <pname> is SHADOW_ATTENUATION_EXT then the fragment 2075bd8deadSopenharmony_ci lighting equation is augmented with an additional attenuation term 2085bd8deadSopenharmony_ci Shad_i: 2095bd8deadSopenharmony_ci 2105bd8deadSopenharmony_ci Cl = Em 2115bd8deadSopenharmony_ci + Am*As 2125bd8deadSopenharmony_ci SUM{_i = 0 through Nf-1} { 2135bd8deadSopenharmony_ci + Shad_i*Atten_i*SpotL_i*{ 2145bd8deadSopenharmony_ci + Am*Al_i 2155bd8deadSopenharmony_ci + Dm*Dl_i*(N.L_i) 2165bd8deadSopenharmony_ci + Sm*Sl_i*(N.H_i)^n 2175bd8deadSopenharmony_ci } 2185bd8deadSopenharmony_ci } 2195bd8deadSopenharmony_ci 2205bd8deadSopenharmony_ci with Shad_i coming from the red component of the post-texture-environment 2215bd8deadSopenharmony_ci color. If a post-environment texture color is not applied to 2225bd8deadSopenharmony_ci SHADOW_ATTENUATION_EXT for fragment light <i>, then Shad_i is effectively 2235bd8deadSopenharmony_ci 1.0. 2245bd8deadSopenharmony_ci 2255bd8deadSopenharmony_ci 2265bd8deadSopenharmony_ci Section 3.X.3 Texture Applied to Material Parameters 2275bd8deadSopenharmony_ci 2285bd8deadSopenharmony_ci The command 2295bd8deadSopenharmony_ci 2305bd8deadSopenharmony_ci TextureMaterialEXT(enum face, enum mode); 2315bd8deadSopenharmony_ci 2325bd8deadSopenharmony_ci determines which fragment material parameter is substituted with 2335bd8deadSopenharmony_ci the post-texture-environment color when the texture application 2345bd8deadSopenharmony_ci mode is FRAGMENT_MATERIAL_EXT. <face> is one of FRONT, BACK, or 2355bd8deadSopenharmony_ci FRONT_AND_BACK, indicating whether the front material, back 2365bd8deadSopenharmony_ci material, or both are affected by the current color. <mode> is on 2375bd8deadSopenharmony_ci of EMISSION, AMBIENT, DIFFUSE, SPECULAR, SHININESS, or 2385bd8deadSopenharmony_ci AMBIENT_AND_DIFFUSE and specifies which material property or 2395bd8deadSopenharmony_ci properties are substituted with the post-texture-environment 2405bd8deadSopenharmony_ci color. If <mode> is EMISSION, AMBIENT, DIFFUSE, or SPECULAR, then 2415bd8deadSopenharmony_ci the value of e_cm, a_cm, d_cm, or s_cm from the fragment lighting 2425bd8deadSopenharmony_ci equations, respectively, will be substituted with the 2435bd8deadSopenharmony_ci post-texture-environment color. If <mode> is AMBIENT_AND_DIFFUSE, 2445bd8deadSopenharmony_ci both a_cm and d_cm will be substituted. If <mode> is SHININESS, 2455bd8deadSopenharmony_ci then s_rm will be substituted with 128.0*r, where r is the value 2465bd8deadSopenharmony_ci of the red component of the post-texture-environment color. 2475bd8deadSopenharmony_ci 2485bd8deadSopenharmony_ci Section 3.X.4 Interactions with multiple textures 2495bd8deadSopenharmony_ci 2505bd8deadSopenharmony_ci The color computed during texture environment processing for each 2515bd8deadSopenharmony_ci active texture can be independently controlled using 2525bd8deadSopenharmony_ci ApplyTextureEXT. In the initial state all texture application 2535bd8deadSopenharmony_ci modes are FRAGMENT_COLOR_EXT and the logical flow of fragment 2545bd8deadSopenharmony_ci information through the OpenGL pipeline is shown in figure 3.X.5 2555bd8deadSopenharmony_ci with the result color of each texture environment stage serving as 2565bd8deadSopenharmony_ci input for the following stage. 2575bd8deadSopenharmony_ci 2585bd8deadSopenharmony_ci 2595bd8deadSopenharmony_ci Ct0 Ct1 Ctn 2605bd8deadSopenharmony_ci | | | 2615bd8deadSopenharmony_ci +------+ +------+ +------+ 2625bd8deadSopenharmony_ci | | | | | | 2635bd8deadSopenharmony_ci Cf -| TE0 |-->| TE1 |--> ... -->| TEn |--> Cf' (to fragment lighting/fog) 2645bd8deadSopenharmony_ci | | | | | | 2655bd8deadSopenharmony_ci +------+ +------+ +------+ 2665bd8deadSopenharmony_ci 2675bd8deadSopenharmony_ci Figure 3.X.5 2685bd8deadSopenharmony_ci 2695bd8deadSopenharmony_ci If the application mode for texture <i> is set to something other 2705bd8deadSopenharmony_ci than FRAGMENT_COLOR_EXT, then the input for texture environment 2715bd8deadSopenharmony_ci <i+1> becomes the original pre-texturing fragment color Cf. If 2725bd8deadSopenharmony_ci the application mode for texture <i> is returned to 2735bd8deadSopenharmony_ci FRAGMENT_COLOR_EXT, then the input for texture environment <i+1> 2745bd8deadSopenharmony_ci reverts back to the result from texture environment <i>. If i is 2755bd8deadSopenharmony_ci the last texture in the chain, then the pre-texturing fragment 2765bd8deadSopenharmony_ci color Cf is used for all subsequent fragment processing. Figure 2775bd8deadSopenharmony_ci 3.X.6 illustrates the case for the application mode for texture 1 2785bd8deadSopenharmony_ci set to something other than FRAGMENT_COLOR_EXT. 2795bd8deadSopenharmony_ci 2805bd8deadSopenharmony_ci Ct0 Ct1 Ct2 Ctn 2815bd8deadSopenharmony_ci | | ^ | | 2825bd8deadSopenharmony_ci +------+ +------+ | +------+ +------+ 2835bd8deadSopenharmony_ci | | | | | | | | | 2845bd8deadSopenharmony_ci Cf -| TE0 |-->| TE1 |-+ +-| TE2 | ... -->| TEn |--> Cf' 2855bd8deadSopenharmony_ci | | | | | | | | | | 2865bd8deadSopenharmony_ci | +------+ +------+ | +------+ +------+ 2875bd8deadSopenharmony_ci +------------------------+ 2885bd8deadSopenharmony_ci 2895bd8deadSopenharmony_ci Figure 3.X.6 2905bd8deadSopenharmony_ci 2915bd8deadSopenharmony_ci It is possible for the application mode for more than one texture 2925bd8deadSopenharmony_ci to refer to the identical parameter, for example, the FRONT 2935bd8deadSopenharmony_ci DIFFUSE material color. Such conflicts are resolved by having the 2945bd8deadSopenharmony_ci lowest numbered, enabled, texture provide the color value and any 2955bd8deadSopenharmony_ci higher numbered textures are ignored. Note that when the 2965bd8deadSopenharmony_ci application mode is FRAGMENT_LIGHTi_EXT, the TextureLightEXT 2975bd8deadSopenharmony_ci <pname> parameter must be considered and when the application mode 2985bd8deadSopenharmony_ci is FRAGMENT_MATERIAL_EXT that the <face> and <mode> parameters 2995bd8deadSopenharmony_ci for TextureMaterialEXT must be considered. A partial overlap 3005bd8deadSopenharmony_ci with the TextureMaterialEXT <face> and <mode> parameter (e.g., 3015bd8deadSopenharmony_ci FRONT,DIFFUSE and FRONT_AND_BACK,DIFFUSE) is treated as a 3025bd8deadSopenharmony_ci conflict. 3035bd8deadSopenharmony_ci 3045bd8deadSopenharmony_ci If there is a conflict between a material parameter being substituted 3055bd8deadSopenharmony_ci through FragmentColorMaterialEXT and TextureMaterialEXT, then the color 3065bd8deadSopenharmony_ci value assocaiated with the texture is ignored and the pre-texture fragment 3075bd8deadSopenharmony_ci color value is substituted. 3085bd8deadSopenharmony_ci 3095bd8deadSopenharmony_ci 3105bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations 3115bd8deadSopenharmony_ciand the Framebuffer) 3125bd8deadSopenharmony_ci 3135bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.1 Specification (Special Functions) 3145bd8deadSopenharmony_ci 3155bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.1 Specification (State and State Requests) 3165bd8deadSopenharmony_ci 3175bd8deadSopenharmony_ciAdditions to the GLX Specification 3185bd8deadSopenharmony_ci 3195bd8deadSopenharmony_ci None 3205bd8deadSopenharmony_ci 3215bd8deadSopenharmony_ciGLX Protocol 3225bd8deadSopenharmony_ci 3235bd8deadSopenharmony_ci TBD 3245bd8deadSopenharmony_ci 3255bd8deadSopenharmony_ciDependencies on EXT_fragment_lighting 3265bd8deadSopenharmony_ci 3275bd8deadSopenharmony_ci EXT_fragment_lighting is required since this extension pertains to how 3285bd8deadSopenharmony_ci fragment lighting computations are performed and this extension makes no 3295bd8deadSopenharmony_ci sense without fragment lighting. 3305bd8deadSopenharmony_ci 3315bd8deadSopenharmony_ciDependencies on SGIX_color_range 3325bd8deadSopenharmony_ci 3335bd8deadSopenharmony_ci <this is a note, not a true dependency -db> 3345bd8deadSopenharmony_ci The scale and bias of performed on colors when converting them 3355bd8deadSopenharmony_ci to fragment normals is done regardless of whether SGIX_color_range is 3365bd8deadSopenharmony_ci supported. 3375bd8deadSopenharmony_ci 3385bd8deadSopenharmony_ciDependencies on EXT_multitexture 3395bd8deadSopenharmony_ci 3405bd8deadSopenharmony_ci If EXT_multitexture is not supported only the single 3415bd8deadSopenharmony_ci post-texture-environment color is available for substitution and the 3425bd8deadSopenharmony_ci discussion of multiple textures in section 3.X.4 is void. 3435bd8deadSopenharmony_ci 3445bd8deadSopenharmony_ciDependencies on SGIX_shadow 3455bd8deadSopenharmony_ci 3465bd8deadSopenharmony_ci If SGIX_shadow is not supported then this extension does not define 3475bd8deadSopenharmony_ci the attenuation multiplier term SHADOW_ATTENUATION_EXT. All discussion 3485bd8deadSopenharmony_ci of this attenuation term is void. 3495bd8deadSopenharmony_ci 3505bd8deadSopenharmony_ciErrors 3515bd8deadSopenharmony_ci 3525bd8deadSopenharmony_ci INVALID_ENUM is generated if ApplyTextureEXT parameter <mode> is 3535bd8deadSopenharmony_ci not FRAGMENT_MATERIAL_EXT, FRAGMENT_LIGHT0_EXT 3545bd8deadSopenharmony_ci .. FRAGMENT_LIGHTn_EXT (where n is the value returned by querying 3555bd8deadSopenharmony_ci MAX_FRAGMENT_LIGHTS_EXT), FRAGMENT_NORMAL_EXT, 3565bd8deadSopenharmony_ci FRAGMENT_DEPTH_EXT, or FRAGMENT_COLOR_EXT. 3575bd8deadSopenharmony_ci 3585bd8deadSopenharmony_ci INVALID_ENUM is generated if TextureLightEXT parameter <pname> is 3595bd8deadSopenharmony_ci not AMBIENT, DIFFUSE, SPECULAR, ATTENUATION_EXT, or 3605bd8deadSopenharmony_ci SHADOW_ATTENUATION_EXT. 3615bd8deadSopenharmony_ci 3625bd8deadSopenharmony_ci INVALID_ENUM is generated if TextureMaterialEXT parameter <face> 3635bd8deadSopenharmony_ci is not FRONT, BACK, or FRONT_AND_BACK or if parameter <mode> is 3645bd8deadSopenharmony_ci not EMISSION, AMBIENT, DIFFUSE, SPECULAR, SHININESS, or 3655bd8deadSopenharmony_ci AMBIENT_AND_DIFFUSE. 3665bd8deadSopenharmony_ci 3675bd8deadSopenharmony_ci INVALID_OPERATION is generated if ApplyTextureEXT, 3685bd8deadSopenharmony_ci TextureLightEXT, or TextureMaterialEXT is executed between 3695bd8deadSopenharmony_ci execution of Begin and the corresponding execution of End. 3705bd8deadSopenharmony_ci 3715bd8deadSopenharmony_ciNew State 3725bd8deadSopenharmony_ci 3735bd8deadSopenharmony_ci Get Value Get Command Type Initial Value Attribute 3745bd8deadSopenharmony_ci --------- ----------- ---- ------------- --------- 3755bd8deadSopenharmony_ci TEXTURE_APPLICATION_MODE_EXT GetIntegerv Z10 FRAGMENT_COLOR_EXT texture 3765bd8deadSopenharmony_ci TEXTURE_LIGHT_EXT GetIntegerv Z5 DIFFUSE texture 3775bd8deadSopenharmony_ci TEXTURE_MATERIAL_FACE_EXT GetIntegerv Z3 FRONT_AND_BACK texture 3785bd8deadSopenharmony_ci TEXTURE_MATERIAL_PARAMETER_EXT GetIntegerv Z6 AMBIENT_AND_DIFFUSE texture 3795bd8deadSopenharmony_ci 3805bd8deadSopenharmony_ciNew Implementation Dependent State 3815bd8deadSopenharmony_ci 3825bd8deadSopenharmony_ci None 383