Name

    ARB_texture_env_add

Name Strings

    GL_ARB_texture_env_add

Notice

    Copyright OpenGL Architectural Review Board, 1999.

Contact

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

Status

    Complete. Approved by ARB on 12/8/1999

Version

    Last Modified Date: January 13, 2000
    Author Revision: 0.2

    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 = 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 = Rf+Lt
	 (or 1)		     ...	...	 Gv = Gf+Lt
			     ...	...	 Bv = Bf+Lt
			     ...	...	 Av = Af

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

	INTENSITY	     ...	...	 Rv = Rf+It
			     ...	...	 Gv = Gf+It
			     ...	...	 Bv = Bf+It
			     ...	...	 Av = Af+It

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

	RGBA		     ...	...	 Rv = Rf+Rt
	(or 4)		     ...	...	 Gv = Gf+Gt
			     ...	...	 Bv = 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)

