back  Return to list

GL_NV_texture_shader2
homeprevnext Name
      
    NV_texture_shader2  
  
homeprevnext Name Strings
  
    GL_NV_texture_shader2  
  
homeprevnext Contact
  
    Mark J. Kilgard, NVIDIA Corporation (mjk 'at' nvidia.com)  
  
homeprevnext Notice
  
    Copyright NVIDIA Corporation, 1999, 2000, 2001.  
  
homeprevnext IP Status
  
    NVIDIA Proprietary.  
  
homeprevnext Version
  
    NVIDIA Date: April 29, 2004  
    $Date: 2004/04/29 $ $Revision: #9 $  
    $Id: //sw/main/docs/OpenGL/specs/GL_NV_texture_shader2.txt#9 $  
  
homeprevnext Number
  
    231  
  
homeprevnext Dependencies
  
    Written based on the wording of the OpenGL 1.2.1 specification,  
    augmented by the NV_texture_shader extension specification.  
  
    Requires support for the NV_texture_shader extension.  
  
homeprevnext Overview
  
    This extension extends the NV_texture_shader functionality to  
    support texture shader operations for 3D textures.  
  
    See the NV_texture_shader extension for information about the  
    texture shader operational model.  
  
    The two new texture shader operations are:  
  
    <conventional textures>  
  
    22.  TEXTURE_3D - Accesses a 3D texture via (s/q,t/q,r/q).  
  
    <dot product textures>  
  
    23.  DOT_PRODUCT_TEXTURE_3D_NV - When preceded by two DOT_PRODUCT_NV  
         programs in the previous two texture shader stages, computes a  
         third similar dot product and composes the three dot products  
         into (s,t,r) texture coordinate set to access a 3D non-projective  
         texture.  
  
homeprevnext Issues
  
    Why a separate extension?  
  
      Not all implementations of NV_texture_shader will support 3D  
      textures in hardware.  
  
      Breaking this extension out into a distinct extension allows OpenGL  
      programs that only would use 3D textures if they are supported  
      in hardware to determine whether hardware support is available by  
      explicitly looking for the NV_texture_shader2 extension.  
  
    What if an implementation wanted to support NV_texture_shader2  
    operations within a software rasterizer?  
  
      Implementations should be free to implement the 3D texture texture  
      shader operations in software.  In this case, the implementation  
      should NOT advertise the NV_texture_shader2 extension, but should  
      still accept the GL_TEXTURE_3D and GL_DOT_PRODUCT_TEXTURE_3D_NV  
      texture shader operations without an error.  Likewise, the  
      glTexImage3D command should accept the new internal texture formats,  
      formats, and types allowed by this extension should be accepted  
      without an error.  
  
      When NV_texture_shader2 is not advertised in the GL_EXTENSIONS  
      string, but the extension functionality works without GL errors,  
      programs should expect that these two texture shader operations  
      are slow.  
  
homeprevnext New Procedures and Functions
  
    None.  
  
homeprevnext New Tokens
  
    When the <target> and <pname> parameters of TexEnvf, TexEnvfv,  
    TexEnvi, and TexEnviv are TEXTURE_SHADER_NV and SHADER_OPERATION_NV  
    respectively, then the value of <param> or the value pointed to by  
    <params> may be:  
  
        TEXTURE_3D  
        DOT_PRODUCT_TEXTURE_3D_NV                 0x86EF  
  
    Accepted by the <format> parameter of TexImage3D and TexSubImage3D:  
  
        HILO_NV                                   0x86F4  
        DSDT_NV                                   0x86F5  
        DSDT_MAG_NV                               0x86F6  
        DSDT_MAG_VIB_NV                           0x86F7  
  
    Accepted by the <type> parameter of TexImage3D and TexSubImage3D:  
  
        UNSIGNED_INT_S8_S8_8_8_NV                 0x86DA   
        UNSIGNED_INT_8_8_S8_S8_REV_NV             0x86DB   
  
    Accepted by the <internalformat> parameter of TexImage3D:  
  
        SIGNED_RGBA_NV                            0x86FB  
        SIGNED_RGBA8_NV                           0x86FC  
        SIGNED_RGB_NV                             0x86FE  
        SIGNED_RGB8_NV                            0x86FF  
        SIGNED_LUMINANCE_NV                       0x8701  
        SIGNED_LUMINANCE8_NV                      0x8702  
        SIGNED_LUMINANCE_ALPHA_NV                 0x8703  
        SIGNED_LUMINANCE8_ALPHA8_NV               0x8704  
        SIGNED_ALPHA_NV                           0x8705  
        SIGNED_ALPHA8_NV                          0x8706  
        SIGNED_INTENSITY_NV                       0x8707  
        SIGNED_INTENSITY8_NV                      0x8708  
        SIGNED_RGB_UNSIGNED_ALPHA_NV              0x870C  
        SIGNED_RGB8_UNSIGNED_ALPHA8_NV            0x870D  
  
    Accepted by the <internalformat> parameter of TexImage3D:  
  
        HILO_NV  
        HILO16_NV                                 0x86F8  
        SIGNED_HILO_NV                            0x86F9  
        SIGNED_HILO16_NV                          0x86FA  
        DSDT_NV  
        DSDT8_NV                                  0x8709  
        DSDT_MAG_NV  
        DSDT8_MAG8_NV                             0x870A  
        DSDT_MAG_INTENSITY_NV                     0x86DC  
        DSDT8_MAG8_INTENSITY8_NV                  0x870B  
  
homeprevnext Additions to Chapter 2 of the 1.2 Specification (OpenGL Operation)
  
     None  
  
homeprevnext Additions to Chapter 3 of the 1.2 Specification (Rasterization)
  
 --  Section 3.8 "Texturing"  
  
     Replace the third paragraph (amended by the NV_texture_shader  
     extension) with the following that includes 3D texture references:  
  
     "The alternative to conventional texturing is the texture shaders  
     mechanism.  When texture shaders are enabled, each texture unit  
     uses one of twenty-three texture shader operations.  Twenty of the  
     twenty-three shader operations map an (s,t,r,q) texture coordinate  
     set to an RGBA color.  Of these, four texture shader operations  
     directly correspond to the 1D, 2D, 3D, and cube map conventional  
     texturing operations.  Depending on the texture shader operation,  
     the mapping from the (s,t,r,q) texture coordinate set to an RGBA  
     color may depend on the given texture unit's currently bound  
     texture object state and/or the results of previous texture  
     shader operations.  The three remaining texture shader operations  
     respectively provide a fragment culling mechanism based on texture  
     coordinates, a means to replace the fragment depth value, and a dot  
     product operation that computes a floating-point value for use by  
     subsequent texture shaders.  The specifics of each texture shader  
     operation are described in section 3.8.12."  
  
 --  Section 3.8.2 "Alternate Texture Image Specification Commands"  
  
     Amend the following text inserted by NV_texture_shader after the  
     six paragraph to include 3D texture references:  
  
     "CopyTexSubImage3D, CopyTexSubImage2D, and CopyTexSubImage1D generate  
     the error INVALID_OPERATION if the internal format of the texture  
     array to which the pixels are to be copied is one of HILO_NV,  
     HILO16_NV, SIGNED_HILO_NV, SIGNED_HILO16_NV, DSDT_NV, DSDT8_NV,  
     DSDT_MAG_NV, DSDT8_MAG8_NV, DSDT_MAG_INTENSITY_NV, or  
     DSDT8_MAG8_INTENSITY8_NV.    
  
     TexSubImage3D, TexSubImage2D, and TexSubImage1D generate the error  
     INVALID_OPERATION if the internal format of the texture array  
     to which the texels are to be copied has a different format type  
     (according to table 3.15) than the format type of the texels being  
     specified.  Specifically, if the base internal format is not one of  
     HILO_NV, DSDT_NV, DSDT_MAG_NV, or DSDT_INTENSITY_NV, then the format  
     parameter must be one of COLOR_INDEX, RED, GREEN, BLUE, ALPHA,  
     RGB, RGBA, LUMINANCE, or LUMINANCE_ALPHA; if the base internal  
     format is HILO_NV, then the format parameter must be HILO_NV;  
     if the base internal format is DSDT_NV, then the format parameter  
     must be DSDT_NV; if the base internal format is DSDT_MAG_NV, then  
     the format parameter must be DSDT_MAG_NV; if the base internal  
     format is DSDT_MAG_INTENSITY_NV, the format parameter must be  
     DSDT_MAG_VIB_NV."  
  
 --  Section 3.8.13 "Texture Shaders"  
  
     Amend the designated paragraphs of the NV_texture_shader  
     specification to include discussion of 3D textures.  
  
     1st paragraph:  
  
     "Each texture unit is configured with one of twenty-three  
     texture shader operations.  Several texture shader operations  
     require additional state.  All per-texture shader stage state  
     is specified using the TexEnv commands with the target specified  
     as TEXTURE_SHADER_NV.  The per-texture shader state is replicated  
     per texture unit so the texture unit selected by ActiveTextureARB  
     determines which texture unit's environment is modified by TexEnv  
     calls."  
  
     3rd paragraph:  
  
     "When TexEnv is called with the target of TEXTURE_SHADER_NV,  
     SHADER_OPERATION_NV may be set to one of NONE, TEXTURE_1D,  
     TEXTURE_2D, TEXTURE_3D, TEXTURE_CUBE_MAP_ARB, PASS_THROUGH_NV,  
     CULL_FRAGMENT_NV, OFFSET_TEXTURE_2D_NV, OFFSET_TEXTURE_2D_SCALE_NV,  
     OFFSET_TEXTURE_RECTANGLE_NV, OFFSET_TEXTURE_RECTANGLE_SCALE_NV,  
     DEPENDENT_AR_TEXTURE_2D_NV, DEPENDENT_GB_TEXTURE_2D_NV,  
     DOT_PRODUCT_NV, DOT_PRODUCT_DEPTH_REPLACE_NV,  
     DOT_PRODUCT_TEXTURE_2D_NV, DOT_PRODUCT_TEXTURE_RECTANGLE_NV,  
     DOT_PRODUCT_TEXTURE_3D_NV, DOT_PRODUCT_TEXTURE_CUBE_MAP_NV,  
     DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV, DOT_PRODUCT_REFLECT_CUBE_MAP_NV, or  
     DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV.  The semantics of each of  
     these shader operations is described in section 3.8.13.1.  Not every  
     operation is supported in every texture unit.  The restrictions for  
     how these shader operations can be configured in various texture  
     units are described in section 3.8.13.2."  
  
     3.8.13.1  Texture Shader Operations  
  
     Amend tables 3.A, 3.B, 3.C, and 3.D in the NV_texture_shader  
     specification to include entries for 3D texture operations:  
  
     Table 3.A:  
  
                                                                                               texture shader  
texture shader operation i         previous texture input     texture shader operation i-1     operation i-2     texture shader operation i+1  
=================================  =========================  ===============================  ================  ================================  
TEXTURE_3D                         -                          -                                -                 -  
---------------------------------  -------------------------  -------------------------------  ----------------  --------------------------------  
DOT_PRODUCT_TEXTURE_3D_NV          shader result type must    shader operation                 shader operation  -  
                                    be one of signed HILO,     must be                          must be  
                                    unsigned HILO, all         DOT_PRODUCT_NV                   DOT_PRODUCT_NV  
                                    signed RGBA, all  
                                    unsigned RGBA  
---------------------------------  -------------------------  -------------------------------  ----------------  --------------------------------  
  
     Table 3.B:  
  
texture shader operation i         texture unit i  
=================================  =======================================  
TEXTURE_3D                         3D target must be consistent  
---------------------------------  ---------------------------------------  
DOT_PRODUCT_TEXTURE_3D_NV          3D target must be consistent  
---------------------------------  ---------------------------------------  
  
     Table 3.C:  
  
                                                          uses    uses    uses    uses             uses       offset    uses  
                                   texture                stage   stage   stage   previous  uses   offset     texture   const  
                                   coordinate  texture    result  result  result  texture   cull   texture    2D scale  eye  
texture shader operation i         set usage   target     i-1     i-2     i+1     input     modes  2D matrix  and bias  vector  
=================================  ==========  =========  ======  ======  ======  ========  =====  =========  ========  ======  
TEXTURE_3D                         s,t,r,q     3D         -       -       -       -         -      -          -         -  
---------------------------------  ----------  ---------  ------  ------  ------  --------  -----  ---------  --------  ------  
DOT_PRODUCT_TEXTURE_3D_NV          s,t,r       3D         y       y       -       y         -      -          -         -  
---------------------------------  ----------  ---------  ------  ------  ------  --------  -----  ---------  --------  ------  
  
     Table 3.D:  
  
texture shader operation i         shader stage result type       shader stage result                  texture unit RGBA color result  
=================================  =============================  ===================================  ======================================  
TEXTURE_3D                         matches 3D target type         filtered 3D target texel             if 3D target texture type is RGBA,   
                                                                                                        filtered 3D target texel,  
                                                                                                        else (0,0,0,0)  
---------------------------------  -----------------------------  -----------------------------------  --------------------------------------  
DOT_PRODUCT_TEXTURE_3D_NV          matches 3D target type         filtered 3D target texel             if 3D target texture type is RGBA,  
                                                                                                        filtered 3D target texel,  
                                                                                                        else (0,0,0,0)     
-------------------------------    -----------------------------  -----------------------------------  --------------------------------------  
  
     Add the following new sections specifying new 3D texture operations:  
  
     3.8.13.1.22  3D Projective Texturing  
  
     The TEXTURE_3D texture shader operation accesses the texture unit's  
     3D texture object (as described in sections 3.8.4, 3.8.5, and 3.8.6)  
     using (s/q,t/q,r/q) for the 3D texture coordinates where s, t, r,  
     and q are the homogeneous texture coordinates for the texture unit.  
     The result of the texture access becomes both the shader result and  
     texture unit RGBA result (see table 3.E).  The type of the shader  
     result depends on the format type of the accessed texture.  This mode  
     is equivalent to conventional texturing's 3D texture target.  
  
     If the texture unit's 3D texture object is not consistent, then  
     this texture shader stage is not consistent.  
  
     If this texture shader stage is not consistent, it operates as if  
     it is the NONE operation.  
  
     3.8.13.1.23  Dot Product Texture 3D  
  
     The DOT_PRODUCT_TEXTURE_3D_NV texture shader operation accesses the  
     texture unit's 3D texture object (as described in sections 3.8.4,  
     3.8.5, and 3.8.6) using (dotPP,dotP,dotC) for the 3D texture  
     coordinates.  The result of the texture access becomes both  
     the shader result and texture unit RGBA result (see table 3.E).  
     The type of the shader result depends on the format type of the  
     accessed texture.  
  
     Assuming that i is the current texture shader stage, dotPP is the  
     floating-point dot product texture shader result from the i-2  
     texture shader stage, assuming the i-2 texture shader stage's  
     operation is DOT_PRODUCT_NV.  dotP is the floating-point dot  
     product texture shader result from the i-1 texture shader stage,  
     assuming the i-1 texture shader stage's operation is DOT_PRODUCT_NV.  
     dotC is the floating-point dot product result from the current  
     texture shader stage.  dotC is computed in the identical manner  
     used to compute the floating-point result of the DOT_PRODUCT_NV  
     texture shader described in section 3.8.13.1.14.  
  
     If the previous texture input texture object specified by the  
     current texture shader stage's PREVIOUS_TEXTURE_INPUT_NV value has  
     a format type other than RGBA or HILO (the DSDT_MAG_INTENSITY_NV  
     base internal format does not count as an RGBA format type in this  
     context), then this texture shader stage is not consistent.    
  
     If the previous texture input texture shader operation specified by  
     the current texture shader stage's PREVIOUS_TEXTURE_INPUT_NV value  
     is DOT_PRODUCT_NV, then this texture shader stage is not consistent.  
  
     If the previous texture input texture shader result specified by  
     the current texture shader stage's PREVIOUS_TEXTURE_INPUT_NV value  
     is invalid, then this texture shader stage is not consistent.  
  
     If the previous texture input shader stage specified by the current  
     texture shader stage's PREVIOUS_TEXTURE_INPUT_NV value is not  
     consistent, then this texture shader stage is not consistent.  
  
     If either the i-1 or i-2 texture shader stage operation is not  
     DOT_PRODUCT_NV, then this texture shader stage is not consistent.  
  
     If either the i-1 or i-2 texture shader stage is not consistent, then  
     this texture shader stage is not consistent.  
  
     If the texture unit's 3D texture object is not consistent, then  
     this texture shader stage is not consistent.  
  
     If this texture shader stage is not consistent, it operates as if  
     it is the NONE operation.  
  
     3.8.13.2  Texture Shader Restrictions  
  
     Amend the first four paragraphs in this section to include 3D  
     texture operations:  
  
     "There are various restrictions on possible texture shader  
     configurations.  These restrictions are described in this section.  
  
     The error INVALID_OPERATION occurs if the SHADER_OPERATION_NV  
     parameter for texture unit 0 is assigned one of  
     OFFSET_TEXTURE_2D_NV, OFFSET_TEXTURE_2D_SCALE_NV,  
     OFFSET_TEXTURE_RECTANGLE_NV, OFFSET_TEXTURE_RECTANGLE_SCALE_NV,  
     DEPENDENT_AR_TEXTURE_2D_NV, DEPENDENT_GB_TEXTURE_2D_NV,  
     DOT_PRODUCT_NV, DOT_PRODUCT_DEPTH_REPLACE_NV,  
     DOT_PRODUCT_TEXTURE_2D_NV, DOT_PRODUCT_TEXTURE_RECTANGLE_NV,  
     DOT_PRODUCT_TEXTURE_3D_NV, DOT_PRODUCT_TEXTURE_CUBE_MAP_NV,  
     DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV, DOT_PRODUCT_REFLECT_CUBE_MAP_NV,  
     or DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV.  Each of these  
     texture shaders requires a previous texture shader result that  
     is not possible for texture unit 0.  Therefore these shaders are  
     disallowed for texture unit 0.  
  
     The error INVALID_OPERATION occurs if the  
     SHADER_OPERATION_NV parameter for texture unit  
     1 is assigned one of DOT_PRODUCT_DEPTH_REPLACE_NV,  
     DOT_PRODUCT_TEXTURE_2D_NV, DOT_PRODUCT_TEXTURE_RECTANGLE_NV,  
     DOT_PRODUCT_TEXTURE_3D_NV, DOT_PRODUCT_TEXTURE_CUBE_MAP_NV,  
     DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV, DOT_PRODUCT_REFLECT_CUBE_MAP_NV,  
     or DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV.  Each of these texture  
     shaders requires either two previous texture shader results or  
     a dot product result that cannot be generated by texture unit 0.  
     Therefore these shaders are disallowed for texture unit 1.  
  
     The error INVALID_OPERATION occurs if the  
     SHADER_OPERATION_NV parameter for texture unit  
     2 is assigned one of DOT_PRODUCT_TEXTURE_3D_NV,  
     DOT_PRODUCT_TEXTURE_CUBE_MAP_NV, DOT_PRODUCT_REFLECT_CUBE_MAP_NV,  
     DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV.  Each of these texture  
     shaders requires three previous texture shader results.  Therefore  
     these shaders are disallowed for texture unit 2."  
  
     3.8.13.3  Required State  
  
     Amend the first paragraph in this section to account for the 2 new  
     3D texture shader operations:  
  
     "The state required for texture shaders consists of a single bit to  
     indicate whether or not texture shaders are enabled, a vector of  
     three floating-point values for the constant eye vector, and n sets  
     of per-texture unit state where n is the implementation-dependent  
     number of supported texture units.  The set of per-texture unit  
     texture shader state consists of the twenty-three-valued integer  
     indicating the texture shader operation, four two-valued integers  
     indicating the cull modes, an integer indicating the previous texture  
     unit input, a two-valued integer indicating the RGBA unsigned dot  
     product mapping mode, a 2x2 floating-point matrix indicating the  
     texture offset transform, a floating-point value indicating the  
     texture offset scale, a floating-point value indicating the texture  
     offset bias, and a bit to indicate whether or not the texture shader  
     stage is consistent."  
  
homeprevnext Additions to Chapter 4 of the 1.2 Specification (Per-Fragment Operations and the Frame Buffer)
  
     None  
  
homeprevnext Additions to Chapter 5 of the 1.2 Specification (Special Functions)
  
     None  
  
homeprevnext Additions to Chapter 6 of the 1.2 Specification (State and State Requests)
  
     None  
  
homeprevnext Additions to the GLX Specification
  
     None  
  
homeprevnext Dependencies on other specifications
  
     Same as the NV_texture_shader extension.  
  
homeprevnext Errors
  
     The following errors are updated to reflect 3D texture operations:  
  
     INVALID_OPERATION is generated if a packed pixel format type listed  
     in table 3.8 is used with DrawPixels, ReadPixels, ColorTable,  
     ColorSubTable, ConvolutionFilter1D, ConvolutionFilter2D,  
     SeparableFilter2D, GetColorTable, GetConvolutionFilter,  
     GetSeparableFilter, GetHistogram, GetMinmax, TexImage1D, TexImage2D,  
     TexImage3D, TexSubImage1D, TexSubImage2D, TexSubImage3d, or  
     GetTexImage but the format parameter does not match on of the allowed  
     Matching Pixel Formats listed in table 3.8 for the specified packed  
     type parameter.  
  
     INVALID_OPERATION is generated when TexImage1D, TexImage2D,  
     or TexImage3D are called and the format is HILO_NV and the  
     internalformat is not one of HILO_NV, HILO16_NV, SIGNED_HILO_NV,  
     SIGNED_HILO16_NV; or if the internalformat is one of HILO_NV,  
     HILO16_NV, SIGNED_HILO_NV, or SIGNED_HILO16_NV and the format is  
     not HILO_NV.  
  
     INVALID_OPERATION is generated when TexImage3D, TexImage2D,  
     or TexImage1D is called and if the format is DSDT_NV and the  
     internalformat is not either DSDT_NV or DSDT8_NV; or if the internal  
     format is either DSDT_NV or DSDT8_NV and the format is not DSDT_NV.  
  
     INVALID_OPERATION is generated when TexImage3D, TexImage2D, or  
     TexImage1D is called and if the format is DSDT_MAG_NV and the  
     internalformat is not either DSDT_MAG_NV or DSDT8_MAG8_NV; or if  
     the internal format is either DSDT_MAG_NV or DSDT8_MAG8_NV and the  
     format is not DSDT_MAG_NV.  
  
     INVALID_OPERATION is generated when TexImage3D, TexImage2D,  
     or TexImage1D is called and if the format is DSDT_MAG_VIB_NV  
     and the internalformat is not either DSDT_MAG_INTENSITY_NV or  
     DSDT8_MAG8_INTENSITY8_NV; or if the internal format is either  
     DSDT_MAG_INTENSITY_NV or DSDT8_MAG8_INTENSITY8_NV and the format  
     is not DSDT_MAG_VIB_NV.  
  
     INVALID_OPERATION is generated when CopyTexImage2D, CopyTexImage1D,  
     CopyTexSubImage3D, CopyTexSubImage2D, or CopyTexSubImage1D is called  
     and the internal format of the texture array to which the pixels  
     are to be copied is one of HILO_NV, HILO16_NV, SIGNED_HILO_NV,  
     SIGNED_HILO16_NV, DSDT_NV, DSDT8_NV, DSDT_MAG_NV, DSDT8_MAG8_NV,  
     DSDT_MAG_INTENSITY_NV, or DSDT8_MAG8_INTENSITY8_NV.  
  
     INVALID_OPERATION is generated when TexSubImage3D, TexSubImage2D, or  
     TexSubImage1D is called and the texture array's base internal format  
     is not one of HILO_NV, DSDT_NV, DSDT_MAG_NV, or DSDT_INTENSITY_NV,  
     and the format parameter is not one of COLOR_INDEX, RED,  
     GREEN, BLUE, ALPHA, RGB, RGBA, LUMINANCE, or  
     LUMINANCE_ALPHA   
  
     INVALID_OPERATION is generated when TexSubImage3D, TexSubImage2D, or  
     TexSubImage1D is called and the texture array's base internal format  
     is HILO_NV and the format parameter is not HILO_NV.  
  
     INVALID_OPERATION is generated when TexSubImage3D, TexSubImage2D, or  
     TexSubImage1D is called and the texture array's base internal format  
     is DSDT_NV and the format parameter is not DSDT_NV.  
  
     INVALID_OPERATION is generated when TexSubImage3D, TexSubImage2D, or  
     TexSubImage1D is called and the texture array's base internal format  
     is DSDT_MAG_NV and the format parameter is not DSDT_MAG_NV.  
  
     INVALID_OPERATION is generated when TexSubImage3D, TexSubImage2D,  
     or TexSubImage1D is called and the texture array's base internal  
     format is DSDT_MAG_INTENSITY_NV and the format parameter is not  
     DSDT_MAG_VIRBANCE_NV.  
  
     INVALID_OPERATION is generated when TexEnv is called and the  
     SHADER_OPERATION_NV parameter for texture unit 0 is assigned  
     one of OFFSET_TEXTURE_2D_NV, OFFSET_TEXTURE_2D_SCALE_NV,  
     OFFSET_TEXTURE_RECTANGLE_NV, OFFSET_TEXTURE_RECTANGLE_SCALE_NV,  
     DEPENDENT_AR_TEXTURE_2D_NV, DEPENDENT_GB_TEXTURE_2D_NV,  
     DOT_PRODUCT_NV, DOT_PRODUCT_DEPTH_REPLACE_NV,  
     DOT_PRODUCT_TEXTURE_2D_NV, DOT_PRODUCT_TEXTURE_RECTANGLE_NV,  
     DOT_PRODUCT_TEXTURE_3D_NV, DOT_PRODUCT_TEXTURE_CUBE_MAP_NV,  
     DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV, DOT_PRODUCT_REFLECT_CUBE_MAP_NV.  
     or DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV.  
  
     INVALID_OPERATION is generated when TexEnv is called  
     and the SHADER_OPERATION_NV parameter for texture  
     unit 1 is assigned one of DOT_PRODUCT_DEPTH_REPLACE_NV,  
     DOT_PRODUCT_TEXTURE_2D_NV, DOT_PRODUCT_TEXTURE_RECTANGLE_NV,  
     DOT_PRODUCT_TEXTURE_3D_NV, DOT_PRODUCT_TEXTURE_CUBE_MAP_NV,  
     DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV, DOT_PRODUCT_REFLECT_CUBE_MAP_NV,  
     or DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV.  
  
     INVALID_OPERATION is generated when TexEnv is called  
     and the SHADER_OPERATION_NV parameter for texture  
     unit 2 is assigned one of DOT_PRODUCT_TEXTURE_3D_NV,  
     DOT_PRODUCT_TEXTURE_CUBE_MAP_NV, DOT_PRODUCT_REFLECT_CUBE_MAP_NV,  
     or DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV.  
  
     INVALID_OPERATION is generated when TexEnv is called and the  
     SHADER_OPERATION_NV parameter for texture unit n-1 (where n is the  
     number of supported texture units) is assigned either DOT_PRODUCT_NV  
     or DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV.  
  
     INVALID_OPERATION is generated when GetTexImage is called with a  
     color format (one of RED, GREEN, BLUE, ALPHA, RGB, RGBA, LUMINANCE,  
     or LUMINANCE_ALPHA) when the texture image is of a format type (see  
     table 3.15) other than RGBA (the DSDT_MAG_INTENSITY_NV base internal  
     format does not count as an RGBA format type in this context).  
  
     INVALID_OPERATION is generated when GetTexImage is called with  
     a format of HILO when the texture image is of a format type (see  
     table 3.15) other than HILO.  
  
     INVALID_OPERATION is generated when GetTexImage is called with a  
     format of DSDT_NV when the texture image is of a base internal  
     format other than DSDT_NV.  
  
     INVALID_OPERATION is generated when GetTexImage is called with a  
     format of DSDT_MAG_NV when the texture image is of a base internal  
     format other than DSDT_MAG_NV.  
  
     INVALID_OPERATION is generated when GetTexImage is called with a  
     format of DSDT_MAG_VIBRANCE_NV when the texture image is of a base  
     internal format other than DSDT_MAG_INTENSITY_NV causes the error  
     INVALID_OPERATION."  
  
homeprevnext New State
  
Table 6.TextureShaders.  Texture Shaders.  
  
Get Value                    Type    Get Command  Initial Value         Description          Sec     Attribute  
---------------------------  ------  -----------  --------------------  -------------------  ------  --------------  
SHADER_OPERATION_NV          TxZ23   GetTexEnviv  NONE                  Texture shader       3.8.13  texture  
                                                                        operation  
  
* Z21 in NV_texture_shader is now Z23 with NV_texture_shader2.  
  
[ The "Tx" type prefix means that the state is per-texture unit. ]  
  
[ The "Zn" type is an n-valued integer where n is the  
  implementation-dependent number of texture units supported.]  
  
New Implementation State  
  
     None  
  
homeprevnext Revision History
  
     None  
     None  
Valid XHTML 1.1! Valid CSS! Last update: November 14, 2006.
Cette page doit être lue avec un navigateur récent respectant le standard XHTML 1.1.