1Name 2 3 SGIX_fog_texture 4 5Name Strings 6 7 GL_SGIX_fog_texture 8 9Version 10 11 $Date: 1999/03/30 23:13:53 $ $Revision: 1.5 $ 12 13Number 14 15 XXX 16 17Dependencies 18 19 OpenGL 1.1 is required. 20 EXT_light_texture is required. 21 SGIS_multitexture affects the definition of this extension. 22 SGIX_color_range affects the definition of this extension. 23 24Overview 25 26 This extension defines a general mechanism for substituting the 27 fragment color computed during texture environment processing in 28 place of fog fragment attributes such as fog color, fog density 29 fog patchy factor. The application of texture to fog color assumes 30 no internal format constraint of the image. Fog density and patchy 31 multiplicative factor are scalar values and are substituted 32 by the red texture component. 33 34IP Status 35 36 Silicon Graphics has filed for patent protection for some of the 37 techniques described in this extension document. 38 39Issues: 40 41 * This extension is incomplete with respect to the dependency 42 of the fog_patchy extension 43 44 * The fog patchy factor is expected to be a constant of 1. 45 unless is applied by a texture. Is that the most intuitive 46 api. Should we support a any constant for the factor and have 47 it be set as a fog parameter (in glFog). 48 49New Procedures and Functions 50 51 void TextureFogSGIX(enum pname); 52 53New Tokens 54 55 Accepted by the <mode> parameter of ApplyTextureEXT: 56 57 FRAGMENT_FOG_SGIX 0xXXXX 58 59 Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, 60 and GetDoublev: 61 62 TEXTURE_FOG_SGIX 0xXXXX 63 64 Accepted by the <pname> parameter of TextureFogSGIX: 65 66 FOG_PATCHY_FACTOR_SGIX 0xXXXX 67 68Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation) 69 70 None 71 72Additions to Chapter 3 of the 1.1 Specification (Rasterization) 73 74 Add at the end of Section 3.X.1 Texture Application 75 76 If <mode> is FRAGMENT_FOG_SGIX then the post-texture-environment 77 color substitutes one of fragment fog parameters during the fog 78 computation of the fragment. The fragment fog parameters 79 substituted are specified by the command TextureFogSGIX 80 described in section 3.X.5. 81 82 Add section 3.X.4 and replace 3.X.4 with 3.X.5 for 83 Interactions with multiple textures 84 85 3.X.4 Texture Applied to Fog Parameters 86 87 TextureFogSGIX(enum pname) determines which fog fragment parameters 88 is substituted with the post-texture-environment color, when the 89 texture application mode is FRAGMENT_FOG_SGIX. <pname> is one of 90 FOG_COLOR, FOG_DENSITY or FOG_PATCHY_FACTOR_SGIX. FOG_COLOR can be 91 applied with a texture image of any number of components. FOG_DENSITY 92 and FOG_PATCHY_FACTOR_SGIX are scalar entities derived from the 93 texture red component. 94 95Additions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations 96and the Framebuffer) 97 98Additions to Chapter 5 of the 1.1 Specification (Special Functions) 99 100Additions to Chapter 6 of the 1.1 Specification (State and State Requests) 101 102Additions to the GLX Specification 103 104 None 105 106GLX Protocol 107 108 TBD 109 110Dependencies on SGIX_light_texture 111 EXT_light_texture is required since this extension adds 112 an enumerant parameter to the ApplyTextureEXT command. 113 114Dependencies on EXT_multitexture 115 If EXT_multitexture is not supported only the single 116 post-texture-environment color is available for substitution and the 117 discussion of multiple textures in section 3.X.5 is void. 118 119Errors 120 INVALID_ENUM is generated if TextureFogSGIX parameter 121 is not FOG_COLOR, FOG_DENSITY, or FOG_PATCHY_FACTOR_SGIX. 122 123New State 124 125 Get Value Get Command Type Initial Value Attribute 126 --------- ----------- ---- ------------- --------- 127 128 TEXTURE_FOG_SGIX GetIntegerv Z10 FOG_COLOR texture 129 130New Implementation Dependent State 131 132 None 133 134