Name SGIX_fog_texture Name Strings GL_SGIX_fog_texture Version $Date: 1999/03/30 23:13:53 $ $Revision: 1.5 $ Number XXX Dependencies OpenGL 1.1 is required. EXT_light_texture is required. SGIS_multitexture affects the definition of this extension. SGIX_color_range affects the definition of this extension. Overview This extension defines a general mechanism for substituting the fragment color computed during texture environment processing in place of fog fragment attributes such as fog color, fog density fog patchy factor. The application of texture to fog color assumes no internal format constraint of the image. Fog density and patchy multiplicative factor are scalar values and are substituted by the red texture component. IP Status Silicon Graphics has filed for patent protection for some of the techniques described in this extension document. Issues: * This extension is incomplete with respect to the dependency of the fog_patchy extension * The fog patchy factor is expected to be a constant of 1. unless is applied by a texture. Is that the most intuitive api. Should we support a any constant for the factor and have it be set as a fog parameter (in glFog). New Procedures and Functions void TextureFogSGIX(enum pname); New Tokens Accepted by the parameter of ApplyTextureEXT: FRAGMENT_FOG_SGIX 0xXXXX Accepted by the parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev: TEXTURE_FOG_SGIX 0xXXXX Accepted by the parameter of TextureFogSGIX: FOG_PATCHY_FACTOR_SGIX 0xXXXX Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation) None Additions to Chapter 3 of the 1.1 Specification (Rasterization) Add at the end of Section 3.X.1 Texture Application If is FRAGMENT_FOG_SGIX then the post-texture-environment color substitutes one of fragment fog parameters during the fog computation of the fragment. The fragment fog parameters substituted are specified by the command TextureFogSGIX described in section 3.X.5. Add section 3.X.4 and replace 3.X.4 with 3.X.5 for Interactions with multiple textures 3.X.4 Texture Applied to Fog Parameters TextureFogSGIX(enum pname) determines which fog fragment parameters is substituted with the post-texture-environment color, when the texture application mode is FRAGMENT_FOG_SGIX. is one of FOG_COLOR, FOG_DENSITY or FOG_PATCHY_FACTOR_SGIX. FOG_COLOR can be applied with a texture image of any number of components. FOG_DENSITY and FOG_PATCHY_FACTOR_SGIX are scalar entities derived from the texture red component. Additions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations and the Framebuffer) Additions to Chapter 5 of the 1.1 Specification (Special Functions) Additions to Chapter 6 of the 1.1 Specification (State and State Requests) Additions to the GLX Specification None GLX Protocol TBD Dependencies on SGIX_light_texture EXT_light_texture is required since this extension adds an enumerant parameter to the ApplyTextureEXT command. Dependencies on EXT_multitexture If EXT_multitexture is not supported only the single post-texture-environment color is available for substitution and the discussion of multiple textures in section 3.X.5 is void. Errors INVALID_ENUM is generated if TextureFogSGIX parameter is not FOG_COLOR, FOG_DENSITY, or FOG_PATCHY_FACTOR_SGIX. New State Get Value Get Command Type Initial Value Attribute --------- ----------- ---- ------------- --------- TEXTURE_FOG_SGIX GetIntegerv Z10 FOG_COLOR texture New Implementation Dependent State None