Back to the OpenGL extension cross reference

GL_ARB_texture_border_clamp


Name


    ARB_texture_border_clamp

Name Strings


    GL_ARB_texture_border_clamp

Contact


    Patrick R. Brown, Intel Corporation (patrick.r.brown 'at' intel.com)

Status


    Complete.  Approved by the ARB, 20 June 2000

Version


    1.0, 22 June 2000

Number


    ARB Extension #13

Dependencies


    OpenGL 1.0 is required.

This extension is written against the OpenGL 1.2.1 Specification.

This extension is based on and intended to replace
GL_SGIS_texture_border_clamp.

Overview


    The base OpenGL provides clamping such that the texture coordinates are
limited to exactly the range [0,1]. When a texture coordinate is clamped
using this algorithm, the texture sampling filter straddles the edge of
the texture image, taking 1/2 its sample values from within the texture
image, and the other 1/2 from the texture border. It is sometimes
desirable for a texture to be clamped to the border color, rather than to
an average of the border and edge colors.

This extension defines an additional texture clamping algorithm.
CLAMP_TO_BORDER_ARB clamps texture coordinates at all mipmap levels such
that NEAREST and LINEAR filters return only the color of the border
texels.

IP Status


    No known IP issues.

Issues


    (1) Is this formulation correct for higher-order texture filters 
(e.g., cubic or anisotropic filters)?

RESOLVED: No. A more appropriate formulation would clamp the texture
coordinates in texel space.

New Procedures and Functions


    None.

New Tokens


    Accepted by the <param> parameter of TexParameteri and TexParameterf, and
by the <params> parameter of TexParameteriv and TexParameterfv, when their
<pname> parameter is TEXTURE_WRAP_S, TEXTURE_WRAP_T, or TEXTURE_WRAP_R:

CLAMP_TO_BORDER_ARB 0x812D

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


    None.

Additions to Chapter 3 of the OpenGL 1.2.1 Specification (Rasterization)


    Modify Table 3.17, p. 124, editing only the following lines:

Name Type Legal Values
============== ======= ====================
TEXTURE_WRAP_S integer CLAMP, CLAMP_TO_EDGE, REPEAT,
CLAMP_TO_BORDER_ARB
TEXTURE_WRAP_T integer CLAMP, CLAMP_TO_EDGE, REPEAT,
CLAMP_TO_BORDER_ARB
TEXTURE_WRAP_R integer CLAMP, CLAMP_TO_EDGE, REPEAT,
CLAMP_TO_BORDER_ARB


Modify Section 3.8.4, Texture Wrap Modes, p.124

(add at the end of the section, p. 125)

CLAMP_TO_BORDER_ARB clamps texture coordinates at all mipmaps such that
the texture filter always samples border texels for fragments whose
corresponding texture coordinate is sufficiently far outside the range
[0,1]. The color returned when clamping is derived only from the border
texels of the texture image, or from the constant border color if the
texture image does not have a border.

Texture coordinates are clamped to the range [min, max]. The minimum
value is defined as

min = -1 / 2N

where N is the size (not including borders) of the one-, two-, or
three-dimensional texture image in the direction of clamping. The maximum
value is defined as

max = 1 - min

so that clamping is always symmetric about the [0,1] mapped range of a
texture coordinate.

Additions to Chapter 4 of the OpenGL 1.2.1 Specification (Per-Fragment Operations and the Frame Buffer)


    None.

Additions to Chapter 5 of the OpenGL 1.2.1 Specification (Special Functions)


    None.

Additions to Chapter 6 of the OpenGL 1.2.1 Specification (State and State Requests)


    None.

Additions to Appendix A of the OpenGL 1.2.1 Specification (Invariance)


    None.

Additions to the AGL/GLX/WGL Specifications


    None.

GLX Protocol


    None.

Errors


    None.

New State


    Only the type information changes for these parameters.

(table 6.13, p. 203)
Initial
Get Value Type Get Command Value Description Sec. Attribute
--------- ---- ----------- ------- ----------- ---- ---------
TEXTURE_WRAP_S 3+ x Z4 GetTexParameter REPEAT Texture wrap 3.8 texture
TEXTURE_WRAP_T 3+ x Z4 GetTexParameter REPEAT Texture wrap 3.8 texture
TEXTURE_WRAP_R 3+ x Z4 GetTexParameter REPEAT Texture wrap 3.8 texture

Revision History


    1.0,  06/22/2000 prbrown1:   Added issue w.r.t. higher order filters.

0.2, 05/23/2000 prbrown1: Removed dependency on SGIS_texture_filter4
per ARB guidelines.

0.1, 05/02/2000 prbrown1: Initial revision -- mostly stolen from
GL_SGIS_texture_border_clamp.

Implementation Support


   List of OpenGL implementations supporting the GL_ARB_texture_border_clamp extension

Original File


   Original text file for the GL_ARB_texture_border_clamp extension


Page generated on Sun Nov 20 18:35:59 2005