back  Return to list

GL_HP_occlusion_test
homeprevnext GL_HP_occlusion_test - PRELIMINARY ---------------------------------- XXX - Not complete yet!!!
  
homeprevnext Name
  
    HP_occlusion_test  
  
homeprevnext Name Strings
  
    GL_HP_occlusion_test   
  
homeprevnext Number
  
    137  
  
homeprevnext Overview
  
    This extension defines a mechanism whereby an application can  
    determine the non-visibility of some set of geometry based on  
    whether an encompassing set of geometry is non-visible.  In general  
    this feature does not guarantee that the target geometry is visible  
    when the test fails, but is accurate with regard to non-visibility.  
  
    Occlusion culling allows an application to render some geometry and  
    at the completion of the rendering to determine if any of the  
    geometry could or did modify the depth buffer, ie.  a depth buffer  
    test succeeded.  The idea being that if the application renders a  
    bounding box of some geometry in this mode and the occlusion test  
    failed (ie.  the bounding box was depth culled due to the current  
    contents of the depth buffer) then the geometry enclosed by the  
    bounding box would also be depth culled.  Occlusion culling operates  
    independently of the current rendering state (ie.  when occlusion  
    culling is enabled fragments are generated and the depth and/or  
    color buffer may be updated).  To prevent updating the depth/color  
    buffers the application must disable updates to these buffers.  As a  
    side effect of reading the occlusion result the internal result  
    state is cleared, setting it up for a new bounding box test.  
  
    The expected usage of this feature is :  
  
	- disable updates to color and depth buffer (optional)  
	    glDepthMask(GL_FALSE)  
	    glColorMask(GL_FALSE,GL_FALSE,GL_FALSE,GL_FALSE)  
  
	- enable occlusion test  
	    glEnable(GL_OCCLUSION_TEST_HP)  
  
	- render bounding geometry  
	    gl rendering calls  
  
	- disable occlusion test  
	    glDisable(GL_OCCLUSION_TEST_HP)  
  
	- enable updates to color and depth buffer  
	    glDepthMask(GL_TRUE)  
	    glColorMask(GL_TRUE,GL_TRUE,GL_TRUE,GL_TRUE)  
  
	- read occlusion test result  
	    glGetBooleanv(GL_OCCLUSION_TEST_RESULT_HP, &result)  
  
	- if (result) render internal geometry  
	  else don't render  
  
    For this extension to be useful the assumption are being made :  
  
	- the time to render the geometry under test is much more than  
	    rendering the encompassing geometry, including reading back  
	    the test result  
  
	- the application is modelling data that includes occluding  
	    structures (eg.  walls, hierarchial assemblies, ...)  
  
	- the application is structured in such a way as to utilize  
	    bounding boxes for encompassing geometry  
  
homeprevnext New Procedures and Functions
  
    none  
  
homeprevnext New Tokens
  
    Accepted by the <cap> parameter of Enable, Disable, and IsEnabled,  
    by the <pname> of GetBooleanv, GetIntegerv, GetFloatv, and  
    GetDoublev :  
  
        GL_OCCLUSION_TEST_HP           0x8165  
  
    Accepted by the <pname> of GetBooleanv, GetIntegerv, GetFloatv, and  
    GetDoublev :  
  
        GL_OCCLUSION_TEST_RESULT_HP    0x8166  
  
homeprevnext New State
  
    Boolean result of occlusion test, initial value of FALSE.  The  
    result is set to FALSE as a side effect of reading it (executing a  
    Get call).  
  
Issue  
  
    This extension is superceded by the GL_HP_visibility_test extension.  
  
    Also see NVIDIA's NV_occlusion_query extension.  
    Also see NVIDIA's NV_occlusion_query extension.  
Valid XHTML 1.1! Valid CSS! Last update: November 14, 2006.
Cette page doit être lue avec un navigateur récent respectant le standard XHTML 1.1.