blob: 2f9ea5cc52936d9b6897ce15a537cd79589c6793 [file] [log] [blame]
Name
ATI_texture_env_combine3
Name Strings
GL_ATI_texture_env_combine3
Contact
Dan Ginsburg, AMD (dan.ginsburg 'at' amd.com)
Evan Hart, NVIDIA (ehart 'at' nvidia.com)
Notice
Copyright ATI Corporation, 2002.
IP Status
None.
Version
Date: 11/04/2006 Revision: 1.02
Number
None.
Dependencies
ARB_texture_env_combine is required and is modified by this extension
ARB_multitexture affects the definition of this extension
Overview
Adds new set of operations to the texture combiner operations.
MODULATE_ADD_ATI Arg0 * Arg2 + Arg1
MODULATE_SIGNED_ADD_ATI Arg0 * Arg2 + Arg1 - 0.5
MODULATE_SUBTRACT_ATI Arg0 * Arg2 - Arg1
where Arg0, Arg1 and Arg2 are derived from
PRIMARY_COLOR_ARB primary color of incoming fragment
TEXTURE texture color of corresponding texture unit
CONSTANT_ARB texture environment constant color
PREVIOUS_ARB result of previous texture environment; on
texture unit 0, this maps to PRIMARY_COLOR_ARB
In addition, the result may be scaled by 1.0, 2.0 or 4.0.
Note that in addition to providing more flexible equations new source
inputs have been added for zero and one.
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_ARB
or COMBINE_ALPHA_ARB
MODULATE_ADD_ATI 0x8744
MODULATE_SIGNED_ADD_ATI 0x8745
MODULATE_SUBTRACT_ATI 0x8746
Accepted by the <params> parameter of TexEnvf, TexEnvi, TexEnvfv,
and TexEnviv when the <pname> parameter value is SOURCE0_RGB_ARB,
SOURCE1_RGB_ARB, SOURCE2_RGB_ARB, SOURCE0_ALPHA_ARB,
SOURCE1_ALPHA_ARB, or SOURCE2_ALPHA_ARB
ZERO
ONE
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_ARB, the form of the
texture function depends on the values of COMBINE_RGB_ARB and
COMBINE_ALPHA_ARB, according to table 3.20. The RGB and ALPHA
results of the texture function are then multiplied by the values
of RGB_SCALE_ARB and ALPHA_SCALE, respectively. The results are
clamped to [0,1].
COMBINE_RGB_ARB Texture Function
------------------ ----------------
REPLACE Arg0
MODULATE Arg0 * Arg1
ADD Arg0 + Arg1
SIGNED_ADD_ARB Arg0 + Arg1 - 0.5
INTERPOLATE_ARB Arg0 * (Arg2) + Arg1 * (1-Arg2)
SUBTRACT_ARB Arg0 - Arg1
MODULATE_ADD_ATI Arg0 * Arg2 + Arg1
MODULATE_SIGNED_ADD_ATI Arg0 * Arg2 + Arg1 - 0.5
MODULATE_SUBTRACT_ATI Arg0 * Arg2 - Arg1
COMBINE_ALPHA_ARB Texture Function
------------------ ----------------
REPLACE Arg0
MODULATE Arg0 * Arg1
ADD Arg0 + Arg1
SIGNED_ADD_ARB Arg0 + Arg1 - 0.5
INTERPOLATE_ARB Arg0 * (Arg2) + Arg1 * (1-Arg2)
SUBTRACT_ARB Arg0 - Arg1
MODULATE_ADD_ATI Arg0 * Arg2 + Arg1
MODULATE_SIGNED_ADD_ATI Arg0 * Arg2 + Arg1 - 0.5
MODULATE_SUBTRACT_ATI Arg0 * Arg2 - Arg1
The arguments Arg0, Arg1 and Arg2 are determined by the values of
SOURCE<n>_RGB_ARB, SOURCE<n>_ALPHA_ARB, OPERAND<n>_RGB_ARB and
OPERAND<n>_ALPHA_ARB. In the following two tables, Ct and At are
the filtered texture RGB and alpha values; Cc and Ac are the
texture environment RGB and alpha values; Cf and Af are the RGB
and alpha of the primary color of the incoming fragment; and Cp
and Ap are the RGB and alpha values resulting from the previous
texture environment. On texture environment 0, Cp and Ap are
identical to Cf and Af, respectively. The relationship is
described in tables 3.21 and 3.22.
SOURCE<n>_RGB_ARB OPERAND<n>_RGB_ARB Argument
----------------- -------------- --------
TEXTURE SRC_COLOR Ct
ONE_MINUS_SRC_COLOR (1-Ct)
SRC_ALPHA At
ONE_MINUS_SRC_ALPHA (1-At)
CONSTANT_ARB SRC_COLOR Cc
ONE_MINUS_SRC_COLOR (1-Cc)
SRC_ALPHA Ac
ONE_MINUS_SRC_ALPHA (1-Ac)
PRIMARY_COLOR_ARB SRC_COLOR Cf
ONE_MINUS_SRC_COLOR (1-Cf)
SRC_ALPHA Af
ONE_MINUS_SRC_ALPHA (1-Af)
PREVIOUS_ARB SRC_COLOR Cp
ONE_MINUS_SRC_COLOR (1-Cp)
SRC_ALPHA Ap
ONE_MINUS_SRC_ALPHA (1-Ap)
ZERO SRC_COLOR 0
ONE_MINUS_SRC_COLOR 1
SRC_ALPHA 0
ONE_MINUS_SRC_ALPHA 1
ONE SRC_COLOR 1
ONE_MINUS_SRC_COLOR 0
SRC_ALPHA 1
ONE_MINUS_SRC_ALPHA 0
Table 3.21: Arguments for COMBINE_RGB_ARB functions
SOURCE<n>_ALPHA_ARB OPERAND<n>_ALPHA_ARB Argument
----------------- -------------- --------
TEXTURE SRC_ALPHA At
ONE_MINUS_SRC_ALPHA (1-At)
CONSTANT_ARB SRC_ALPHA Ac
ONE_MINUS_SRC_ALPHA (1-Ac)
PRIMARY_COLOR_ARB SRC_ALPHA Af
ONE_MINUS_SRC_ALPHA (1-Af)
PREVIOUS_ARB SRC_ALPHA Ap
ONE_MINUS_SRC_ALPHA (1-Ap)
ZERO SRC_ALPHA 0
ONE_MINUS_SRC_ALPHA 1
ONE SRC_ALPHA 1
ONE_MINUS_SRC_ALPHA 0
Table 3.22: Arguments for COMBINE_ALPHA_ARB 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
New State
None
New Implementation Dependent State
None
Revision History
Date: 3/29/2010
Revision: 1.03
- (pbrown @ NVIDIA) Fix the "Name Strings" section to include a "GL"
prefix.
Date: 11/4/2006
Revision: 1.02
- Updated contact info after ATI/AMD merger.
Date: 8/02/2002
Revision: 1.01
- Changed constant MODULATE_ADD_SIGNED_ATI to MODULATE_SIGNED_ADD_ATI.
Date: 8/01/2002
Revision: 1.0
- First release based on ATIX version.