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