blob: 2d1a90bcf4185a824e29a10d72ea7c445a50373a [file] [log] [blame]
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