XXX - Not complete yet!!! Name SGIX_shadow Name Strings GL_SGIX_shadow Version $Date: 1997/08/27 19:54:45 $ $Revision: 1.15 $ Number 34 Dependencies None. Overview This extension defines two new operations to be performed on texture values before they are passed on to the filtering subsystem. These operations perform either a <= or >= test on the value from texture memory and the iterated R value, and return 1.0 or 0.0 if the test passes or fails, respectively. New Procedures and Functions None New Tokens Accepted by the parameter of TexParameterf, TexParameteri, TexParameterfv, TexParameteriv, GetTexParameterfv, and GetTexParameteriv, with the parameter of TRUE or FALSE: TEXTURE_COMPARE_SGIX Accepted by the parameter of TexParameterf, TexParameteri, TexParameterfv, TexParameteriv, GetTexParameterfv, and GetTexParameteriv: TEXTURE_COMPARE_OPERATOR_SGIX Accepted by the parameter of TexParameterf and TexParameteri, and by the parameter of TexParameterfv and TexParameteriv, when their parameter is TEXTURE_COMPARE_OPERATOR_SGIX: TEXTURE_LEQUAL_R_SGIX TEXTURE_GEQUAL_R_SGIX Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation) None Additions to Chapter 3 of the 1.0 Specification (Rasterization) XXX - lots GL Specification Table 3.8 is updated as follows: Name Type Legal Values ---- ---- ------------ TEXTURE_WRAP_S integer CLAMP, REPEAT TEXTURE_WRAP_T integer CLAMP, REPEAT TEXTURE_WRAP_R_EXT integer CLAMP, REPEAT TEXTURE_MIN_FILTER integer NEAREST, LINEAR, NEAREST_MIPMAP_NEAREST, NEAREST_MIPMAP_LINEAR, LINEAR_MIPMAP_NEAREST, LINEAR_MIPMAP_LINEAR, FILTER4_SGIS, LINEAR_CLIPMAP_LINEAR_SGIX TEXTURE_MAG_FILTER integer NEAREST, LINEAR, FILTER4_SGIS, LINEAR_DETAIL_SGIS, LINEAR_DETAIL_ALPHA_SGIS, LINEAR_DETAIL_COLOR_SGIS, LINEAR_SHARPEN_SGIS, LINEAR_SHARPEN_ALPHA_SGIS, LINEAR_SHARPEN_COLOR_SGIS, TEXTURE_BORDER_COLOR 4 floats any 4 values in [0,1] DETAIL_TEXTURE_LEVEL_SGIS integer any non-negative integer DETAIL_TEXTURE_MODE_SGIS integer ADD, MODULATE TEXTURE_MIN_LOD_SGIS float any value TEXTURE_MAX_LOD_SGIS float any value TEXTURE_BASE_LEVEL_SGIS integer any non-negative integer TEXTURE_MAX_LEVEL_SGIS integer any non-negative integer GENERATE_MIPMAP_SGIS boolean TRUE or FALSE TEXTURE_CLIPMAP_OFFSET_SGIX 2 floats any 2 values TEXTURE_COMPARE_SGIX boolean TRUE or FALSE TEXTURE_COMPARE_OPERATOR_SGIX integer TEXTURE_LEQUAL_R_SGIX, TEXTURE_GEQUAL_R_SGIX Table 3.8: Texture parameters and their values. Notes: * Two new texture operators are defined which alter the sampled texture values before they are filtered. These operators are defined only for textures with internal format DEPTH_COMPONENT or DEPTH_COMPONENTS*_SGI. * The new operators compare the sample texel value to the value of the third texture coordinate, R. The texture components are treated as though they range from 0.0 through 1.0. The value of the test is zero if the test fails, and one if it passes. * The test for operator TEXTURE_LEQUAL_R_SGIX passes if the texel value is less than or equal to R. The test for operator TEXTURE_GEQUAL_R_SGIX passes if the texel value is greater than or equal to R. * The modified texels (with value 0.0 or 1.0 depending on the test result) are treated as if the texture internal format were LUMINANCE. Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations and the Frame Buffer) None Additions to Chapter 5 of the 1.0 Specification (Special Functions) None Additions to Chapter 6 of the 1.0 Specification (State and State Requests) The texture compare operator is queried by calling GetTexParameteriv and GetTexParameterfv with set to TEXTURE_COMPARE_OPERATOR_SGIX. Texture compare enable/disable state is queried by calling GetTexParameteriv or GetTexParameterif with TEXTURE_COMPARE_SGIX. Additions to the GLX Specification None Errors INVALID_OPERATION is generated if TexParameter[if] parameter is TEXTURE_COMPARE_OPERATOR_SGIX and parameter is not TEXTURE_LEQUAL_R_SGIX,or TEXTURE_GEQUAL_R_SGIX. New State Get Value Get Command Type Initial Value Attribute --------- ----------- ---- ------------- --------- TEXTURE_COMPARE_SGIX GetTexParameter[if]v B False texture TEXTURE_COMPARE_OPERATOR_SGIX GetTexParameter[if]v Z_2 TEXTURE_LEQUAL_R_SGIX texture New Implementation Dependent State None NVIDIA Implementation Details The specification is unclear if the R texture coordinate is clamped to the range [0,1]. NVIDIA hardware supporting this extension does clamp the R texture coordinate to the range [0,1] on a per-fragment basis. The behavior of the NV_register_combiners SIGNED_NEGATE_NV mapping mode is undefined when used to map the initial value of a texture register corresponding to an enabled texture with a base internal format of GL_DEPTH_COMPONENT and a true TEXTURE_COMPARE_SGIX mode when multiple enabled textures have different values for TEXTURE_COMPARE_OPERATOR_SGIX. Values subsequently assigned to such registers and then mapped with SIGNED_NEGATIE_NV operate as expected.