| 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. |