home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 1.iso / toolbox / documents / OpenGL / opengldoc / glspec / texture_scale_bias.spec < prev    next >
Encoding:
Text File  |  1996-11-11  |  6.1 KB  |  195 lines

  1. Name
  2.  
  3.     SGIX_texture_scale_bias
  4.  
  5. Name Strings
  6.  
  7.     GL_SGIX_texture_scale_bias
  8.  
  9. Version
  10.  
  11.     $Date: 1996/04/01 23:23:26 $ $Revision: 1.1 $
  12.  
  13. Number
  14.  
  15.     56
  16.  
  17. Dependencies
  18.  
  19.     EXT_texture
  20.     EXT_texture3D
  21.     EXT_texture_object
  22.  
  23. Overview
  24.  
  25.     This extension adds scale, bias, and clamp to [0, 1] operations to the 
  26.     texture pipeline.
  27.     These operations are applied to the filtered result of a texture lookup,
  28.     before that result is used in the texture environment equations and
  29.     before the texture color lookup table of SGI_texture_color_table, 
  30.     if that extension exists.
  31.     These operations are distinct from the scale, bias, and clamp operations
  32.     that appear in the SGI_color_table extension, which are used to
  33.     define a color lookup table.
  34.  
  35.     Scale and bias operations on texels can be used to better utilize the
  36.     color resolution of a particular texture internal format (see EXT_texture).
  37.  
  38. Issues
  39.  
  40.     *    still missing: GLX protocol, registry number
  41.  
  42.     *     RE and IMPACT do not have hardware support for this extension.
  43.  
  44. New Procedures and Functions
  45.  
  46.     None
  47.  
  48. New Tokens
  49.  
  50.     Accepted by the <pname> parameters of TexParameterfv, TexParameteriv, 
  51.     and GetTexParameter:
  52.  
  53.     POST_TEXTURE_FILTER_BIAS_SGIX
  54.     POST_TEXTURE_FILTER_SCALE_SGIX
  55.  
  56.     Accepted by the <pname> parameters of GetBooleanv, GetDoublev, GetFloatv,
  57.     and GetIntegerv:
  58.  
  59.     POST_TEXTURE_FILTER_BIAS_RANGE_SGIX
  60.     POST_TEXTURE_FILTER_SCALE_RANGE_SGIX
  61.  
  62. Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
  63.  
  64.     None
  65.  
  66. Additions to Chapter 3 of the 1.0 Specification (Rasterization)
  67.  
  68.     A scale or bias is specified using TexParameterfv or
  69.     TexParameteriv with a <pname> of either POST_TEXTURE_FILTER_SCALE_SGIX
  70.     or POST_TEXTURE_FILTER_BIAS_SGIX and with <params> set to an array of 
  71.     four values. The scale or bias values can be queried using 
  72.     GetTexParameterfv or GetTexParameteriv.
  73.  
  74.     The scale, bias, and clamp operations are applied, in that order,
  75.     directly before the texture environment equations, or, if the 
  76.     SGI_texture_color_table extension exists, directly before the 
  77.     texture color lookup table.  
  78.     The four values for scale (or bias) correspond to the R, G, B, 
  79.     and A scale (or bias) factors.
  80.     These are applied to the corresponding texture components, Rt, Gt,
  81.     Bt, and At, as denoted in the EXT_texture extension.
  82.     Following the scale and bias is a clamp to [0, 1].
  83.  
  84.     The scale, bias, and clamp operations are effectively disabled by
  85.     setting the four scale values to 1 and the four bias values to 0.
  86.     There is no specific enable or disable token for this extension.
  87.  
  88. Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations and the 
  89.     Frame Buffer)
  90.  
  91.     None
  92.  
  93. Additions to Chapter 5 of the 1.0 Specification (Special Functions)
  94.  
  95.     None
  96.  
  97. Additions to Chapter 6 of the 1.0 Specification (State and State Requests)
  98.  
  99.     The specification for "EXT_texture_object" describes the state that
  100.     comprises a texture object.  Here it is rewritten to include the
  101.     scale and bias state:
  102.  
  103.    "A texture object comprises the image arrays, priority, border color,
  104.     filter modes, and wrap modes that are associated with that object.  More
  105.     explicitly, the state list
  106.     
  107.     TEXTURE,
  108.     TEXTURE_PRIORITY_EXT
  109.     TEXTURE_RED_SIZE,
  110.     TEXTURE_GREEN_SIZE,
  111.     TEXTURE_BLUE_SIZE,
  112.     TEXTURE_ALPHA_SIZE,
  113.     TEXTURE_LUMINANCE_SIZE,
  114.     TEXTURE_INTENSITY_SIZE,
  115.     TEXTURE_WIDTH,
  116.     TEXTURE_HEIGHT,
  117.     TEXTURE_DEPTH_EXT,
  118.     TEXTURE_BORDER,
  119.     TEXTURE_COMPONENTS,
  120.     TEXTURE_BORDER_COLOR,
  121.     TEXTURE_MIN_FILTER,
  122.     TEXTURE_MAG_FILTER,
  123.     TEXTURE_WRAP_S,
  124.     TEXTURE_WRAP_T,
  125.     TEXTURE_WRAP_R_EXT,
  126.     POST_TEXTURE_FILTER_BIAS_SGIX,
  127.     POST_TEXTURE_FILTER_SCALE_SGIX    
  128.  
  129.     composes a single texture object."
  130.  
  131.     Since an implementation may have a limited range for the values of scale
  132.     and bias (e.g. due to hardware constraints), this range can be queried.
  133.     The scale or bias range is obtained using GetFloatv (or other Get) with a 
  134.     <value> of POST_TEXTURE_FILTER_SCALE_RANGE_SGIX or 
  135.     POST_TEXTURE_FILTER_BIAS_RANGE_SGIX, respectively. An array of two floats
  136.     is returned.  The first is the minimum value and the second is the maximum 
  137.     value.
  138.  
  139. Additions to the GLX Specification
  140.  
  141.     None
  142.  
  143. GLX Protocol
  144.  
  145.     XXX
  146.  
  147. Dependencies on EXT_texture
  148.  
  149.     This extension refers to texture components as Rt, Gt, Bt, and At, 
  150.     as denoted in the EXT_texture extension.
  151.  
  152. Dependencies on EXT_texture3D
  153.  
  154.     If EXT_texture3D is not implemented, references to it should be deleted.
  155.  
  156. Dependencies on EXT_texture_object
  157.  
  158.     As described above, the scale and bias state is included as part of the
  159.     texture object state.
  160.     If EXT_texture_object is not implemented, references to it should be deleted.
  161.  
  162. Errors
  163.  
  164.     POST_TEXTURE_FILTER_BIAS_SGIX and POST_TEXTURE_FILTER_SCALE_SGIX are added 
  165.     to the list of <pname> parameters that are accepted by TexParameter[fi]v 
  166.     and GetTexParameter[fi]v. POST_TEXTURE_FILTER_BIAS_RANGE_SGIX and 
  167.     POST_TEXTURE_FILTER_SCALE_RANGE_SGIX are added to the list of <value> 
  168.     parameters that are accepted by Get.  
  169.  
  170. New State
  171.  
  172.     Get Value                    Get Command        Type        Initial Value    Attribute
  173.     ---------                    -----------        ----        -------------    ---------
  174.  
  175.     POST_TEXTURE_FILTER_BIAS_SGIX        GetTexParameterfv    n x 4 x R    (0,0,0,0)    texture
  176.     POST_TEXTURE_FILTER_SCALE_SGIX        GetTexParameterfv    n x 4 x R    (1,1,1,1)    texture
  177.  
  178.     Note:  The "Type" column shows "n x ..." since this state will appear 
  179.     in each of "n" texture objects defined by EXT_texture_object.
  180.     If EXT_texture_object is not implemented, then this state will appear
  181.     for each texture dimension (e.g. TEXTURE_1D, TEXTURE_2D, ...).
  182.  
  183. New Implementation Dependent State
  184.  
  185.     Get Value                    Get Command        Type        Minimum Value    Attribute
  186.     ---------                    -----------        ----        -------------    ---------
  187.  
  188.     POST_TEXTURE_FILTER_BIAS_RANGE_SGIX        GetFloatv        2 x R        (0,1)        -
  189.     POST_TEXTURE_FILTER_SCALE_RANGE_SGIX    GetFloatv        2 x R        (0,1)        -
  190.  
  191.     Note: The "Minimum Value" for POST_TEXTURE_FILTER_BIAS_RANGE_SGIX and
  192.     POST_TEXTURE_FILTER_SCALE_RANGE_SGIX is listed as a range, which might seem 
  193.     confusing.  What is meant is that an implementation will support at least 
  194.     the range listed.
  195.