15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci    
35bd8deadSopenharmony_ci    NV_texgen_emboss
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_NV_texgen_emboss
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContact
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Mark J. Kilgard, NVIDIA Corporation (mjk 'at' nvidia.com)
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ciNotice
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    Copyright NVIDIA Corporation, 1999, 2001.
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ciIP Status
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ci    NVIDIA Proprietary.
205bd8deadSopenharmony_ci
215bd8deadSopenharmony_ciStatus
225bd8deadSopenharmony_ci
235bd8deadSopenharmony_ci    Discontinued.
245bd8deadSopenharmony_ci
255bd8deadSopenharmony_ci    NVIDIA no longer supports this extension in driver updates
265bd8deadSopenharmony_ci    after November 2002.  Instead, use either ARB_vertex_program &
275bd8deadSopenharmony_ci    NV_vertex_program.
285bd8deadSopenharmony_ci
295bd8deadSopenharmony_ciVersion
305bd8deadSopenharmony_ci
315bd8deadSopenharmony_ci    NVIDIA Date: January 3, 2003
325bd8deadSopenharmony_ci    $Date$ $Revision$
335bd8deadSopenharmony_ci    $Id: //sw/main/docs/OpenGL/specs/old/GL_NV_texgen_emboss.txt#2 $
345bd8deadSopenharmony_ci
355bd8deadSopenharmony_ciNumber
365bd8deadSopenharmony_ci
375bd8deadSopenharmony_ci    193
385bd8deadSopenharmony_ci
395bd8deadSopenharmony_ciDependencies
405bd8deadSopenharmony_ci
415bd8deadSopenharmony_ci    ARB_multitexture.
425bd8deadSopenharmony_ci
435bd8deadSopenharmony_ci    Written based on the wording of the OpenGL 1.2 specification and the
445bd8deadSopenharmony_ci    ARB_multitexture extension.
455bd8deadSopenharmony_ci
465bd8deadSopenharmony_ciOverview
475bd8deadSopenharmony_ci
485bd8deadSopenharmony_ci    This extension provides a new texture coordinate generation mode
495bd8deadSopenharmony_ci    suitable for multitexture-based embossing (or bump mapping) effects.
505bd8deadSopenharmony_ci
515bd8deadSopenharmony_ci    Given two texture units, this extension generates the texture
525bd8deadSopenharmony_ci    coordinates of a second texture unit (an odd-numbered texture unit)
535bd8deadSopenharmony_ci    as a perturbation of a first texture unit (an even-numbered texture
545bd8deadSopenharmony_ci    unit one less than the second texture unit).  The perturbation is
555bd8deadSopenharmony_ci    based on the normal, tangent, and light vectors.  The normal vector
565bd8deadSopenharmony_ci    is supplied by glNormal; the light vector is supplied as a direction
575bd8deadSopenharmony_ci    vector to a specified OpenGL light's position; and the tanget
585bd8deadSopenharmony_ci    vector is supplied by the second texture unit's current texture
595bd8deadSopenharmony_ci    coordinate.  The perturbation is also scaled by program-supplied
605bd8deadSopenharmony_ci    scaling constants.
615bd8deadSopenharmony_ci
625bd8deadSopenharmony_ci    If both texture units are bound to the same texture representing a
635bd8deadSopenharmony_ci    height field, by subtracting the difference between the resulting two
645bd8deadSopenharmony_ci    filtered texels, programs can achieve a per-pixel embossing effect.
655bd8deadSopenharmony_ci
665bd8deadSopenharmony_ciIssues
675bd8deadSopenharmony_ci
685bd8deadSopenharmony_ci    Can you do embossing on any texture unit?
695bd8deadSopenharmony_ci
705bd8deadSopenharmony_ci      NO.  Just odd numbered units.  This meets a constraint of the
715bd8deadSopenharmony_ci      proposed hardware implementation, and because embossing takes two
725bd8deadSopenharmony_ci      texture units anyway, it shouldn't be a real limitation.
735bd8deadSopenharmony_ci
745bd8deadSopenharmony_ci    Can you just enable one coordinate of a texture unit for embossing?
755bd8deadSopenharmony_ci
765bd8deadSopenharmony_ci      Yes but NOT REALLY.  The texture coordinate generation formula
775bd8deadSopenharmony_ci      is specified such that only when ALL the coordinates are enabled
785bd8deadSopenharmony_ci      and are using embossing, do you get the embossing computation.
795bd8deadSopenharmony_ci      Otherwise, you get undefined values for texture coordinates enabled
805bd8deadSopenharmony_ci      for texture coordinate generation and setup for embossing.
815bd8deadSopenharmony_ci
825bd8deadSopenharmony_ci    Does the light specified have to be enabled for embossing to work?
835bd8deadSopenharmony_ci
845bd8deadSopenharmony_ci      Yes, currently.  But perhaps we could require implementations to
855bd8deadSopenharmony_ci      enable a phantom light (the light colors would be black).
865bd8deadSopenharmony_ci
875bd8deadSopenharmony_ci    Could the emboss constant just be the reciprocal of the width and
885bd8deadSopenharmony_ci    height of the texture units texture if that's what the programmer
895bd8deadSopenharmony_ci    will have it be most of the time?
905bd8deadSopenharmony_ci
915bd8deadSopenharmony_ci      NO.  Too much work and there may be reasons for the programmer to
925bd8deadSopenharmony_ci      control this.
935bd8deadSopenharmony_ci
945bd8deadSopenharmony_ci    OpenGL's base texture environment functionality isn't powerful enough
955bd8deadSopenharmony_ci    to do the subtraction needed for embossing.  Where would you get
965bd8deadSopenharmony_ci    powerful enough texture environment functionality.
975bd8deadSopenharmony_ci
985bd8deadSopenharmony_ci      Another extension.  Try NV_register_combiners.
995bd8deadSopenharmony_ci
1005bd8deadSopenharmony_ci    What is the interpretation of CT?
1015bd8deadSopenharmony_ci
1025bd8deadSopenharmony_ci      For the purposes of embossing, CT should be thought of as the
1035bd8deadSopenharmony_ci      vertex's tangent vector.  This tangent vector indicates the direction
1045bd8deadSopenharmony_ci      on the "surface" where PCTs is not changing and PCTt is increasing.
1055bd8deadSopenharmony_ci
1065bd8deadSopenharmony_ci    Are the CT and PCT variables the user-supplied current texture
1075bd8deadSopenharmony_ci    coordinates?
1085bd8deadSopenharmony_ci
1095bd8deadSopenharmony_ci      YES.  Except when the texture unit's texture coordinate evaluator
1105bd8deadSopenharmony_ci      is enabled, then CT and PCT use the respective evaluated texture
1115bd8deadSopenharmony_ci      coordinates.
1125bd8deadSopenharmony_ci
1135bd8deadSopenharmony_ci      This extension specification's language "Denote as CT the texture
1145bd8deadSopenharmony_ci      unit's current texture coordinates" and "Denote as PCT the previous
1155bd8deadSopenharmony_ci      texture unit's current texture coordinates" refers to the "current
1165bd8deadSopenharmony_ci      texture coordinates" OpenGL state which is the state specified
1175bd8deadSopenharmony_ci      via glTexCoord.  Plus the exception for evaluators.
1185bd8deadSopenharmony_ci
1195bd8deadSopenharmony_ci      To be explicit, PCT is NOT the result of texgen or the texture
1205bd8deadSopenharmony_ci      matrix.  Likewise, CT is NOT the result of texgen or the
1215bd8deadSopenharmony_ci      texture matrix.  PCT and CT are the respective texture unit's
1225bd8deadSopenharmony_ci      evaluated texture coordinate if the vertex is evaluated with
1235bd8deadSopenharmony_ci      texture coordinate evaluation enabled, otherwise if the vertex is
1245bd8deadSopenharmony_ci      generated via vertex arrays with the respective texture coordinate
1255bd8deadSopenharmony_ci      array enabled, the texture coordinate from the texture coordinate
1265bd8deadSopenharmony_ci      array, otherwise the respective current texture coordinate is used.
1275bd8deadSopenharmony_ci
1285bd8deadSopenharmony_ciNew Procedures and Functions
1295bd8deadSopenharmony_ci
1305bd8deadSopenharmony_ci    None
1315bd8deadSopenharmony_ci
1325bd8deadSopenharmony_ciNew Tokens
1335bd8deadSopenharmony_ci
1345bd8deadSopenharmony_ci    Accepted by the <param> parameters of TexGend, TexGenf, and TexGeni
1355bd8deadSopenharmony_ci    when <pname> parameter is TEXTURE_GEN_MODE:
1365bd8deadSopenharmony_ci
1375bd8deadSopenharmony_ci        EMBOSS_MAP_NV                      0x855F
1385bd8deadSopenharmony_ci
1395bd8deadSopenharmony_ci    When the <pname> parameter of TexGendv, TexGenfv, and TexGeniv is
1405bd8deadSopenharmony_ci    TEXTURE_GEN_MODE, then the array <params> may also contain
1415bd8deadSopenharmony_ci    EMBOSS_MAP_NV.
1425bd8deadSopenharmony_ci
1435bd8deadSopenharmony_ci    Accepted by the <pname> parameters of GetTexGendv, GetTexGenfv,
1445bd8deadSopenharmony_ci    GetTexGeniv, TexGend, TexGendv, TexGenf, TexGenfv, TexGeni, and
1455bd8deadSopenharmony_ci    TexGeniv:
1465bd8deadSopenharmony_ci
1475bd8deadSopenharmony_ci        EMBOSS_LIGHT_NV                    0x855D
1485bd8deadSopenharmony_ci        EMBOSS_CONSTANT_NV                 0x855E
1495bd8deadSopenharmony_ci
1505bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.2 Specification (OpenGL Operation)
1515bd8deadSopenharmony_ci
1525bd8deadSopenharmony_ci--  Section 2.10.4 "Generating Texture Coordinates"
1535bd8deadSopenharmony_ci
1545bd8deadSopenharmony_ci    Change the last sentence in the 1st paragraph to:
1555bd8deadSopenharmony_ci
1565bd8deadSopenharmony_ci    "If <pname> is TEXTURE_GEN_MODE, then either <params> points to
1575bd8deadSopenharmony_ci    or <param> is an integer that is one of the symbolic constants
1585bd8deadSopenharmony_ci    OBJECT_LINEAR, EYE_LINEAR, SPHERE_MAP, or EMBOSS_MAP_NV."
1595bd8deadSopenharmony_ci
1605bd8deadSopenharmony_ci    Add these paragraphs after the 4th paragraph:
1615bd8deadSopenharmony_ci
1625bd8deadSopenharmony_ci    "When used with a suitable texture, suitable explicit texture
1635bd8deadSopenharmony_ci    coordinates, a suitable (extended) texture environment,
1645bd8deadSopenharmony_ci    suitable lighting parameters, and suitable embossing parameters,
1655bd8deadSopenharmony_ci    calling TexGen with TEXTURE_GEN_MODE indicating EMBOSS_MAP_NV
1665bd8deadSopenharmony_ci    can simulate the lighting effect of embossing on a polygon.
1675bd8deadSopenharmony_ci    The error INVALID_ENUM occurs when the active texture unit has an
1685bd8deadSopenharmony_ci    even number.
1695bd8deadSopenharmony_ci
1705bd8deadSopenharmony_ci    The emboss constant and emboss light parameters for controlling
1715bd8deadSopenharmony_ci    the EMBOSS_MAP_NV mode are specified by calling TexGen with pname
1725bd8deadSopenharmony_ci    set to EMBOSS_CONSTANT_NV and EMBOSS_LIGHT_NV respectively.
1735bd8deadSopenharmony_ci
1745bd8deadSopenharmony_ci    When pname is EMBOSS_CONSTANT_NV, param or what params points
1755bd8deadSopenharmony_ci    to is a scalar value.  An error INVALID_ENUM occurs if pname is
1765bd8deadSopenharmony_ci    EMBOSS_CONSTANT_NV and coord is R or Q. An error INVALID_ENUM
1775bd8deadSopenharmony_ci    also occurs if pname is EMBOSS_CONSTANT_NV and the active texture
1785bd8deadSopenharmony_ci    unit number is even.
1795bd8deadSopenharmony_ci
1805bd8deadSopenharmony_ci    When pname is EMBOSS_LIGHT_NV, param or what params points to is
1815bd8deadSopenharmony_ci    a symbolic constant of the form LIGHTi, indicating that light i
1825bd8deadSopenharmony_ci    is to have the specified parameter set.  An error INVALID_ENUM
1835bd8deadSopenharmony_ci    occurs if pname is EMBOSS_LIGHT_NV and coord is R or Q.  An error
1845bd8deadSopenharmony_ci    INVALID_ENUM occurs if pname is EMBOSS_LIGHT_NV and the active
1855bd8deadSopenharmony_ci    texture unit number is even.  An error INVALID_ENUM occurs if
1865bd8deadSopenharmony_ci    pname is EMBOSS_LIGHT_NV and the value i for LIGHTi is negative
1875bd8deadSopenharmony_ci    or is greater than or equal to the value of MAX_LIGHTS.
1885bd8deadSopenharmony_ci
1895bd8deadSopenharmony_ci    If TEXTURE_GEN_MODE indicates EMBOSS_MAP_NV, the generation function
1905bd8deadSopenharmony_ci    for the coordinates S, T, R, and Q is computed as follows.
1915bd8deadSopenharmony_ci
1925bd8deadSopenharmony_ci    Denote as L the light direction vector from the vertex's eye
1935bd8deadSopenharmony_ci    position to the position of the light specified by the coordinate's
1945bd8deadSopenharmony_ci    EMBOSS_LIGHT_NV state (the direction vector is computed as described
1955bd8deadSopenharmony_ci    in Section 3.13.1).
1965bd8deadSopenharmony_ci
1975bd8deadSopenharmony_ci    Denote as N the current normal after transformation to eye
1985bd8deadSopenharmony_ci    coordinates.
1995bd8deadSopenharmony_ci
2005bd8deadSopenharmony_ci    Denote as CT the texture unit's current texture coordinates
2015bd8deadSopenharmony_ci    transformed to eye coordinates by normal transformation (as
2025bd8deadSopenharmony_ci    described in Section 3.10.3) and normalized.
2035bd8deadSopenharmony_ci
2045bd8deadSopenharmony_ci    However, if the vertex is evaluated (as described in Section 5.1)
2055bd8deadSopenharmony_ci    and the texture unit's texture coordinate map is enabled, use the
2065bd8deadSopenharmony_ci    texture unit's evaluated texture coordinate to compute CT.
2075bd8deadSopenharmony_ci
2085bd8deadSopenharmony_ci    Denote as B the cross product of N and the <s,t,r> vector of CT.
2095bd8deadSopenharmony_ci
2105bd8deadSopenharmony_ci        Bx = Ny*CTr - CTt*Nz
2115bd8deadSopenharmony_ci        By = Nz*CTs - CTr*Nx
2125bd8deadSopenharmony_ci        Bz = Nx*CTt - CTs*Ny
2135bd8deadSopenharmony_ci
2145bd8deadSopenharmony_ci    Denote as BN the normalized version of the vector B.
2155bd8deadSopenharmony_ci
2165bd8deadSopenharmony_ci        BNx = Bx / sqrt(Bx*Bx + By*By + Bz*Bz);
2175bd8deadSopenharmony_ci        BNy = By / sqrt(Bx*Bx + By*By + Bz*Bz);
2185bd8deadSopenharmony_ci        BNz = Bz / sqrt(Bx*Bx + By*By + Bz*Bz);
2195bd8deadSopenharmony_ci
2205bd8deadSopenharmony_ci    Denote as T the cross product of B and N.
2215bd8deadSopenharmony_ci
2225bd8deadSopenharmony_ci        Tx = BNy*Nz - Ny*BNz
2235bd8deadSopenharmony_ci        Ty = BNz*Nx - Nz*BNx
2245bd8deadSopenharmony_ci        Tz = BNx*Ny - Nx*BNy
2255bd8deadSopenharmony_ci
2265bd8deadSopenharmony_ci    Observe that BN and T are orthonormal.
2275bd8deadSopenharmony_ci
2285bd8deadSopenharmony_ci    Denote as PCT the previous texture unit's current texture
2295bd8deadSopenharmony_ci    coordinates.  If the number of the texture unit for the texture
2305bd8deadSopenharmony_ci    coordinates being generated is n, then the previous texture unit
2315bd8deadSopenharmony_ci    is texture unit number n-1.  Note that n is restricted to be odd.
2325bd8deadSopenharmony_ci
2335bd8deadSopenharmony_ci    However, if the vertex is evaluated (as described in Section 5.1)
2345bd8deadSopenharmony_ci    and the previous texture unit's texture coordinate map is enabled,
2355bd8deadSopenharmony_ci    use the previous texture unit's evaluated texture coordinate to
2365bd8deadSopenharmony_ci    compute PCT.
2375bd8deadSopenharmony_ci
2385bd8deadSopenharmony_ci    Denote Ks as the S coordinate's EMBOSS_CONSTANT_NV state.  Denote Kt
2395bd8deadSopenharmony_ci    as the T coordinate's EMBOSS_CONSTANT_NV state.  These constants
2405bd8deadSopenharmony_ci    should typically be set to the reciprocal of the width and height
2415bd8deadSopenharmony_ci    respectively of the texture map used for embossing.
2425bd8deadSopenharmony_ci
2435bd8deadSopenharmony_ci    Denote E as follows:
2445bd8deadSopenharmony_ci
2455bd8deadSopenharmony_ci        Es = PCTs + Ks * (Lx*BNx + Ly*BNy + Lz*BNz) * PCTq
2465bd8deadSopenharmony_ci        Et = PCTt - Kt * (Lx*Tx + Ly*Ty + Lz*Tz) * PCTq
2475bd8deadSopenharmony_ci        Er = PCTr
2485bd8deadSopenharmony_ci        Eq = PCTq
2495bd8deadSopenharmony_ci
2505bd8deadSopenharmony_ci    Then the value assigned to an s, t, r, and q coordinates are Es,
2515bd8deadSopenharmony_ci    Et, Er, and Eq respectively.  However, for this assignment to
2525bd8deadSopenharmony_ci    occur, the following three conditions must be met.  First, all the
2535bd8deadSopenharmony_ci    texture coordinate generation modes of all the texture coordinates
2545bd8deadSopenharmony_ci    (S, T, R, and Q) of the texture unit must be set to EMBOSS_MAP_NV.
2555bd8deadSopenharmony_ci    Second, all the texture coordinate generation modes of the texture
2565bd8deadSopenharmony_ci    unit must be enabled.  Third, the EMBOSS_LIGHT_NV parameters of
2575bd8deadSopenharmony_ci    coordinates S and T must be identical and the light and lighting
2585bd8deadSopenharmony_ci    must be enabled.  If these conditions are not met, the values of
2595bd8deadSopenharmony_ci    all coordinates in the texture unit with the EMBOSS_MAP_NV mode
2605bd8deadSopenharmony_ci    are undefined."
2615bd8deadSopenharmony_ci
2625bd8deadSopenharmony_ci    The last paragraph's first sentence should be changed to:
2635bd8deadSopenharmony_ci
2645bd8deadSopenharmony_ci    "The state required for texture coordinate generation comprises
2655bd8deadSopenharmony_ci    a five-valued integer for each coordinate indicating coordinate
2665bd8deadSopenharmony_ci    generation mode, and a bit for each coordinate to indicate whether
2675bd8deadSopenharmony_ci    texture coordinate generation is enabled or disabled.  In addition,
2685bd8deadSopenharmony_ci    four coefficients are required for the four coordinates for each
2695bd8deadSopenharmony_ci    of EYE_LINEAR and OBJECT_LINEAR; also, an emboss constant and
2705bd8deadSopenharmony_ci    emboss light are required for each of the four coordinates....
2715bd8deadSopenharmony_ci    The initial values for emboss constants and emboss lights are 1.0
2725bd8deadSopenharmony_ci    and LIGHT0 respectively."
2735bd8deadSopenharmony_ci
2745bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.2 Specification (Rasterization)
2755bd8deadSopenharmony_ci
2765bd8deadSopenharmony_ci    None
2775bd8deadSopenharmony_ci
2785bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.2 Specification (Per-Fragment Operations
2795bd8deadSopenharmony_ciand the Frame Buffer)
2805bd8deadSopenharmony_ci
2815bd8deadSopenharmony_ci    None
2825bd8deadSopenharmony_ci
2835bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.2 Specification (Special Functions)
2845bd8deadSopenharmony_ci
2855bd8deadSopenharmony_ci    None
2865bd8deadSopenharmony_ci
2875bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.2 Specification (State and State Requests)
2885bd8deadSopenharmony_ci
2895bd8deadSopenharmony_ci    None
2905bd8deadSopenharmony_ci
2915bd8deadSopenharmony_ciAdditions to the AGL/GLX/WGL Specifications
2925bd8deadSopenharmony_ci
2935bd8deadSopenharmony_ci    None
2945bd8deadSopenharmony_ci
2955bd8deadSopenharmony_ciGLX Protocol
2965bd8deadSopenharmony_ci
2975bd8deadSopenharmony_ci    None
2985bd8deadSopenharmony_ci
2995bd8deadSopenharmony_ciErrors
3005bd8deadSopenharmony_ci
3015bd8deadSopenharmony_ci    INVALID_ENUM is generated when TexGen is called with a <pname>
3025bd8deadSopenharmony_ci    of TEXTURE_GEN_MODE, a <param> value or value of what <params>
3035bd8deadSopenharmony_ci    points to of EMBOSS_MAP_NV, and the active texture unit is even.
3045bd8deadSopenharmony_ci
3055bd8deadSopenharmony_ci    INVALID_ENUM is generated when TexGen is called with a <pname>
3065bd8deadSopenharmony_ci    of EMBOSS_CONSTANT_NV and the active texture unit is even.
3075bd8deadSopenharmony_ci
3085bd8deadSopenharmony_ci    INVALID_ENUM is generated when TexGen is called with a <pname>
3095bd8deadSopenharmony_ci    of EMBOSS_LIGHT_NV and the active texture unit is even.
3105bd8deadSopenharmony_ci
3115bd8deadSopenharmony_ci    INVALID_ENUM is generated when TexGen is called with a <coord>
3125bd8deadSopenharmony_ci    of R or Q when <pname> indicates EMBOSS_CONSTANT_NV.
3135bd8deadSopenharmony_ci
3145bd8deadSopenharmony_ci    INVALID_ENUM is generated when TexGen is called with a <coord>
3155bd8deadSopenharmony_ci    of R or Q when <pname> indicates EMBOSS_LIGHT_NV.
3165bd8deadSopenharmony_ci
3175bd8deadSopenharmony_ci    INVALID_ENUM is generated when TexGen is called with a <pname>
3185bd8deadSopenharmony_ci    of EMBOSS_LIGHT_NV and the value of i for the parameter LIGHTi is
3195bd8deadSopenharmony_ci    negative or is greater than or equal to the value of MAX_LIGHTS.
3205bd8deadSopenharmony_ci
3215bd8deadSopenharmony_ciNew State
3225bd8deadSopenharmony_ci
3235bd8deadSopenharmony_ci(table 6.14, p204) change the entry for TEXTURE_GEN_MODE to:
3245bd8deadSopenharmony_ci
3255bd8deadSopenharmony_ci    Get Value            Type    Get Command     Initial Value   Description        Sec    Attribute
3265bd8deadSopenharmony_ci    ---------            ----    -----------     -------------   -----------        ------ ---------
3275bd8deadSopenharmony_ci    TEXTURE_GEN_MODE     4xZ5    GetTexGeniv     EYE_LINEAR      Function used for  2.10.4 texture
3285bd8deadSopenharmony_ci                                                                 texgen (for s,t,r,
3295bd8deadSopenharmony_ci                                                                 and q)
3305bd8deadSopenharmony_ci    EMBOSS_CONSTANT_NV   4xR     GetTexGenfv     1.0             Scaling constant   2.10.4 texture
3315bd8deadSopenharmony_ci                                                                 for emboss texgen
3325bd8deadSopenharmony_ci    EMBOSS_LIGHT_NV      4xZ8*   GetTexGeniv     LIGHT0          Light used for     2.10.4 texture
3335bd8deadSopenharmony_ci                                                                 embossing.
3345bd8deadSopenharmony_ci
3355bd8deadSopenharmony_ciWhen ARB_multitexture is supported, the Type column is per-texture unit.
3365bd8deadSopenharmony_ci
3375bd8deadSopenharmony_ci(the TEXTURE_GEN_MODE type changes from 4xZ3 to 4xZ5)
3385bd8deadSopenharmony_ci
3395bd8deadSopenharmony_ciNew Implementation State
3405bd8deadSopenharmony_ci
3415bd8deadSopenharmony_ci    None
3425bd8deadSopenharmony_ci
3435bd8deadSopenharmony_ciRevision History
3445bd8deadSopenharmony_ci
3455bd8deadSopenharmony_ci    2001/02/20 - Status changed to deprecated.
3465bd8deadSopenharmony_ci    1/3/2003 changed status to "discontinued"
347