| Name |
| |
| ARB_texture_env_crossbar |
| |
| Name Strings |
| |
| GL_ARB_texture_env_crossbar |
| |
| Contact |
| |
| Bimal Poddar, Intel (bimal.poddar 'at' intel.com) |
| Jack Middleton, Sun (Jack.Middleton 'at' Eng.Sun.COM) |
| Rick Hammerstone, AMD (rick.hammerstone 'at' amd.com) |
| |
| Notice |
| |
| Copyright (c) 2001-2013 The Khronos Group Inc. Copyright terms at |
| http://www.khronos.org/registry/speccopyright.html |
| |
| Status |
| |
| Complete. Approved by ARB on February 16, 2001. |
| |
| Version |
| |
| Last modified date: 2006/11/04 |
| |
| Number |
| |
| ARB Extension #18 |
| |
| Dependencies |
| |
| This extension is written against the OpenGL 1.2.1 Specification. |
| OpenGL 1.1, ARB_multitexture and ARB_texture_env_combine are required |
| by this extension. |
| |
| Overview |
| |
| This extension adds the capability to use the texture color from |
| other texture units as sources to the COMBINE_ARB enviornment |
| function. The ARB_texture_env_combine extension defined texture |
| enviornment functions which could use the color from the |
| current texture unit as a source. This extension adds |
| the ability to use the color from any texture unit as a source. |
| |
| Issues |
| |
| 1. Should only "upstream" textures be allowed as inputs to a |
| given texture unit? (Texture inputs to unit <m> are restricted to |
| the range TEXTURE0_ARB to TEXTURE<m>_ARB). |
| |
| - RESOLVED: No. Most vendors support this functionality. |
| |
| |
| 2. Do we still need TEXTURE as a source if we allow TEXTURE<n>_ARB? |
| |
| - RESOLVED: Yes, since this allows backwards compatibility. |
| |
| 3. What should be the behavior when the texture environment |
| references a texture unit that is not enabled or does not have a |
| valid texture object bound to it? |
| |
| - RESOLVED: Texture blending should be disabled on the texture |
| unit that is referencing the invalid or disabled texture. This |
| seems to be a reasonable compromise between disabling all |
| texturing and generating "default" texel values. Also, this |
| behavior is more easily forward compatible to an extension |
| which separates the texture lookup and texture blend units. |
| |
| New Procedures and Functions |
| |
| None |
| |
| New Tokens |
| |
| 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 |
| |
| TEXTURE<n>_ARB 0x84C0+<n> |
| |
| where <n> is in the range 0 to MAX_TEXTURE_UNITS_ARB. |
| |
| Additions to Chapter 2 of the GL Specification (OpenGL Operation) |
| |
| None |
| |
| Additions to Chapter 3 of the GL Specification (Rasterization) |
| |
| Modify paragraph describing tables 3.21 and 3.22 in the |
| ARB_texture_env_combine spec to read: |
| |
| 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; Ct<n> and At<n> are the |
| filtered texture RGB and alpha values from the texture bound to |
| texture unit <n>; 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. |
| Added to table 3.21 of the ARB_texture_env_combine spec: |
| |
| SOURCE<n>_RGB_ARB OPERAND<n>_RGB_ARB Argument |
| ----------------- -------------- -------- |
| |
| TEXTURE<n>_ARB SRC_COLOR Ct<n> |
| ONE_MINUS_SRC_COLOR (1-Ct<n>) |
| SRC_ALPHA At<n> |
| ONE_MINUS_SRC_ALPHA (1-At<n>) |
| |
| Table 3.21: Arguments for COMBINE_RGB_ARB functions |
| |
| Added to table 3.22 of the ARB_texture_env_combine spec: |
| |
| SOURCE<n>_ALPHA_ARB OPERAND<n>_ALPHA_ARB Argument |
| ----------------- -------------- -------- |
| |
| TEXTURE<n>_ARB SRC_ALPHA At<n> |
| ONE_MINUS_SRC_ALPHA (1-At<n>) |
| |
| Table 3.22: Arguments for COMBINE_ALPHA_ARB 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 Appendix F of the GL Specification (ARB Extensions) |
| |
| Inserted after the second paragraph of F.2.12: |
| |
| If the value of TEXTURE_ENV_MODE is COMBINE_ARB, the texture |
| function associated with a given texture unit is computed using |
| the values specified by SOURCE<n>_RGB_ARB, SOURCE<n>_ALPHA_ARB, |
| OPERAND<n>_RGB_ARB and OPERAND<n>_ALPHA_ARB. If TEXTURE<n>_ARB is |
| specified as SOURCE<n>_RGB_ARB or SOURCE<n>_ALPHA_ARB, the texture |
| value from texture unit <n> will be used in computing the texture |
| function for this texture unit. |
| |
| Inserted after the third paragraph of F.2.12: |
| |
| If a texture environment for a given texture unit references a |
| texture unit that is disabled or does not have a valid texture |
| object bound to it, then it is as if texture blending is disabled |
| for the given texture unit. Every texture unit implicitly |
| references the texture object that is bound to it, regardless |
| of the texture function specified by COMBINE_RGB_ARB or COMBINE_ALPHA_ARB. |
| |
| Additions to the GLX Specification |
| |
| None |
| |
| GLX Protocol |
| |
| None |
| |
| Errors |
| |
| INVALID_ENUM is generated if <params> value for SOURCE0_RGB_ARB, |
| SOURCE1_RGB_ARB, SOURCE2_RGB_ARB, SOURCE0_ALPHA_ARB, |
| SOURCE1_ALPHA_ARB or SOURCE2_ALPHA_ARB is not one of TEXTURE, |
| CONSTANT_ARB, PRIMARY_COLOR_ARB, PREVIOUS_ARB, or TEXTURE<n>_ARB, |
| where <n> is in the range 0 to MAX_TEXTURE_UNITS_ARB. |
| |
| New State |
| |
| None |
| |
| Revision History |
| 06/11/04 benj Updated contact info after ATI/AMD merger. |
| |
| 01/02/02 bpoddar Added original EXT/ARB contributors to the contact |
| list |
| |
| 00/12/06 bpoddar Added comments from the ARB meeting. |
| Changed texturing disable to texture blending |
| disable. Added description of table 3.21 |
| and 3.22 to define Ct<n> and At<n>. |
| |
| 00/12/01 bpoddar Added clarification regarding disabling of |
| texture blend unit when it references a |
| disabled texture. |
| Removed some changes which were already |
| specified in ARB_texture_env_combine spec. |
| |
| 00/10/31 jmiddleton First version of the spec |