Name

    EXT_texture_env_dot3

Name Strings

    GL_EXT_texture_env_dot3

Contact

    Dan Ginsburg, AMD (dan.ginsburg 'at' amd.com)
    Dave Gosselin

Notice

    Copyright ATI Technologies, 2000.

IP Status

    None

Version

    Last Modified Date: 2006/11/04 13:54:17 Revision: 1.3

Number

    220

Dependencies

    EXT_texture_env_combine is required and is modified by this extension
    ARB_multitexture affects the definition of this extension

Overview

    Adds new operation to the texture combiner operations.

        DOT3_RGB_EXT                    Arg0 <dotprod> Arg1
        DOT3_RGBA_EXT                   Arg0 <dotprod> Arg1

    where Arg0, Arg1 are derived from

        PRIMARY_COLOR_EXT       primary color of incoming fragment
        TEXTURE                 texture color of corresponding texture unit
        CONSTANT_EXT            texture environment constant color
        PREVIOUS_EXT            result of previous texture environment; on
                                texture unit 0, this maps to PRIMARY_COLOR_EXT

    This operaion can only be performed if SOURCE0_RGB_EXT,
    SOURCE1_RGB_EXT are defined.

Issues

    None

New Procedures and Functions

    None

New Tokens

    Accepted by the <params> parameter of TexEnvf, TexEnvi, TexEnvfv,
    and TexEnviv when the <pname> parameter value is COMBINE_RGB_EXT

        DOT3_RGB_EXT                                    0x8740
        DOT3_RGBA_EXT                                   0x8741


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

    None

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

    Added to subsection 3.8.9, before the paragraph describing the
    state requirements:

    If the value of TEXTURE_ENV_MODE is COMBINE_EXT, the form of the
    texture function depends on the values of COMBINE_RGB_EXT and
    COMBINE_ALPHA_EXT, according to table 3.20.  The RGB and ALPHA
    results of the texture function are not multiplied by the values
    of RGB_SCALE_EXT and ALPHA_SCALE, respectively.  The results are
    clamped to [0,1].


        COMBINE_RGB_EXT         Texture Function
        ------------------      ----------------
        DOT3_RGB_EXT            4*((Arg0_r - 0.5)*(Arg1_r - 0.5) +
                                   (Arg0_g - 0.5)*(Arg1_g - 0.5) +
                                   (Arg0_b - 0.5)*(Arg1_b - 0.5))
                                This value is placed into all three
                                r,g,b components of the output.
        DOT3_RGBA_EXT           4*((Arg0_r - 0.5)*(Arg1_r - 0.5) +
                                   (Arg0_g - 0.5)*(Arg1_g - 0.5) +
                                   (Arg0_b - 0.5)*(Arg1_b - 0.5))
                                This value is placed into all four
                                r,g,b,a components of the output.


        Table 3.20: COMBINE_EXT texture functions
    

Additions to Chapter 4 of the OpenGL 1.2 Specification (Per-Fragment Operations
and the Framebuffer)

    None

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

    None

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

    None

Additions to the AGL/GLX/WGL Specifications

    None

GLX Protocol

    None

Errors

Modifications to EXT_texture_env_combine

Dependencies on ARB_multitexture

New State

    None

New Implementation Dependent State

    None

Revision History

    None

