blob: 1c334b3aeef6cd0e4778bd6564aed48cf7baaf3e [file] [log] [blame]
Name
SGIX_impact_pixel_texture
Name Strings
GL_SGIX_impact_pixel_texture
Version
$Date: 1997/03/27 18:08:54 $ $Revision: 1.2 $
Number
126
Dependencies
GL_SGIX_pixel_texture
Overview
This extension allows the Impact Graphics system to perform pixel texture
operations with 4D textures, and accomplish the fourth interpolation with
a two-pass operation, using the frame-buffer blend. This involves two
new filter functions for the "q" dimension only, ceiling and floor, in
addition to the nearest function, the default on Impact Graphics. Also,
there is an "alpha-shifting" function which prevents loss of precision in
the alpha value used in the frame-buffer blend.
Issues
* Will this extension be needed/utilized by other platforms?
New Procedures and Functions
None
New Tokens
Accepted by the <mode> parameter of PixelTexGenSGIX:
PIXEL_TEX_GEN_Q_CEILING_SGIX
PIXEL_TEX_GEN_Q_FLOOR_SGIX
PIXEL_TEX_GEN_Q_ROUND_SGIX
PIXEL_TEX_GEN_ALPHA_LS_SGIX
PIXEL_TEX_GEN_ALPHA_MS_SGIX
Additions to Chapter 3 of the 1.1 Specification (Rasterization)
This extension, similar to the pixel_texture.spec modifies the
"Conversion to Fragments" subsection of section 3.6.3 (Rasterization
of Pixel Rectangles) of the GL Specification. Immediately following
the text added by the pixel_texture.spec, insert the following:
If the PixelTexGenSGIX mode is RGBA, the Impact graphics system cannot
perform the "q" interpolation, so the correct result can be obtained
by a two-pass operation using the frame-buffer blend to interpolate
the two passes. The two passes use ceiling and floor functions,
specified by calling TexParameter with the minfilter and maxfilter
set to PIXEL_TEX_GEN_Q_CEILING_SGIX and PIXEL_TEX_GEN_Q_FLOOR_SGIX.
These functions can be disabled by calling TexParameter with
PIXEL_TEX_GEN_Q_ROUND_SGIX, the default. To produce the correct
fragment alpha for interpolation, the alpha-replace mode (see above)
is used to replace the texture alpha by the pixel group's alpha
component. This alpha needs to be shifted (scaled) by a value based
on the texture "q" size; this can be done with the texture color table.
For large values an additional shift is possible by calling
PixelTexGenSGIX with PIXEL_TEX_GEN_ALPHA_LS_SGIX. This will send the
least significant 8 bits of a 12-bit alpha to the texture color table.
The default is to send the most significant 8 bits by calling
PixelTexGenSGIX with PIXEL_TEX_GEN_ALPHA_MS_SGIX.
Additions to Chapter 5 of the 1.1 Specification (Special Functions)
None
Additions to Chapter 6 of the 1.1 Specification (State and State Requests)
None
Additions to the GLX Specification
None
Errors
None
New State
Get Value Get Command Type Initial Value Attrib
--------- ----------- ---- ------------- ------
PIXEL_TEX_GEN_Q_CEILING_SGIX GetTexParameter Z3 NONE pixel
PIXEL_TEX_GEN_Q_FLOOR_SGIX GetTexParameter Z3 NONE pixel
PIXEL_TEX_GEN_Q_ROUND_SGIX GetTexParameter Z3 NONE pixel
New Implementation Dependent State
None