1XXX - Not complete yet!!! 2 3Name 4 5 SGIS_clip_band_hint 6 7Name Strings 8 9 GL_SGIS_clip_band_hint 10 11Version 12 13 $Date: 1998/08/07 02:43:19 $ $Revision: 1.1 $ 14 15Number 16 17 XXX 18 19Dependencies 20 21 None 22 23Overview 24 25 For graphics systems that decouple geometry processing from the graphics 26 hardware to the host system CPU, it is often beneficial to allow the 27 host processing code not to have to perform clip checking if geometric 28 data is known not to require clipping. Since many applications already 29 perform some amount of coarse-grained view volume clipping, this 30 information can be reused efficiently to turn clip-checking on or off. 31 In addition, certain graphics subsystems are capable of performing fast 32 2D viewport or, in some cases, 3D volume "scissoring" operations within 33 some coordinate range much faster that the host CPU could re-tesselate 34 clipped primitives. 35 36 This extension introduces the notion of an extended rasterizable view 37 volume that is an expansion of the clip-space view volume. This volume 38 is the space within which a particular graphics system is much more 39 efficient at rejecting fragments that lie outside the view volume than 40 it is at performing strict view volume clipping. This extended volume 41 is characterized by queriable implementation dependent expansion factors 42 to the normal view volume. Clip-checking can be turned on or off 43 through the glHint mechanism. 44 45Issues 46 47 * This extension is essentially a superset of the 48 clip_volume_hint extension. Do we want to have this extension just 49 introduce the notion of clip band factors instead and use the 50 clip_volume_hint extension for the hint? 51 52 * It is possible that for certain implementation the X, Y and Z factors 53 are dependent the size of the viewport and are thus not necessarily 54 constant throughout the execution of an application. Is there 55 a better way of describing this and suggesting when to query these 56 factors? 57 58 * Better name? Should it have a different branding that SGIS? 59 60 * No mention has been made in the description on the effect user clip 61 planes have on the whether the clip-checking hint is honored or not. 62 Clip-checking should probably always be performed for user defined 63 clip planes independent of the state of the hint. 64 65 66New Procedures and Functions 67 68 None 69 70New Tokens 71 72 Accepted by the <target> parameter of Hint and the <pname> 73 parameter of GetBooleanv, GetDoublev, GetFloatv and GetIntegerv: 74 75 CLIP_CHECK_HINT_SGIS XXXXX 76 77 Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, 78 GetFloatv, and GetDoublev: 79 80 CLIP_BAND_FACTOR_X_SGIS XXXXX 81 CLIP_BAND_FACTOR_Y_SGIS XXXXX 82 CLIP_BAND_FACTOR_Z_SGIS XXXXX 83 84Additions to Chapter 2 of the 1.1 Specification (OpenGL Operation) 85 86 Before the last paragraph of section 2.11 (Clipping), the following text 87 is added: (Should it go in the section 5.6 (Hints) instead?) 88 89 If it is known that primitives lie within the view volume, 90 the clip checking operation may be disabled through the use of the 91 CLIP_CHECK_HINT_SGIS hint. In addition, clip-checking may be disabled 92 for graphics subsystems that are able to rasterize correctly primitives 93 that extend past the view volume but are still within some rasterizable 94 volume. This extended clip volume is defined in clip coordinates by, 95 96 -(w_c * bf_x) <= x_c <= (w_c * bf_x) 97 -(w_c * bf_y) <= y_c <= (w_c * bf_y) 98 -(w_c * bf_z) <= z_c <= (w_c * bf_z) 99 100 where bf_x, bf_y and bf_z are implementation dependent values (greater 101 than or equal to 1.0) and can be queried by calling glGet with a 102 <value> of CLIP_BAND_FACTOR_X_SGIS, CLIP_BAND_FACTOR_Y_SGIS and 103 CLIP_BAND_FACTOR_X_SGIS respectively. Clip-checking is disabled when 104 the <hint> parameter to glHint is FASTEST, it is enabled for all other 105 values. 106 107 Since implementations may choose to base the clip band factors on a 108 function of the viewport size, it is recommended that these factors be 109 queried after the viewport which will be used for rendering has been 110 set. 111 112 Results of rasterization for geometric primitives that extend past the 113 rasterizable volume when clip checking has been disabled are 114 undefined. Finally, the state of the current raster position is not 115 affected by the value of clip_band_hint and is always clipped against 116 the actual clip volume. 117 118Additions to Chapter 3 of the 1.1 Specification (Rasterization) 119 120 None 121 122Additions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations 123and the Frame Buffer) 124 125 None 126 127Additions to Chapter 5 of the 1.1 Specification (Special Functions) 128 129 To the list of hints in section 5.6 (Hints) add: 130 131 CLIP_CHECK_HINT, indicating whether to turn clip-checking on or off. 132 133Additions to Chapter 6 of the 1.1 Specification (State and State Requests) 134 135 None 136 137Additions to the GLX Specification 138 139 XXX - Not complete yet!!! 140 141GLX Protocol 142 143 XXX - Not complete yet!!! 144 145Errors 146 147 148New State 149 150 Initial 151 Get Value Get Command Type Value Attrib 152 --------- ----------- ---- ------- ------ 153 154 CLIP_CHECK_HINT_SGIS GetIntegerv Z3 DONT_CARE Hint 155 156 157New Implementation Dependent State 158 159 Minimum 160 Get Value Get Command Type Value 161 --------- ----------- ---- ------- 162 163 CLIP_BAND_FACTOR_X_SGIS GetFloatv R 1.0 164 CLIP_BAND_FACTOR_Y_SGIS GetFloatv R 1.0 165 CLIP_BAND_FACTOR_Z_SGIS GetFloatv R 1.0 166