| XXX needs more work. |
| |
| Name |
| |
| SGIX_pixel_texture_lod |
| |
| Name Strings |
| |
| GL_SGIX_pixel_texture_lod |
| |
| Version |
| |
| $Date: 1998/07/22 18:07:16 $ $Revision: 1.9 $ |
| |
| Number |
| |
| 128 |
| |
| Dependencies |
| |
| GL_SGIS_pixel_texture |
| can be implemented in parallel with pixel_texture_bits |
| |
| Overview |
| |
| The pixel_texture extension provides a way to derive the |
| texture coordinates from RGBA pixel groups. This extension |
| introduces a way to derive the lod (lambda) from the |
| pixel groups as well. |
| |
| Issues |
| |
| * We don't operate in "bits" mode here. Extended Range |
| and Precision (erp) values are just erp values |
| and old fashioned [0,1] values are interpeted as [0,1] values; |
| this makes lambda uninteresting except for the erp case. |
| should we bother to define lambda in a way that is interesting |
| for non extended range and precision? |
| |
| * Is it possible to compute lambda in a pixel field in a way that |
| makes this extension useful? |
| |
| Seems like you can always do the shift and subtract trick and then |
| use blend function and lookup tables to compute the lod in a reasonably |
| efficient manner. |
| |
| * Do we need to implicitly scale the lambda by the number of lods? |
| |
| * Need to make sure this extension isn't too had to implement in |
| the hardware (bali). |
| |
| * This extension is intended to be used with the color components |
| of the fragments derived from the current raster position. Can |
| we leave that part of it orthogonal and let the application |
| set that explicitly using PIXEL_FRAGMENT_{RGB,ALPHA}_SOURCE_SGIX? |
| |
| New Procedures and Functions |
| |
| None |
| |
| New Tokens |
| |
| Accepted by the <pname> parameter of PixelTexGenParameterSGIX: |
| |
| PIXEL_TEX_GEN_LAMBDA_SOURCE_SGIX |
| |
| Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation) |
| |
| None |
| |
| Additions to Chapter 3 of the 1.0 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 PIXEL_TEX_GEN_SGIX is enabled and the PixelTexGenSGIX |
| pname PIXEL_TEX_GEN_LAMBDA_SOURCE_SGIX is set to ALPHA, |
| the mapping from r,g,b,a to s,t,r,q is altered. |
| |
| The alpha color component value becomes the lambda value, the log-base-2 |
| of the ratio of the projected texel_area and pixel area. The boundary |
| of minification to magnification occurs at lambda = 0, with values |
| less than 0 corresponding to minification and values greater than |
| 0 corresponding to magnification. The alpha color component value |
| becomes the texture coordinate value. The Q texture coordinate |
| is set to 1. |
| |
| If PIXEL_TEX_GEN_SGIX is enabled and the PixelTexGenSGIX |
| pname PIXEL_TEX_GEN_LAMBDA_SOURCE_SGIX is set to ZERO, |
| lambda is set to zero. |
| |
| Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations |
| and the Frame Buffer) |
| |
| None |
| |
| Additions to Chapter 5 of the 1.0 Specification (Special Functions) |
| |
| None |
| |
| Additions to Chapter 6 of the 1.0 Specification (State and State Requests) |
| |
| None |
| |
| Additions to the GLX Specification |
| |
| XXX |
| |
| Errors |
| |
| None |
| |
| New State |
| |
| The following is added to Table 6.16. Pixels. |
| |
| Get Value Get Command Type Initial Value Attrib |
| --------- ----------- ---- ------------- ------ |
| PIXEL_TEX_GEN_LAMBDA_SOURCE_SGIX GetPixelTexGenParameterivSGIX Z2 ZERO pixel |
| |
| New Implementation Dependent State |
| |
| None |