[osg-users] nVidia HW: Lens Matched Shading, Single Pass Stereo - exposed in OpenGL?
Sebastian Messerschmidt
sebastian.messerschmidt at gmx.de
Thu Jun 9 06:34:59 PDT 2016
Hi,
> Hi Christian,
> I have the Single Pass Stereo working with ARB_viewport_array and and
> a shader (attached). The required support for GL_ARB_viewport_array is
> on the osg-submissions list. I have not done any work on the culling
> yet, as the eyes are sufficiently close together to get a decent
> impression of performance. bringing in light render passes would
> probably require a smart adaptation of the cull frustum.
> The nvidia stereo_view_rendering seems to be to limiting for my
> purposes, as I think it requires the display to be aligned with the
> eyes, and we are working with head-tracked systems where the user is
> able to rotate their head.
The big deal about this extension is that the vertex and geometry shader
isn't invoked twice. This might quite save a bit if you are limited at
the those stages. But thank you for the example.
Cheers
Sebastian
>
> Regards, Laurens.
> in the vertex shader do:
> gl_Position = gl_ModelViewMatrix * gl_Vertex;
> instead of
> gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
> For the rest of the shaders I rely on the osg shadergenerator with
> base shaders from osg-data.
> new osg::Shader(osg::Shader::GEOMETRY, "#version 450\n" "#extension
> GL_ARB_gpu_shader5 : enable\n" "layout (triangles, invocations = 2)
> in;" "layout (triangle_strip, max_vertices = 3) out;" "uniform mat4
> transform_block[2];" "in vec4 vbasecolor[];" "in vec2 vtexcoord[];"
> "out vec4 basecolor;" "out vec2 texcoord;" "out int gl_Layer;" "void
> main(void) {" " for (int i = 0; i < gl_in.length(); i++)" " {" "
> basecolor = vec4(1,1,1,1);" " texcoord = vtexcoord[i];" " gl_Position
> = transform_block[gl_InvocationID] * gl_in[i].gl_Position;" "
> gl_ViewportIndex = gl_InvocationID;" " EmitVertex();" " }" "
> EndPrimitive();" "}" );
>
> On Thu, Jun 9, 2016 at 1:24 PM, Sebastian Messerschmidt
> <sebastian.messerschmidt at gmx.de
> <mailto:sebastian.messerschmidt at gmx.de>> wrote:
>
>
> Hi Christian
>
> Hi all,
>
> has anybody looked at these new features of nVidia hardware?
>
> Lens Matched Shading and Single Pass Stereo are using new
> hardware and driver features that allow the GPU to perform
> single pass transform+shading of up to 16 independent view
> matrices.
>
> Isn't the change-set of single pass stereo
> (https://www.opengl.org/registry/specs/NV/stereo_view_rendering.txt)
> shader only?
> So basically we need the NV_viewport_array2 support on the
> osg-side to implement it.
> Btw.: How is the relationship between viewports and bound FBOs for
> instance? Suppose I need to render to different MRTs for each
> viewport? Can anyone point to a good example here?
>
>
> This could accelerate OSG's stereo rendering, provided that
> the features are exposed thorugh documented OpenGL extensions.
>
> Also rendering of cubemaps for reflections and shadows could
> be greatly accelerated (six views in one pass).
>
> That would require some deeper changes in the culling/camera-setup
> I suppose, as multiple frusta have to be taken into account per
> draw-invocation.
>
>
> Christian
>
> Cheers
> Sebstian
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> <mailto:osg-users at lists.openscenegraph.org>
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
>
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20160609/fadc4105/attachment-0003.htm>
More information about the osg-users
mailing list