blob: b8f65406351b803a29baa279f27b6d1f10a56f39 [file] [log] [blame]
XXX - Not complete yet!!!
Name
SGIX_vector_ops
Name Strings
GL_SGIX_vector_ops
Version
$Date: 1997/11/24 09:37:13 $ $Revision: 1.1 $
Number
XXX
Dependencies
OpenGL 1.1 is required.
SGIX_fragment_light affects the definition of this extension.
Overview
With the increased use of multi-pass algorithms depending on using
more in-the-pipe calculations, it becomes interesting to provide
additional support for some of the basic vector operations.
This extension adds two new operations, the vector normalization
function, and the vector cross-product operation.
When enabled, vector normalization or cross-product is in lieu
of the normal lighting. In other words, the resulting vector replaces
the lighted fragment color and the X, Y, and Z components comprise
the red, green, and blue values of the fragment, respectively. Alpha
is set to zero.
Issues
* Should these two vector operations be separated into two
independent specifications?
New Procedures and Functions
void VectorOperationSGIX(enum operation);
void GetVectorOperationSGIX(enum operation);
New Tokens
Accepted by the <operation> parameter of VectorOperationSGIX
and GetVectorOperationSGIX,
VECTOR_NORMALIZATION_SGIX 0x????
VECTOR_CROSS_PRODUCT_SGIX 0x????
Accepted by the <cap> parameter of Enable, Disable, and IsEnabled,
VECTOR_OPERATIONS_SGIX 0x????
Additions to the chapter on per fragment lighting
When enabled, the vector operations supercede the usual operation
of the per-fragment lighting. Instead of the lighted fragment color,
the color components produced by the fragment ligher are the three
components of the vector operation specified by VectorOperationSGIX.
The vector normal operation computes a new unit vector in the direction
of the current per-fragment normal vector. This normal vector is
the result of interpolating the per-vertex supplied normal.
The vector cross-product operation computed a new unit vector in
the direction perpendicular to the per-fragment normal and view vectors
using the standard cross-product operation.
Additions to Chapter 3 of the 1.1 Specification (Rasterization)
None
Additions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations
and the Frame Buffer)
None
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)
TBD
Additions to the GLX Specification
TBD
Dependencies on SGIX_fragment_light
If SGIX_fragment_light is not implemented, references to fragment
lighting in this document are invalid and should be ignored.
Errors
GL_INVALID_VALUE is generated if the requested vector operation is not
one of VECTOR_NORMALIZATION_SGIX or VECTOR_CROSS_PRODUCT_SGIX.
New State
Get Value Get Command Type Initial Value Attribute
--------- ----------- ---- ------------- ---------
VECTOR_OPERATIONS_SGIX GetVectorOperationfv ????? ????? lighting
New Implementation Dependent State
None