Back to the OpenGL extension cross reference
GL_IBM_cull_vertex
    IBM_cull_vertex
Name Strings
    GL_IBM_cull_vertex
Version
    IBM Id: cull_vertex.spec,v 1.4 2000/02/11 15:11:46 brokensh Exp 
Number
    199
Dependencies
    EXT_cull_vertex affects the definition of this extension
Overview
    IBM_cull_vertex provides a subset of the vertex culling functionality
    found in EXT_cull_vertex without providing a guarantee that faces will
    be culled because of it.  EXT_cull_vertex is a technically superior
    solution, but the vertex culling aspect of IBM_cull_vertex provides
    generally useful function cheaply (without imposing the mandated
    culling found in EXT_cull_vertex).
Issues
  * Should the application be allowed to specify eye direction explicitly,
    as is the case in EXT_cull_vertex?  Not in this specification;
    addressed by the full EXT_cull_vertex extension.
  * Should a control be provided to reverse the eye direction, which would
    be necessary to cull correctly if DepthRange is specified with near >
    far?  Or if the normals specified were reversed?  FrontFace could be
    used in combination with two sided lighting to produce realistic
    lighting effects if the normals were consistenly reversed.  Neither is
    addressed in the current specification.  Both are addressed by
    EXT_cull_vertex. 
  * Should a control be provided to perform vertex culling with a local eye
    position?  Not in this specification; addressed by EXT_cull_vertex.
  * Should forward compatibility between IBM_cull_vertex and
    EXT_cull_vertex be provided (i.e., applications must change if/when we
    fully implement EXT_cull_vertex)?  Probably not.
    None
    Accepted by the <cap> parameter of Enable, Disable, and IsEnabled, and by
    the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, and
    GetDoublev:
      CULL_VERTEX_IBM                           103050
Additions to Chapter 2 of the GL Specification (OpenGL Operation)
    Before the discussion of Clipping, add a description of vertex culling
    similar to that found in the EXT_cull_vertex extension:
    Vertex Culling
    When vertex culling is enabled, vertices are classified as front or
    back facing according to the sign of the dot product between the normal
    at the vertex and an eye direction vector from the vertex toward the
    eye position.  When (normal dot eye_direction) <= 0 the vertex is
    classified as back facing.  When (normal dot eye_direction) > 0 the
    vertex is classified as front facing.  Vertices are culled when the
    face orientation determined by the dot product is the same as the face
    specified by CullFace.  When all of the vertices of a polygon are
    culled, then the polygon may be culled.  Unlike EXT_cull_vertex, vertex
    culling using IBM_cull_vertex does not necessarily result in polygons
    being culled even if all of the vertices of the polygon are culled.
    The eye direction is determined by transforming the column vector (0,
    0, 1) by the upper leftmost 3x3 matrix taken from the inverse of the
    modelview matrix.  The eye direction is undefined if the modelview
    matrix is singular or nearly singular.  This operation in effect
    projects the z axis in eye coordinates back into object space.  If the
    projection matrix or DepthRange settings cause the z axis in window
    coordinates to be misaligned with the z axis in eye coordinates, this
    extension should not be used.
    Vertex culling is performed independently of face culling.  Polygons on
    the silhouettes of objects may have both front and back facing
    vertices.  Since polygons are culled only if all of their vertices are
    culled and are not necessarily culled by IBM_cull_vertex even in that
    case, face culling may have to be used in addition to vertex culling in
    order to correctly cull silhouette polygons.
Additions to Chapter 3 of the GL Specification (Rasterization)
    None
Additions to Chapter 4 of the GL Specification (Per-Fragment Operations
and the Framebuffer)
    None
Additions to Chapter 5 of the GL Specification (Special Functions)
    None
Additions to Chapter 6 of the GL Specification (State and State Requests)
    None
Additions to the GLX Specification
    None
GLX Protocol
    None.
Errors
    None
New State
    Get Value			  Type Get Command  Value Sec	Attrib
    ----------------------------- ---- -----------  ----- ----	-------
    CULL_VERTEX_IBM               B    IsEnabled    FALSE --    transform/
                                                                enable
New Implementation Dependent State
    None
Implementation Support
   List of OpenGL implementations supporting the GL_IBM_cull_vertex extension
Original File
   Original text file for the GL_IBM_cull_vertex extension
Page generated on Sun Nov 20 18:38:55 2005