1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
'''OpenGL extension NV.stereo_view_rendering
This module customises the behaviour of the
OpenGL.raw.GL.NV.stereo_view_rendering to provide a more
Python-friendly API
Overview (from the spec)
Virtual reality (VR) applications often render a single logical scene
from multiple views corresponding to a pair of eyes. The views (eyes) are
separated by a fixed offset in the X direction.
Traditionally, multiple views are rendered via multiple rendering passes.
This is expensive for the GPU because the objects in the scene must be
transformed, rasterized, shaded, and fragment processed redundantly. This
is expensive for the CPU because the scene graph needs to be visited
multiple times and driver validation happens for each view. Rendering N
passes tends to take N times longer than a single pass.
This extension provides a mechanism to render binocular (stereo) views
from a single stream of OpenGL rendering commands. Vertex, tessellation,
and geometry (VTG) shaders can output two positions for each vertex
corresponding to the two eye views. A built-in "gl_SecondaryPositionNV"
is added to specify the second position. The positions from each view may
be sent to different viewports and/or layers. A built-in
"gl_SecondaryViewportMaskNV[]" is also added to specify the viewport mask
for the second view. A new layout-qualifier "secondary_view_offset" is
added for built-in output "gl_Layer" which allows for the geometry from
each view to be sent to different layers for rendering.
The official definition of this extension is available here:
http://www.opengl.org/registry/specs/NV/stereo_view_rendering.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.NV.stereo_view_rendering import *
from OpenGL.raw.GL.NV.stereo_view_rendering import _EXTENSION_NAME
def glInitStereoViewRenderingNV():
'''Return boolean indicating whether this extension is available'''
from OpenGL import extensions
return extensions.hasGLExtension( _EXTENSION_NAME )
### END AUTOGENERATED SECTION
|