Download lib/python3.9/site-packages/OpenGL/GL/EXT/depth_bounds_test.py from camenduru/slahmr-test: direct link, hf CLI and curl.
- Browser
- Download file 3.12 kB
-
https://huggingface.co/camenduru/slahmr-test/resolve/main/lib/python3.9/site-packages/OpenGL/GL/EXT/depth_bounds_test.py
- Command line
-
hf download hf://camenduru/slahmr-test/lib/python3.9/site-packages/OpenGL/GL/EXT/depth_bounds_test.py
-
curl -L -o depth_bounds_test.py https://huggingface.co/camenduru/slahmr-test/resolve/main/lib/python3.9/site-packages/OpenGL/GL/EXT/depth_bounds_test.py
3.12 kB
| '''OpenGL extension EXT.depth_bounds_test | |
| This module customises the behaviour of the | |
| OpenGL.raw.GL.EXT.depth_bounds_test to provide a more | |
| Python-friendly API | |
| Overview (from the spec) | |
| This extension adds a new per-fragment test that is, logically, | |
| after the scissor test and before the alpha test. The depth bounds | |
| test compares the depth value stored at the location given by the | |
| incoming fragment's (xw,yw) coordinates to a user-defined minimum | |
| and maximum depth value. If the stored depth value is outside the | |
| user-defined range (exclusive), the incoming fragment is discarded. | |
| Unlike the depth test, the depth bounds test has NO dependency on | |
| the fragment's window-space depth value. | |
| This functionality is useful in the context of attenuated stenciled | |
| shadow volume rendering. To motivate the functionality's utility | |
| in this context, we first describe how conventional scissor testing | |
| can be used to optimize shadow volume rendering. | |
| If an attenuated light source's illumination can be bounded to a | |
| rectangle in XY window-space, the conventional scissor test can be | |
| used to discard shadow volume fragments that are guaranteed to be | |
| outside the light source's window-space XY rectangle. The stencil | |
| increments and decrements that would otherwise be generated by these | |
| scissored fragments are inconsequential because the light source's | |
| illumination can pre-determined to be fully attenuated outside the | |
| scissored region. In other words, the scissor test can be used to | |
| discard shadow volume fragments rendered outside the scissor, thereby | |
| improving performance, without affecting the ultimate illumination | |
| of these pixels with respect to the attenuated light source. | |
| This scissoring optimization can be used both when rendering | |
| the stenciled shadow volumes to update stencil (incrementing and | |
| decrementing the stencil buffer) AND when adding the illumination | |
| contribution of attenuated light source's. | |
| In a similar fashion, we can compute the attenuated light source's | |
| window-space Z bounds (zmin,zmax) of consequential illumination. | |
| Unless a depth value (in the depth buffer) at a pixel is within | |
| the range [zmin,zmax], the light source's illumination can be | |
| pre-determined to be inconsequential for the pixel. Said another | |
| way, the pixel being illuminated is either far enough in front of | |
| or behind the attenuated light source so that the light source's | |
| illumination for the pixel is fully attenuated. The depth bounds | |
| test can perform this test. | |
| The official definition of this extension is available here: | |
| http://www.opengl.org/registry/specs/EXT/depth_bounds_test.txt | |
| ''' | |
| from OpenGL import platform, constant, arrays | |
| from OpenGL import extensions, wrapper | |
| import ctypes | |
| from OpenGL.raw.GL import _types, _glgets | |
| from OpenGL.raw.GL.EXT.depth_bounds_test import * | |
| from OpenGL.raw.GL.EXT.depth_bounds_test import _EXTENSION_NAME | |
| def glInitDepthBoundsTestEXT(): | |
| '''Return boolean indicating whether this extension is available''' | |
| from OpenGL import extensions | |
| return extensions.hasGLExtension( _EXTENSION_NAME ) | |
| ### END AUTOGENERATED SECTION |