Back to the OpenGL extension cross reference

GL_SGIX_texture_lod_bias


Name


    SGIX_texture_lod_bias

Name Strings


    GL_SGIX_texture_lod_bias

Version


    $Date: 1996/07/09 05:27:21 $ $Revision: 1.3 $

Number


    84

Dependencies


    EXT_texture is required
EXT_texture3D affects the definition of this extension
EXT_texture_object affects the definition of this extension

Overview


    This extension modifies the calculation of texture level of detail 
parameter LOD, which is represented by the Greek character lambda
in the GL Specification. The LOD equation assumes that a 2^n x 2^m x 2^l
texture is band limited at 2^(n-1), 2^(m-1), 2^(l-1). Often a texture is
oversampled or filtered such that the texture is band limited at lower
frequencies in one or more dimensions. The result is that texture-mapped
primitives appear excessively blurry. This extension provides biases
for n, m, and l in the LOD calculation to to compensate for under or over
sampled texture images. Mipmapped textures can be made to appear sharper or
blurrier by supplying a negative or positive bias respectively.

Examples of textures which can benefit from this LOD control include
video-capture images which are filtered differently horizontally and
vertically; a texture which appears blurry because it is mapped with
a nonuniform scale, such as a road texture which is repeated hundreds of
times in one dimension and only once in the other; and textures which
had to be magnified to a power-of-two for mipmapping.

Issues


    *	Should "bias" be changed to "offset"?

New Procedures and Functions


    None

New Tokens


    Accepted by the <pname> parameter of TexParameteri, TexParameterf,
TexParameteriv, TexParameterfv, GetTexParameteriv, and GetTexParameterfv:

TEXTURE_LOD_BIAS_S_SGIX
TEXTURE_LOD_BIAS_T_SGIX
TEXTURE_LOD_BIAS_R_SGIX

Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation)


    None

Additions to Chapter 3 of the 1.0 Specification (Rasterization)


    GL Specification Table 3.7 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
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
TEXTURE_LOD_BIAS_S_SGIX float any value
TEXTURE_LOD_BIAS_T_SGIX float any value
TEXTURE_LOD_BIAS_R_SGIX float any value

Table 3.7: Texture parameters and their values.

Level of Detail Bias
------------------------

This extensions redefines the equations 3.8 and 3.9 for P in Section 3.8.1
(Texture Minification) of the GL Specification as follows:

P = max { sqrt((dlodu/dx)^2 + (dlodv/dx)^2 + (dlodw/dx)^2),
sqrt((dlodu/dy)^2 + (dlodv/dy)^2 + (dlodw/dy)^2) } (3.8)

where
dlodu/dx = 2^TEXTURE_LOD_BIAS_S_SGIX * du/dx
dlodv/dx = 2^TEXTURE_LOD_BIAS_T_SGIX * dv/dx
dlodw/dx = 2^TEXTURE_LOD_BIAS_R_SGIX * dw/dx
dlodu/dy = 2^TEXTURE_LOD_BIAS_S_SGIX * du/dy
dlodv/dy = 2^TEXTURE_LOD_BIAS_T_SGIX * dv/dy
dlodw/dy = 2^TEXTURE_LOD_BIAS_R_SGIX * dw/dy

For a line the equation is redefined as:

P = sqrt((dlodu/dx * deltaX + dlodu/dy * deltaY)^2 +
(dlodv/dx * deltaX + dlodv/dy * deltaY)^2 +
(dlodw/dx * deltaX + dlodw/dy * deltaY)^2) / l (3.9)

The conditions for f(x,y) in section 3.8.1 are similarly changed:

1. f(x,y) is continuous and monotonically increasing in each of |dlodu/dx|,
|dlodu/dy|, |dlodv/dx|, |dlodv/dy|, |dlodw/dx|, and |dlodw/dy|,

2. Let
Mu = max {|dlodu/dx|, |dlodu/dy|}, Mv = max {|dlodv/dx|, |dlodv/dy|},
and Mw = max {|dlodw/dx|, |dlodw/dy|}.

Then max{Mu,Mv,Mw} <= f(x,y) < Mu + Mv + Mw.

By default TEXTURE_LOD_BIAS_S_SGIX, TEXTURE_LOD_BIAS_T_SGIX, and
TEXTURE_LOD_BIAS_R_SGIX are 0, so they do not interfere with the normal
operation of texture mapping. These values are respecified for a specific
texture by calling TexParameteri, TexParemeterf, TexParameteriv, or
TexParameterfv with <target> set to TEXTURE_1D, TEXTURE_2D, or
TEXTURE_3D_EXT, <pname> set to one of the LOD Bias names,
and <param> set to (or <params> pointing to) the new value.

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)


    None

Additions to the GLX Specification


    None

Dependencies on EXT_texture


    EXT_texture is required.

Dependencies on EXT_texture3D


    If EXT_texture3D is not supported, references to 3D texture mapping and
to TEXTURE_3D_EXT in this document are invalid and should be ignored.

Dependencies on EXT_texture_object


    If EXT_texture_object is implemented, the state values named

TEXTURE_LOD_BIAS_S_SGIX float any value
TEXTURE_LOD_BIAS_T_SGIX float any value
TEXTURE_LOD_BIAS_R_SGIX float any value

are added to the state vector of each texture object. When an attribute
set that includes texture information is popped, the bindings and
enables are first restored to their pushed values, then the bound
textures have their LOD_BIAS parameters restored to their pushed
values.

Errors


    None

New State


								Initial
Get Value Get Command Type Value Attrib
--------- ----------- ---- ------- ------
TEXTURE_LOD_BIAS_S_SGIX GetTexParameterfv n x R 0 texture
TEXTURE_LOD_BIAS_T_SGIX GetTexParameterfv n x R 0 texture
TEXTURE_LOD_BIAS_R_SGIX GetTexParameterfv n x R 0 texture

New Implementation Dependent State


    None

Implementation Support


   List of OpenGL implementations supporting the GL_SGIX_texture_lod_bias extension

Original File


   Original text file for the GL_SGIX_texture_lod_bias extension


Page generated on Sun Nov 20 18:38:42 2005