15bd8deadSopenharmony_ciXXX - Not complete yet!!! 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ciName 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ci SGIS_clip_band_hint 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ciName Strings 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ci GL_SGIS_clip_band_hint 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ciVersion 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ci $Date: 1998/08/07 02:43:19 $ $Revision: 1.1 $ 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ciNumber 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ci XXX 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ciDependencies 205bd8deadSopenharmony_ci 215bd8deadSopenharmony_ci None 225bd8deadSopenharmony_ci 235bd8deadSopenharmony_ciOverview 245bd8deadSopenharmony_ci 255bd8deadSopenharmony_ci For graphics systems that decouple geometry processing from the graphics 265bd8deadSopenharmony_ci hardware to the host system CPU, it is often beneficial to allow the 275bd8deadSopenharmony_ci host processing code not to have to perform clip checking if geometric 285bd8deadSopenharmony_ci data is known not to require clipping. Since many applications already 295bd8deadSopenharmony_ci perform some amount of coarse-grained view volume clipping, this 305bd8deadSopenharmony_ci information can be reused efficiently to turn clip-checking on or off. 315bd8deadSopenharmony_ci In addition, certain graphics subsystems are capable of performing fast 325bd8deadSopenharmony_ci 2D viewport or, in some cases, 3D volume "scissoring" operations within 335bd8deadSopenharmony_ci some coordinate range much faster that the host CPU could re-tesselate 345bd8deadSopenharmony_ci clipped primitives. 355bd8deadSopenharmony_ci 365bd8deadSopenharmony_ci This extension introduces the notion of an extended rasterizable view 375bd8deadSopenharmony_ci volume that is an expansion of the clip-space view volume. This volume 385bd8deadSopenharmony_ci is the space within which a particular graphics system is much more 395bd8deadSopenharmony_ci efficient at rejecting fragments that lie outside the view volume than 405bd8deadSopenharmony_ci it is at performing strict view volume clipping. This extended volume 415bd8deadSopenharmony_ci is characterized by queriable implementation dependent expansion factors 425bd8deadSopenharmony_ci to the normal view volume. Clip-checking can be turned on or off 435bd8deadSopenharmony_ci through the glHint mechanism. 445bd8deadSopenharmony_ci 455bd8deadSopenharmony_ciIssues 465bd8deadSopenharmony_ci 475bd8deadSopenharmony_ci * This extension is essentially a superset of the 485bd8deadSopenharmony_ci clip_volume_hint extension. Do we want to have this extension just 495bd8deadSopenharmony_ci introduce the notion of clip band factors instead and use the 505bd8deadSopenharmony_ci clip_volume_hint extension for the hint? 515bd8deadSopenharmony_ci 525bd8deadSopenharmony_ci * It is possible that for certain implementation the X, Y and Z factors 535bd8deadSopenharmony_ci are dependent the size of the viewport and are thus not necessarily 545bd8deadSopenharmony_ci constant throughout the execution of an application. Is there 555bd8deadSopenharmony_ci a better way of describing this and suggesting when to query these 565bd8deadSopenharmony_ci factors? 575bd8deadSopenharmony_ci 585bd8deadSopenharmony_ci * Better name? Should it have a different branding that SGIS? 595bd8deadSopenharmony_ci 605bd8deadSopenharmony_ci * No mention has been made in the description on the effect user clip 615bd8deadSopenharmony_ci planes have on the whether the clip-checking hint is honored or not. 625bd8deadSopenharmony_ci Clip-checking should probably always be performed for user defined 635bd8deadSopenharmony_ci clip planes independent of the state of the hint. 645bd8deadSopenharmony_ci 655bd8deadSopenharmony_ci 665bd8deadSopenharmony_ciNew Procedures and Functions 675bd8deadSopenharmony_ci 685bd8deadSopenharmony_ci None 695bd8deadSopenharmony_ci 705bd8deadSopenharmony_ciNew Tokens 715bd8deadSopenharmony_ci 725bd8deadSopenharmony_ci Accepted by the <target> parameter of Hint and the <pname> 735bd8deadSopenharmony_ci parameter of GetBooleanv, GetDoublev, GetFloatv and GetIntegerv: 745bd8deadSopenharmony_ci 755bd8deadSopenharmony_ci CLIP_CHECK_HINT_SGIS XXXXX 765bd8deadSopenharmony_ci 775bd8deadSopenharmony_ci Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, 785bd8deadSopenharmony_ci GetFloatv, and GetDoublev: 795bd8deadSopenharmony_ci 805bd8deadSopenharmony_ci CLIP_BAND_FACTOR_X_SGIS XXXXX 815bd8deadSopenharmony_ci CLIP_BAND_FACTOR_Y_SGIS XXXXX 825bd8deadSopenharmony_ci CLIP_BAND_FACTOR_Z_SGIS XXXXX 835bd8deadSopenharmony_ci 845bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.1 Specification (OpenGL Operation) 855bd8deadSopenharmony_ci 865bd8deadSopenharmony_ci Before the last paragraph of section 2.11 (Clipping), the following text 875bd8deadSopenharmony_ci is added: (Should it go in the section 5.6 (Hints) instead?) 885bd8deadSopenharmony_ci 895bd8deadSopenharmony_ci If it is known that primitives lie within the view volume, 905bd8deadSopenharmony_ci the clip checking operation may be disabled through the use of the 915bd8deadSopenharmony_ci CLIP_CHECK_HINT_SGIS hint. In addition, clip-checking may be disabled 925bd8deadSopenharmony_ci for graphics subsystems that are able to rasterize correctly primitives 935bd8deadSopenharmony_ci that extend past the view volume but are still within some rasterizable 945bd8deadSopenharmony_ci volume. This extended clip volume is defined in clip coordinates by, 955bd8deadSopenharmony_ci 965bd8deadSopenharmony_ci -(w_c * bf_x) <= x_c <= (w_c * bf_x) 975bd8deadSopenharmony_ci -(w_c * bf_y) <= y_c <= (w_c * bf_y) 985bd8deadSopenharmony_ci -(w_c * bf_z) <= z_c <= (w_c * bf_z) 995bd8deadSopenharmony_ci 1005bd8deadSopenharmony_ci where bf_x, bf_y and bf_z are implementation dependent values (greater 1015bd8deadSopenharmony_ci than or equal to 1.0) and can be queried by calling glGet with a 1025bd8deadSopenharmony_ci <value> of CLIP_BAND_FACTOR_X_SGIS, CLIP_BAND_FACTOR_Y_SGIS and 1035bd8deadSopenharmony_ci CLIP_BAND_FACTOR_X_SGIS respectively. Clip-checking is disabled when 1045bd8deadSopenharmony_ci the <hint> parameter to glHint is FASTEST, it is enabled for all other 1055bd8deadSopenharmony_ci values. 1065bd8deadSopenharmony_ci 1075bd8deadSopenharmony_ci Since implementations may choose to base the clip band factors on a 1085bd8deadSopenharmony_ci function of the viewport size, it is recommended that these factors be 1095bd8deadSopenharmony_ci queried after the viewport which will be used for rendering has been 1105bd8deadSopenharmony_ci set. 1115bd8deadSopenharmony_ci 1125bd8deadSopenharmony_ci Results of rasterization for geometric primitives that extend past the 1135bd8deadSopenharmony_ci rasterizable volume when clip checking has been disabled are 1145bd8deadSopenharmony_ci undefined. Finally, the state of the current raster position is not 1155bd8deadSopenharmony_ci affected by the value of clip_band_hint and is always clipped against 1165bd8deadSopenharmony_ci the actual clip volume. 1175bd8deadSopenharmony_ci 1185bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.1 Specification (Rasterization) 1195bd8deadSopenharmony_ci 1205bd8deadSopenharmony_ci None 1215bd8deadSopenharmony_ci 1225bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations 1235bd8deadSopenharmony_ciand the Frame Buffer) 1245bd8deadSopenharmony_ci 1255bd8deadSopenharmony_ci None 1265bd8deadSopenharmony_ci 1275bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.1 Specification (Special Functions) 1285bd8deadSopenharmony_ci 1295bd8deadSopenharmony_ci To the list of hints in section 5.6 (Hints) add: 1305bd8deadSopenharmony_ci 1315bd8deadSopenharmony_ci CLIP_CHECK_HINT, indicating whether to turn clip-checking on or off. 1325bd8deadSopenharmony_ci 1335bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.1 Specification (State and State Requests) 1345bd8deadSopenharmony_ci 1355bd8deadSopenharmony_ci None 1365bd8deadSopenharmony_ci 1375bd8deadSopenharmony_ciAdditions to the GLX Specification 1385bd8deadSopenharmony_ci 1395bd8deadSopenharmony_ci XXX - Not complete yet!!! 1405bd8deadSopenharmony_ci 1415bd8deadSopenharmony_ciGLX Protocol 1425bd8deadSopenharmony_ci 1435bd8deadSopenharmony_ci XXX - Not complete yet!!! 1445bd8deadSopenharmony_ci 1455bd8deadSopenharmony_ciErrors 1465bd8deadSopenharmony_ci 1475bd8deadSopenharmony_ci 1485bd8deadSopenharmony_ciNew State 1495bd8deadSopenharmony_ci 1505bd8deadSopenharmony_ci Initial 1515bd8deadSopenharmony_ci Get Value Get Command Type Value Attrib 1525bd8deadSopenharmony_ci --------- ----------- ---- ------- ------ 1535bd8deadSopenharmony_ci 1545bd8deadSopenharmony_ci CLIP_CHECK_HINT_SGIS GetIntegerv Z3 DONT_CARE Hint 1555bd8deadSopenharmony_ci 1565bd8deadSopenharmony_ci 1575bd8deadSopenharmony_ciNew Implementation Dependent State 1585bd8deadSopenharmony_ci 1595bd8deadSopenharmony_ci Minimum 1605bd8deadSopenharmony_ci Get Value Get Command Type Value 1615bd8deadSopenharmony_ci --------- ----------- ---- ------- 1625bd8deadSopenharmony_ci 1635bd8deadSopenharmony_ci CLIP_BAND_FACTOR_X_SGIS GetFloatv R 1.0 1645bd8deadSopenharmony_ci CLIP_BAND_FACTOR_Y_SGIS GetFloatv R 1.0 1655bd8deadSopenharmony_ci CLIP_BAND_FACTOR_Z_SGIS GetFloatv R 1.0 166