15bd8deadSopenharmony_ciXXX - Not complete yet!!! 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ciName 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ci SGIX_vector_ops 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ciName Strings 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ci GL_SGIX_vector_ops 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ciVersion 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ci $Date: 1997/11/24 09:37:13 $ $Revision: 1.1 $ 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ciNumber 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ci XXX 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ciDependencies 205bd8deadSopenharmony_ci 215bd8deadSopenharmony_ci OpenGL 1.1 is required. 225bd8deadSopenharmony_ci SGIX_fragment_light affects the definition of this extension. 235bd8deadSopenharmony_ci 245bd8deadSopenharmony_ciOverview 255bd8deadSopenharmony_ci 265bd8deadSopenharmony_ci With the increased use of multi-pass algorithms depending on using 275bd8deadSopenharmony_ci more in-the-pipe calculations, it becomes interesting to provide 285bd8deadSopenharmony_ci additional support for some of the basic vector operations. 295bd8deadSopenharmony_ci This extension adds two new operations, the vector normalization 305bd8deadSopenharmony_ci function, and the vector cross-product operation. 315bd8deadSopenharmony_ci When enabled, vector normalization or cross-product is in lieu 325bd8deadSopenharmony_ci of the normal lighting. In other words, the resulting vector replaces 335bd8deadSopenharmony_ci the lighted fragment color and the X, Y, and Z components comprise 345bd8deadSopenharmony_ci the red, green, and blue values of the fragment, respectively. Alpha 355bd8deadSopenharmony_ci is set to zero. 365bd8deadSopenharmony_ci 375bd8deadSopenharmony_ciIssues 385bd8deadSopenharmony_ci 395bd8deadSopenharmony_ci * Should these two vector operations be separated into two 405bd8deadSopenharmony_ci independent specifications? 415bd8deadSopenharmony_ci 425bd8deadSopenharmony_ci 435bd8deadSopenharmony_ciNew Procedures and Functions 445bd8deadSopenharmony_ci 455bd8deadSopenharmony_ci void VectorOperationSGIX(enum operation); 465bd8deadSopenharmony_ci void GetVectorOperationSGIX(enum operation); 475bd8deadSopenharmony_ci 485bd8deadSopenharmony_ciNew Tokens 495bd8deadSopenharmony_ci 505bd8deadSopenharmony_ci Accepted by the <operation> parameter of VectorOperationSGIX 515bd8deadSopenharmony_ci and GetVectorOperationSGIX, 525bd8deadSopenharmony_ci 535bd8deadSopenharmony_ci VECTOR_NORMALIZATION_SGIX 0x???? 545bd8deadSopenharmony_ci VECTOR_CROSS_PRODUCT_SGIX 0x???? 555bd8deadSopenharmony_ci 565bd8deadSopenharmony_ci 575bd8deadSopenharmony_ci Accepted by the <cap> parameter of Enable, Disable, and IsEnabled, 585bd8deadSopenharmony_ci 595bd8deadSopenharmony_ci VECTOR_OPERATIONS_SGIX 0x???? 605bd8deadSopenharmony_ci 615bd8deadSopenharmony_ci 625bd8deadSopenharmony_ciAdditions to the chapter on per fragment lighting 635bd8deadSopenharmony_ci 645bd8deadSopenharmony_ci When enabled, the vector operations supercede the usual operation 655bd8deadSopenharmony_ci of the per-fragment lighting. Instead of the lighted fragment color, 665bd8deadSopenharmony_ci the color components produced by the fragment ligher are the three 675bd8deadSopenharmony_ci components of the vector operation specified by VectorOperationSGIX. 685bd8deadSopenharmony_ci 695bd8deadSopenharmony_ci The vector normal operation computes a new unit vector in the direction 705bd8deadSopenharmony_ci of the current per-fragment normal vector. This normal vector is 715bd8deadSopenharmony_ci the result of interpolating the per-vertex supplied normal. 725bd8deadSopenharmony_ci 735bd8deadSopenharmony_ci The vector cross-product operation computed a new unit vector in 745bd8deadSopenharmony_ci the direction perpendicular to the per-fragment normal and view vectors 755bd8deadSopenharmony_ci using the standard cross-product operation. 765bd8deadSopenharmony_ci 775bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.1 Specification (Rasterization) 785bd8deadSopenharmony_ci 795bd8deadSopenharmony_ci None 805bd8deadSopenharmony_ci 815bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations 825bd8deadSopenharmony_ciand the Frame Buffer) 835bd8deadSopenharmony_ci 845bd8deadSopenharmony_ci None 855bd8deadSopenharmony_ci 865bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.1 Specification (Special Functions) 875bd8deadSopenharmony_ci 885bd8deadSopenharmony_ci None 895bd8deadSopenharmony_ci 905bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.1 Specification (State and State Requests) 915bd8deadSopenharmony_ci 925bd8deadSopenharmony_ci TBD 935bd8deadSopenharmony_ci 945bd8deadSopenharmony_ciAdditions to the GLX Specification 955bd8deadSopenharmony_ci 965bd8deadSopenharmony_ci TBD 975bd8deadSopenharmony_ci 985bd8deadSopenharmony_ciDependencies on SGIX_fragment_light 995bd8deadSopenharmony_ci 1005bd8deadSopenharmony_ci If SGIX_fragment_light is not implemented, references to fragment 1015bd8deadSopenharmony_ci lighting in this document are invalid and should be ignored. 1025bd8deadSopenharmony_ci 1035bd8deadSopenharmony_ciErrors 1045bd8deadSopenharmony_ci 1055bd8deadSopenharmony_ci GL_INVALID_VALUE is generated if the requested vector operation is not 1065bd8deadSopenharmony_ci one of VECTOR_NORMALIZATION_SGIX or VECTOR_CROSS_PRODUCT_SGIX. 1075bd8deadSopenharmony_ci 1085bd8deadSopenharmony_ciNew State 1095bd8deadSopenharmony_ci 1105bd8deadSopenharmony_ci Get Value Get Command Type Initial Value Attribute 1115bd8deadSopenharmony_ci --------- ----------- ---- ------------- --------- 1125bd8deadSopenharmony_ci VECTOR_OPERATIONS_SGIX GetVectorOperationfv ????? ????? lighting 1135bd8deadSopenharmony_ci 1145bd8deadSopenharmony_ciNew Implementation Dependent State 1155bd8deadSopenharmony_ci 1165bd8deadSopenharmony_ci None 117