1XXX - Not complete yet!!! 2 3Name 4 5 SGIX_vector_ops 6 7Name Strings 8 9 GL_SGIX_vector_ops 10 11Version 12 13 $Date: 1997/11/24 09:37:13 $ $Revision: 1.1 $ 14 15Number 16 17 XXX 18 19Dependencies 20 21 OpenGL 1.1 is required. 22 SGIX_fragment_light affects the definition of this extension. 23 24Overview 25 26 With the increased use of multi-pass algorithms depending on using 27 more in-the-pipe calculations, it becomes interesting to provide 28 additional support for some of the basic vector operations. 29 This extension adds two new operations, the vector normalization 30 function, and the vector cross-product operation. 31 When enabled, vector normalization or cross-product is in lieu 32 of the normal lighting. In other words, the resulting vector replaces 33 the lighted fragment color and the X, Y, and Z components comprise 34 the red, green, and blue values of the fragment, respectively. Alpha 35 is set to zero. 36 37Issues 38 39 * Should these two vector operations be separated into two 40 independent specifications? 41 42 43New Procedures and Functions 44 45 void VectorOperationSGIX(enum operation); 46 void GetVectorOperationSGIX(enum operation); 47 48New Tokens 49 50 Accepted by the <operation> parameter of VectorOperationSGIX 51 and GetVectorOperationSGIX, 52 53 VECTOR_NORMALIZATION_SGIX 0x???? 54 VECTOR_CROSS_PRODUCT_SGIX 0x???? 55 56 57 Accepted by the <cap> parameter of Enable, Disable, and IsEnabled, 58 59 VECTOR_OPERATIONS_SGIX 0x???? 60 61 62Additions to the chapter on per fragment lighting 63 64 When enabled, the vector operations supercede the usual operation 65 of the per-fragment lighting. Instead of the lighted fragment color, 66 the color components produced by the fragment ligher are the three 67 components of the vector operation specified by VectorOperationSGIX. 68 69 The vector normal operation computes a new unit vector in the direction 70 of the current per-fragment normal vector. This normal vector is 71 the result of interpolating the per-vertex supplied normal. 72 73 The vector cross-product operation computed a new unit vector in 74 the direction perpendicular to the per-fragment normal and view vectors 75 using the standard cross-product operation. 76 77Additions to Chapter 3 of the 1.1 Specification (Rasterization) 78 79 None 80 81Additions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations 82and the Frame Buffer) 83 84 None 85 86Additions to Chapter 5 of the 1.1 Specification (Special Functions) 87 88 None 89 90Additions to Chapter 6 of the 1.1 Specification (State and State Requests) 91 92 TBD 93 94Additions to the GLX Specification 95 96 TBD 97 98Dependencies on SGIX_fragment_light 99 100 If SGIX_fragment_light is not implemented, references to fragment 101 lighting in this document are invalid and should be ignored. 102 103Errors 104 105 GL_INVALID_VALUE is generated if the requested vector operation is not 106 one of VECTOR_NORMALIZATION_SGIX or VECTOR_CROSS_PRODUCT_SGIX. 107 108New State 109 110 Get Value Get Command Type Initial Value Attribute 111 --------- ----------- ---- ------------- --------- 112 VECTOR_OPERATIONS_SGIX GetVectorOperationfv ????? ????? lighting 113 114New Implementation Dependent State 115 116 None 117