| XXX - Not complete yet!!! |
| |
| Name |
| |
| SGIS_clip_band_hint |
| |
| Name Strings |
| |
| GL_SGIS_clip_band_hint |
| |
| Version |
| |
| $Date: 1998/08/07 02:43:19 $ $Revision: 1.1 $ |
| |
| Number |
| |
| XXX |
| |
| Dependencies |
| |
| None |
| |
| Overview |
| |
| For graphics systems that decouple geometry processing from the graphics |
| hardware to the host system CPU, it is often beneficial to allow the |
| host processing code not to have to perform clip checking if geometric |
| data is known not to require clipping. Since many applications already |
| perform some amount of coarse-grained view volume clipping, this |
| information can be reused efficiently to turn clip-checking on or off. |
| In addition, certain graphics subsystems are capable of performing fast |
| 2D viewport or, in some cases, 3D volume "scissoring" operations within |
| some coordinate range much faster that the host CPU could re-tesselate |
| clipped primitives. |
| |
| This extension introduces the notion of an extended rasterizable view |
| volume that is an expansion of the clip-space view volume. This volume |
| is the space within which a particular graphics system is much more |
| efficient at rejecting fragments that lie outside the view volume than |
| it is at performing strict view volume clipping. This extended volume |
| is characterized by queriable implementation dependent expansion factors |
| to the normal view volume. Clip-checking can be turned on or off |
| through the glHint mechanism. |
| |
| Issues |
| |
| * This extension is essentially a superset of the |
| clip_volume_hint extension. Do we want to have this extension just |
| introduce the notion of clip band factors instead and use the |
| clip_volume_hint extension for the hint? |
| |
| * It is possible that for certain implementation the X, Y and Z factors |
| are dependent the size of the viewport and are thus not necessarily |
| constant throughout the execution of an application. Is there |
| a better way of describing this and suggesting when to query these |
| factors? |
| |
| * Better name? Should it have a different branding that SGIS? |
| |
| * No mention has been made in the description on the effect user clip |
| planes have on the whether the clip-checking hint is honored or not. |
| Clip-checking should probably always be performed for user defined |
| clip planes independent of the state of the hint. |
| |
| |
| New Procedures and Functions |
| |
| None |
| |
| New Tokens |
| |
| Accepted by the <target> parameter of Hint and the <pname> |
| parameter of GetBooleanv, GetDoublev, GetFloatv and GetIntegerv: |
| |
| CLIP_CHECK_HINT_SGIS XXXXX |
| |
| Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, |
| GetFloatv, and GetDoublev: |
| |
| CLIP_BAND_FACTOR_X_SGIS XXXXX |
| CLIP_BAND_FACTOR_Y_SGIS XXXXX |
| CLIP_BAND_FACTOR_Z_SGIS XXXXX |
| |
| Additions to Chapter 2 of the 1.1 Specification (OpenGL Operation) |
| |
| Before the last paragraph of section 2.11 (Clipping), the following text |
| is added: (Should it go in the section 5.6 (Hints) instead?) |
| |
| If it is known that primitives lie within the view volume, |
| the clip checking operation may be disabled through the use of the |
| CLIP_CHECK_HINT_SGIS hint. In addition, clip-checking may be disabled |
| for graphics subsystems that are able to rasterize correctly primitives |
| that extend past the view volume but are still within some rasterizable |
| volume. This extended clip volume is defined in clip coordinates by, |
| |
| -(w_c * bf_x) <= x_c <= (w_c * bf_x) |
| -(w_c * bf_y) <= y_c <= (w_c * bf_y) |
| -(w_c * bf_z) <= z_c <= (w_c * bf_z) |
| |
| where bf_x, bf_y and bf_z are implementation dependent values (greater |
| than or equal to 1.0) and can be queried by calling glGet with a |
| <value> of CLIP_BAND_FACTOR_X_SGIS, CLIP_BAND_FACTOR_Y_SGIS and |
| CLIP_BAND_FACTOR_X_SGIS respectively. Clip-checking is disabled when |
| the <hint> parameter to glHint is FASTEST, it is enabled for all other |
| values. |
| |
| Since implementations may choose to base the clip band factors on a |
| function of the viewport size, it is recommended that these factors be |
| queried after the viewport which will be used for rendering has been |
| set. |
| |
| Results of rasterization for geometric primitives that extend past the |
| rasterizable volume when clip checking has been disabled are |
| undefined. Finally, the state of the current raster position is not |
| affected by the value of clip_band_hint and is always clipped against |
| the actual clip volume. |
| |
| 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) |
| |
| To the list of hints in section 5.6 (Hints) add: |
| |
| CLIP_CHECK_HINT, indicating whether to turn clip-checking on or off. |
| |
| Additions to Chapter 6 of the 1.1 Specification (State and State Requests) |
| |
| None |
| |
| Additions to the GLX Specification |
| |
| XXX - Not complete yet!!! |
| |
| GLX Protocol |
| |
| XXX - Not complete yet!!! |
| |
| Errors |
| |
| |
| New State |
| |
| Initial |
| Get Value Get Command Type Value Attrib |
| --------- ----------- ---- ------- ------ |
| |
| CLIP_CHECK_HINT_SGIS GetIntegerv Z3 DONT_CARE Hint |
| |
| |
| New Implementation Dependent State |
| |
| Minimum |
| Get Value Get Command Type Value |
| --------- ----------- ---- ------- |
| |
| CLIP_BAND_FACTOR_X_SGIS GetFloatv R 1.0 |
| CLIP_BAND_FACTOR_Y_SGIS GetFloatv R 1.0 |
| CLIP_BAND_FACTOR_Z_SGIS GetFloatv R 1.0 |