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

Specification Update Policy

    Khronos-approved extension specifications are updated in response to
    issues and bugs prioritized by the Khronos OpenGL Working Group. For
    extensions which have been promoted to a core Specification, fixes will
    first appear in the latest version of that core Specification, and will
    eventually be backported to the extension document. This policy is
    described in more detail at
        https://www.khronos.org/registry/OpenGL/docs/update_policy.php

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.
