15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    ATI_texture_env_combine3
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_ATI_texture_env_combine3
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContact
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Dan Ginsburg, AMD (dan.ginsburg 'at' amd.com)
125bd8deadSopenharmony_ci    Evan Hart, NVIDIA (ehart 'at' nvidia.com)
135bd8deadSopenharmony_ci
145bd8deadSopenharmony_ciNotice
155bd8deadSopenharmony_ci
165bd8deadSopenharmony_ci    Copyright ATI Corporation, 2002.
175bd8deadSopenharmony_ci
185bd8deadSopenharmony_ciIP Status
195bd8deadSopenharmony_ci
205bd8deadSopenharmony_ci    None.
215bd8deadSopenharmony_ci
225bd8deadSopenharmony_ciVersion
235bd8deadSopenharmony_ci
245bd8deadSopenharmony_ci    Date: 11/04/2006 Revision: 1.02
255bd8deadSopenharmony_ci    
265bd8deadSopenharmony_ciNumber
275bd8deadSopenharmony_ci
285bd8deadSopenharmony_ci    None.
295bd8deadSopenharmony_ci
305bd8deadSopenharmony_ciDependencies
315bd8deadSopenharmony_ci
325bd8deadSopenharmony_ci    ARB_texture_env_combine is required and is modified by this extension
335bd8deadSopenharmony_ci    ARB_multitexture affects the definition of this extension
345bd8deadSopenharmony_ci
355bd8deadSopenharmony_ciOverview
365bd8deadSopenharmony_ci
375bd8deadSopenharmony_ci    Adds new set of operations to the texture combiner operations.
385bd8deadSopenharmony_ci
395bd8deadSopenharmony_ci    MODULATE_ADD_ATI               Arg0 * Arg2 + Arg1
405bd8deadSopenharmony_ci    MODULATE_SIGNED_ADD_ATI        Arg0 * Arg2 + Arg1 - 0.5
415bd8deadSopenharmony_ci    MODULATE_SUBTRACT_ATI          Arg0 * Arg2 - Arg1
425bd8deadSopenharmony_ci
435bd8deadSopenharmony_ci    where Arg0, Arg1 and Arg2 are derived from
445bd8deadSopenharmony_ci
455bd8deadSopenharmony_ci        PRIMARY_COLOR_ARB       primary color of incoming fragment
465bd8deadSopenharmony_ci        TEXTURE                 texture color of corresponding texture unit
475bd8deadSopenharmony_ci        CONSTANT_ARB            texture environment constant color
485bd8deadSopenharmony_ci        PREVIOUS_ARB            result of previous texture environment; on
495bd8deadSopenharmony_ci                                texture unit 0, this maps to PRIMARY_COLOR_ARB
505bd8deadSopenharmony_ci
515bd8deadSopenharmony_ci    In addition, the result may be scaled by 1.0, 2.0 or 4.0.
525bd8deadSopenharmony_ci
535bd8deadSopenharmony_ci    Note that in addition to providing more flexible equations new source 
545bd8deadSopenharmony_ci    inputs have been added for zero and one.
555bd8deadSopenharmony_ci
565bd8deadSopenharmony_ciIssues
575bd8deadSopenharmony_ci
585bd8deadSopenharmony_ci    None
595bd8deadSopenharmony_ci
605bd8deadSopenharmony_ciNew Procedures and Functions
615bd8deadSopenharmony_ci
625bd8deadSopenharmony_ci    None
635bd8deadSopenharmony_ci
645bd8deadSopenharmony_ciNew Tokens
655bd8deadSopenharmony_ci
665bd8deadSopenharmony_ci    Accepted by the <params> parameter of TexEnvf, TexEnvi, TexEnvfv,
675bd8deadSopenharmony_ci    and TexEnviv when the <pname> parameter value is COMBINE_RGB_ARB
685bd8deadSopenharmony_ci    or COMBINE_ALPHA_ARB
695bd8deadSopenharmony_ci
705bd8deadSopenharmony_ci        MODULATE_ADD_ATI                   0x8744
715bd8deadSopenharmony_ci        MODULATE_SIGNED_ADD_ATI            0x8745
725bd8deadSopenharmony_ci        MODULATE_SUBTRACT_ATI              0x8746
735bd8deadSopenharmony_ci
745bd8deadSopenharmony_ci
755bd8deadSopenharmony_ci    Accepted by the <params> parameter of TexEnvf, TexEnvi, TexEnvfv,
765bd8deadSopenharmony_ci    and TexEnviv when the <pname> parameter value is SOURCE0_RGB_ARB,
775bd8deadSopenharmony_ci    SOURCE1_RGB_ARB, SOURCE2_RGB_ARB, SOURCE0_ALPHA_ARB,
785bd8deadSopenharmony_ci    SOURCE1_ALPHA_ARB, or SOURCE2_ALPHA_ARB
795bd8deadSopenharmony_ci
805bd8deadSopenharmony_ci        ZERO
815bd8deadSopenharmony_ci        ONE
825bd8deadSopenharmony_ci
835bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL 1.2 Specification (OpenGL Operation)
845bd8deadSopenharmony_ci
855bd8deadSopenharmony_ci    None
865bd8deadSopenharmony_ci
875bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL 1.2 Specification (Rasterization)
885bd8deadSopenharmony_ci
895bd8deadSopenharmony_ci    Added to subsection 3.8.9, before the paragraph describing the
905bd8deadSopenharmony_ci    state requirements:
915bd8deadSopenharmony_ci
925bd8deadSopenharmony_ci    If the value of TEXTURE_ENV_MODE is COMBINE_ARB, the form of the
935bd8deadSopenharmony_ci    texture function depends on the values of COMBINE_RGB_ARB and
945bd8deadSopenharmony_ci    COMBINE_ALPHA_ARB, according to table 3.20. The RGB and ALPHA
955bd8deadSopenharmony_ci    results of the texture function are then multiplied by the values
965bd8deadSopenharmony_ci    of RGB_SCALE_ARB and ALPHA_SCALE, respectively. The results are
975bd8deadSopenharmony_ci    clamped to [0,1].
985bd8deadSopenharmony_ci
995bd8deadSopenharmony_ci        COMBINE_RGB_ARB         Texture Function
1005bd8deadSopenharmony_ci        ------------------      ----------------
1015bd8deadSopenharmony_ci        REPLACE                 Arg0
1025bd8deadSopenharmony_ci        MODULATE                Arg0 * Arg1
1035bd8deadSopenharmony_ci        ADD                     Arg0 + Arg1
1045bd8deadSopenharmony_ci        SIGNED_ADD_ARB          Arg0 + Arg1 - 0.5
1055bd8deadSopenharmony_ci        INTERPOLATE_ARB         Arg0 * (Arg2) + Arg1 * (1-Arg2)
1065bd8deadSopenharmony_ci        SUBTRACT_ARB            Arg0 - Arg1
1075bd8deadSopenharmony_ci        MODULATE_ADD_ATI        Arg0 * Arg2 + Arg1
1085bd8deadSopenharmony_ci        MODULATE_SIGNED_ADD_ATI Arg0 * Arg2 + Arg1 - 0.5
1095bd8deadSopenharmony_ci        MODULATE_SUBTRACT_ATI   Arg0 * Arg2 - Arg1
1105bd8deadSopenharmony_ci
1115bd8deadSopenharmony_ci
1125bd8deadSopenharmony_ci        COMBINE_ALPHA_ARB       Texture Function
1135bd8deadSopenharmony_ci        ------------------      ----------------
1145bd8deadSopenharmony_ci        REPLACE                 Arg0
1155bd8deadSopenharmony_ci        MODULATE                Arg0 * Arg1
1165bd8deadSopenharmony_ci        ADD                     Arg0 + Arg1
1175bd8deadSopenharmony_ci        SIGNED_ADD_ARB          Arg0 + Arg1 - 0.5
1185bd8deadSopenharmony_ci        INTERPOLATE_ARB         Arg0 * (Arg2) + Arg1 * (1-Arg2)
1195bd8deadSopenharmony_ci        SUBTRACT_ARB            Arg0 - Arg1
1205bd8deadSopenharmony_ci        MODULATE_ADD_ATI        Arg0 * Arg2 + Arg1
1215bd8deadSopenharmony_ci        MODULATE_SIGNED_ADD_ATI Arg0 * Arg2 + Arg1 - 0.5
1225bd8deadSopenharmony_ci        MODULATE_SUBTRACT_ATI   Arg0 * Arg2 - Arg1
1235bd8deadSopenharmony_ci
1245bd8deadSopenharmony_ci    The arguments Arg0, Arg1 and Arg2 are determined by the values of
1255bd8deadSopenharmony_ci    SOURCE<n>_RGB_ARB, SOURCE<n>_ALPHA_ARB, OPERAND<n>_RGB_ARB and
1265bd8deadSopenharmony_ci    OPERAND<n>_ALPHA_ARB. In the following two tables, Ct and At are
1275bd8deadSopenharmony_ci    the filtered texture RGB and alpha values; Cc and Ac are the 
1285bd8deadSopenharmony_ci    texture environment RGB and alpha values; Cf and Af are the RGB 
1295bd8deadSopenharmony_ci    and alpha of the primary color of the incoming fragment; and Cp 
1305bd8deadSopenharmony_ci    and Ap are the RGB and alpha values resulting from the previous 
1315bd8deadSopenharmony_ci    texture environment. On texture environment 0, Cp and Ap are 
1325bd8deadSopenharmony_ci    identical to Cf and Af, respectively. The relationship is 
1335bd8deadSopenharmony_ci    described in tables 3.21 and 3.22.
1345bd8deadSopenharmony_ci
1355bd8deadSopenharmony_ci        SOURCE<n>_RGB_ARB       OPERAND<n>_RGB_ARB      Argument
1365bd8deadSopenharmony_ci        -----------------       --------------          --------
1375bd8deadSopenharmony_ci        TEXTURE                 SRC_COLOR               Ct
1385bd8deadSopenharmony_ci                                ONE_MINUS_SRC_COLOR     (1-Ct)
1395bd8deadSopenharmony_ci                                SRC_ALPHA               At
1405bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     (1-At)
1415bd8deadSopenharmony_ci        CONSTANT_ARB            SRC_COLOR               Cc
1425bd8deadSopenharmony_ci                                ONE_MINUS_SRC_COLOR     (1-Cc)
1435bd8deadSopenharmony_ci                                SRC_ALPHA               Ac
1445bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     (1-Ac)
1455bd8deadSopenharmony_ci        PRIMARY_COLOR_ARB       SRC_COLOR               Cf
1465bd8deadSopenharmony_ci                                ONE_MINUS_SRC_COLOR     (1-Cf)
1475bd8deadSopenharmony_ci                                SRC_ALPHA               Af
1485bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     (1-Af)
1495bd8deadSopenharmony_ci        PREVIOUS_ARB            SRC_COLOR               Cp
1505bd8deadSopenharmony_ci                                ONE_MINUS_SRC_COLOR     (1-Cp)
1515bd8deadSopenharmony_ci                                SRC_ALPHA               Ap
1525bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     (1-Ap)
1535bd8deadSopenharmony_ci        ZERO                    SRC_COLOR               0
1545bd8deadSopenharmony_ci                                ONE_MINUS_SRC_COLOR     1
1555bd8deadSopenharmony_ci                                SRC_ALPHA               0
1565bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     1
1575bd8deadSopenharmony_ci        ONE                     SRC_COLOR               1
1585bd8deadSopenharmony_ci                                ONE_MINUS_SRC_COLOR     0
1595bd8deadSopenharmony_ci                                SRC_ALPHA               1
1605bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     0
1615bd8deadSopenharmony_ci
1625bd8deadSopenharmony_ci
1635bd8deadSopenharmony_ci        Table 3.21: Arguments for COMBINE_RGB_ARB functions
1645bd8deadSopenharmony_ci
1655bd8deadSopenharmony_ci        SOURCE<n>_ALPHA_ARB     OPERAND<n>_ALPHA_ARB    Argument
1665bd8deadSopenharmony_ci        -----------------       --------------          --------
1675bd8deadSopenharmony_ci        TEXTURE                 SRC_ALPHA               At
1685bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     (1-At)
1695bd8deadSopenharmony_ci        CONSTANT_ARB            SRC_ALPHA               Ac
1705bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     (1-Ac)
1715bd8deadSopenharmony_ci        PRIMARY_COLOR_ARB       SRC_ALPHA               Af
1725bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     (1-Af)
1735bd8deadSopenharmony_ci        PREVIOUS_ARB            SRC_ALPHA               Ap
1745bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     (1-Ap)
1755bd8deadSopenharmony_ci        ZERO                    SRC_ALPHA               0
1765bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     1
1775bd8deadSopenharmony_ci        ONE                     SRC_ALPHA               1
1785bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     0
1795bd8deadSopenharmony_ci
1805bd8deadSopenharmony_ci        Table 3.22: Arguments for COMBINE_ALPHA_ARB functions
1815bd8deadSopenharmony_ci
1825bd8deadSopenharmony_ci
1835bd8deadSopenharmony_ci
1845bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL 1.2 Specification (Per-Fragment Operations
1855bd8deadSopenharmony_ciand the Framebuffer)
1865bd8deadSopenharmony_ci
1875bd8deadSopenharmony_ci    None
1885bd8deadSopenharmony_ci
1895bd8deadSopenharmony_ciAdditions to Chapter 5 of the OpenGL 1.2 Specification (Special Functions)
1905bd8deadSopenharmony_ci
1915bd8deadSopenharmony_ci    None
1925bd8deadSopenharmony_ci
1935bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL 1.2 Specification (State and State Requests)
1945bd8deadSopenharmony_ci
1955bd8deadSopenharmony_ci    None
1965bd8deadSopenharmony_ci
1975bd8deadSopenharmony_ciNew State
1985bd8deadSopenharmony_ci
1995bd8deadSopenharmony_ci    None
2005bd8deadSopenharmony_ci
2015bd8deadSopenharmony_ciNew Implementation Dependent State
2025bd8deadSopenharmony_ci
2035bd8deadSopenharmony_ci    None
2045bd8deadSopenharmony_ci
2055bd8deadSopenharmony_ciRevision History
2065bd8deadSopenharmony_ci
2075bd8deadSopenharmony_ci   Date: 3/29/2010
2085bd8deadSopenharmony_ci   Revision: 1.03
2095bd8deadSopenharmony_ci      - (pbrown @ NVIDIA) Fix the "Name Strings" section to include a "GL"
2105bd8deadSopenharmony_ci        prefix. 
2115bd8deadSopenharmony_ci
2125bd8deadSopenharmony_ci   Date: 11/4/2006
2135bd8deadSopenharmony_ci   Revision: 1.02
2145bd8deadSopenharmony_ci      - Updated contact info after ATI/AMD merger.
2155bd8deadSopenharmony_ci
2165bd8deadSopenharmony_ci   Date: 8/02/2002
2175bd8deadSopenharmony_ci   Revision: 1.01
2185bd8deadSopenharmony_ci      - Changed constant MODULATE_ADD_SIGNED_ATI to MODULATE_SIGNED_ADD_ATI.
2195bd8deadSopenharmony_ci
2205bd8deadSopenharmony_ci   Date: 8/01/2002
2215bd8deadSopenharmony_ci   Revision: 1.0
2225bd8deadSopenharmony_ci      - First release based on ATIX version.
223