15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci SGIX_impact_pixel_texture 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_SGIX_impact_pixel_texture 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciVersion 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci $Date: 1997/03/27 18:08:54 $ $Revision: 1.2 $ 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciNumber 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci 126 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ciDependencies 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ci GL_SGIX_pixel_texture 205bd8deadSopenharmony_ci 215bd8deadSopenharmony_ciOverview 225bd8deadSopenharmony_ci 235bd8deadSopenharmony_ci This extension allows the Impact Graphics system to perform pixel texture 245bd8deadSopenharmony_ci operations with 4D textures, and accomplish the fourth interpolation with 255bd8deadSopenharmony_ci a two-pass operation, using the frame-buffer blend. This involves two 265bd8deadSopenharmony_ci new filter functions for the "q" dimension only, ceiling and floor, in 275bd8deadSopenharmony_ci addition to the nearest function, the default on Impact Graphics. Also, 285bd8deadSopenharmony_ci there is an "alpha-shifting" function which prevents loss of precision in 295bd8deadSopenharmony_ci the alpha value used in the frame-buffer blend. 305bd8deadSopenharmony_ci 315bd8deadSopenharmony_ciIssues 325bd8deadSopenharmony_ci 335bd8deadSopenharmony_ci * Will this extension be needed/utilized by other platforms? 345bd8deadSopenharmony_ci 355bd8deadSopenharmony_ciNew Procedures and Functions 365bd8deadSopenharmony_ci 375bd8deadSopenharmony_ci None 385bd8deadSopenharmony_ci 395bd8deadSopenharmony_ciNew Tokens 405bd8deadSopenharmony_ci 415bd8deadSopenharmony_ci Accepted by the <mode> parameter of PixelTexGenSGIX: 425bd8deadSopenharmony_ci 435bd8deadSopenharmony_ci PIXEL_TEX_GEN_Q_CEILING_SGIX 445bd8deadSopenharmony_ci PIXEL_TEX_GEN_Q_FLOOR_SGIX 455bd8deadSopenharmony_ci PIXEL_TEX_GEN_Q_ROUND_SGIX 465bd8deadSopenharmony_ci PIXEL_TEX_GEN_ALPHA_LS_SGIX 475bd8deadSopenharmony_ci PIXEL_TEX_GEN_ALPHA_MS_SGIX 485bd8deadSopenharmony_ci 495bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.1 Specification (Rasterization) 505bd8deadSopenharmony_ci 515bd8deadSopenharmony_ci This extension, similar to the pixel_texture.spec modifies the 525bd8deadSopenharmony_ci "Conversion to Fragments" subsection of section 3.6.3 (Rasterization 535bd8deadSopenharmony_ci of Pixel Rectangles) of the GL Specification. Immediately following 545bd8deadSopenharmony_ci the text added by the pixel_texture.spec, insert the following: 555bd8deadSopenharmony_ci 565bd8deadSopenharmony_ci If the PixelTexGenSGIX mode is RGBA, the Impact graphics system cannot 575bd8deadSopenharmony_ci perform the "q" interpolation, so the correct result can be obtained 585bd8deadSopenharmony_ci by a two-pass operation using the frame-buffer blend to interpolate 595bd8deadSopenharmony_ci the two passes. The two passes use ceiling and floor functions, 605bd8deadSopenharmony_ci specified by calling TexParameter with the minfilter and maxfilter 615bd8deadSopenharmony_ci set to PIXEL_TEX_GEN_Q_CEILING_SGIX and PIXEL_TEX_GEN_Q_FLOOR_SGIX. 625bd8deadSopenharmony_ci These functions can be disabled by calling TexParameter with 635bd8deadSopenharmony_ci PIXEL_TEX_GEN_Q_ROUND_SGIX, the default. To produce the correct 645bd8deadSopenharmony_ci fragment alpha for interpolation, the alpha-replace mode (see above) 655bd8deadSopenharmony_ci is used to replace the texture alpha by the pixel group's alpha 665bd8deadSopenharmony_ci component. This alpha needs to be shifted (scaled) by a value based 675bd8deadSopenharmony_ci on the texture "q" size; this can be done with the texture color table. 685bd8deadSopenharmony_ci For large values an additional shift is possible by calling 695bd8deadSopenharmony_ci PixelTexGenSGIX with PIXEL_TEX_GEN_ALPHA_LS_SGIX. This will send the 705bd8deadSopenharmony_ci least significant 8 bits of a 12-bit alpha to the texture color table. 715bd8deadSopenharmony_ci The default is to send the most significant 8 bits by calling 725bd8deadSopenharmony_ci PixelTexGenSGIX with PIXEL_TEX_GEN_ALPHA_MS_SGIX. 735bd8deadSopenharmony_ci 745bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.1 Specification (Special Functions) 755bd8deadSopenharmony_ci 765bd8deadSopenharmony_ci None 775bd8deadSopenharmony_ci 785bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.1 Specification (State and State Requests) 795bd8deadSopenharmony_ci 805bd8deadSopenharmony_ci None 815bd8deadSopenharmony_ci 825bd8deadSopenharmony_ciAdditions to the GLX Specification 835bd8deadSopenharmony_ci 845bd8deadSopenharmony_ci None 855bd8deadSopenharmony_ci 865bd8deadSopenharmony_ciErrors 875bd8deadSopenharmony_ci 885bd8deadSopenharmony_ci None 895bd8deadSopenharmony_ci 905bd8deadSopenharmony_ciNew State 915bd8deadSopenharmony_ci 925bd8deadSopenharmony_ci Get Value Get Command Type Initial Value Attrib 935bd8deadSopenharmony_ci --------- ----------- ---- ------------- ------ 945bd8deadSopenharmony_ci PIXEL_TEX_GEN_Q_CEILING_SGIX GetTexParameter Z3 NONE pixel 955bd8deadSopenharmony_ci PIXEL_TEX_GEN_Q_FLOOR_SGIX GetTexParameter Z3 NONE pixel 965bd8deadSopenharmony_ci PIXEL_TEX_GEN_Q_ROUND_SGIX GetTexParameter Z3 NONE pixel 975bd8deadSopenharmony_ci 985bd8deadSopenharmony_ciNew Implementation Dependent State 995bd8deadSopenharmony_ci 1005bd8deadSopenharmony_ci None 101