Name

    ARB_texture_env_add

Name Strings

    GL_ARB_texture_env_add

Contact

    Michael Gold, NVIDIA (gold 'at' nvidia.com)
    Tom Frisinger, ATI (tfrisinger 'at' atitech.com)

Notice

    Copyright (c) 1999-2013 The Khronos Group Inc. Copyright terms at
        http://www.khronos.org/registry/speccopyright.html

Status

    Complete. Approved by ARB on 12/8/1999

Version

    Last Modified Date: June 22, 2000
    Author Revision: 0.3

    Based on:  EXT_texture_env_add
               Date: 1999/03/22 Revision: 1.1

Number

    ARB Extension #6

Dependencies

    None

Overview

    New texture environment function ADD is supported with the following
    equation:
                        Cv = min(1, Cf + Ct)

    New function may be specified by calling TexEnv with ADD token.

    One possible application is to add a specular highlight texture to
    a Gouraud-shaded primitive to emulate Phong shading, in a single
    pass.


New Procedures and Functions

    None

New Tokens

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

        ADD

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

        None

Additions to Chapter 3 of the GL Specification (Rasterization)

    The description of TEXTURE_ENV_MODE in the first paragraph of
    section 3.8.9 should be modified as follows:

    TEXTURE_ENV_MODE may be set to one of REPLACE, MODULATE, DECAL,
    BLEND or ADD;

    Table 3.19 is augmented as follows:

            Base            DECAL      BLEND      ADD
        Internal Format     tex func   tex func   tex func
        ---------------     -----      -----      ---

        ALPHA                ...        ...      Rv = Rf
                             ...        ...      Gv = Gf
                             ...        ...      Bv = Bf
                             ...        ...      Av = AfAt

        LUMINANCE            ...        ...      Rv = min(1, Rf+Lt)
         (or 1)              ...        ...      Gv = min(1, Gf+Lt)
                             ...        ...      Bv = min(1, Bf+Lt)
                             ...        ...      Av = Af

        LUMINANCE_ALPHA      ...        ...      Rv = min(1, Rf+Lt)
         (or 2)              ...        ...      Gv = min(1, Gf+Lt)
                             ...        ...      Bv = min(1, Bf+Lt)
                             ...        ...      Av = AfAt

        INTENSITY            ...        ...      Rv = min(1, Rf+It)
                             ...        ...      Gv = min(1, Gf+It)
                             ...        ...      Bv = min(1, Bf+It)
                             ...        ...      Av = min(1, Af+It)

        RGB                  ...        ...      Rv = min(1, Rf+Rt)
        (or 3)               ...        ...      Gv = min(1, Gf+Gt)
                             ...        ...      Bv = min(1, Bf+Bt)
                             ...        ...      Av = Af

        RGBA                 ...        ...      Rv = min(1, Rf+Rt)
        (or 4)               ...        ...      Gv = min(1, Gf+Gt)
                             ...        ...      Bv = min(1, Bf+Bt)
                             ...        ...      Av = AfAt


        Table 3.19: Decal, blend and add texture functions.


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

    None

Additions to Chapter 5 of the GL Specification (Special Functions)

    None

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

    None

Additions to the GLX / WGL / AGL Specifications

    None

GLX Protocol

    None

Errors

    None

New State

    The Type of TEXTURE_ENV_MODE in Table F.2 should be changed to

        1 * xZ5

New Implementation Dependent State

    None

Revision History

    11/09/1999  0.1
        - First ARB draft based on the original EXT draft.

    1/13/2000   0.2
        - Added justification to the overview
        - Updated to describe modifications to 1.2.1 specification
        - Added changes to description of TEXTURE_ENV_MODE parameter
          to TexEnv{if} and TexEnv{if}v
        - Added change to TEXTURE_ENV_MODE type (Z4 -> Z5)

    6/22/2000   0.3
        - The addition should saturate to 1.
