Hi Paul,

On 8/14/07, Paul Martz <[EMAIL PROTECTED]> wrote:
> I agree, with much of the current OSG dedicated to managing a fixed function
> pipeline, starting from a clean slate would be the way to go. I'd hate to
> see the OSG community try to maintain the existing API given its such a poor
> fit for OpenGL 3.

OSG is designed around the concept of OpenGL modes and attributes, but
the coupling is done rather loosely - the fixed function
StateAttribute are all optional already, the new state management in
GL3 would for the most part just replace the current fixed functions,
the general architecture would actually be very similar to what we
have right now.  osg::Geometry itself would just need a different
backend the public interface wouldn't need to be hugely different.

The backend will also probably be able to able to accommodate GL3, and
high level libs like osgViewer would just need to have different
GraphicsWindow implementations written to handle the new means for
setting up graphics contexts.

The scene graph itself could probably cope with support GL3 without so
many radical changes to render it a fundamentally different scene
graph.

One area that would need to see quite a bit of attention would be the
loaders, and perhaps this would be among the most significant chunks
of work, as all the loaders assume the fixed function pipeline exists.
 Could one convert function function objects to shaders and uniforms?
Could one hide the fixed function classes without the old
StateAttributes and provide a mechanism for setting associated
uniforms and shaders?  Almost have the OSG code base is loaders so
this is no small issue.

> As Robert points out, this will be hard for existing OSG (and OpenGL) users.
> But these users are the ones who will ultimately decide when the move takes
> place. OpenGL 2 drivers should be available for a while, but eventually
> there will be an ISV shift towards OpenGL 3, and soon thereafter OpenGL 2
> drivers will disappear. (This will not be unlike the PEX/PHIGS/GL shift to
> OpenGL 1.x in the mid-1990s.)

Reading the presentations I didn't read anything of the original
proposal to provide a backwards compatibility layer for GL2.x on top
of GL3.  Is this proposal now dropped?

Now... if we could only get them to open source the existing OGL2.x
drivers then they could live on for as long as they are needed.

Did the vendors give any hint as the timeline they expect?  Will 2.x
still be supported in 5 years?  I can imagine that a large number of
apps would still not be ported by then.

> My main concern with moving forward with a new clean slate is that we need
> to see ISV support for that BEFORE the OpenGL 2 drivers go away, so that
> there is sufficient time and funding to develop a new OSG that integrates
> with OpenGL 3. There will be little movement in OSG towards OpenGL 3 without
> funding to back that effort.

I believe we can use the existing OSG-2.x series to prototype GL3
support, adding support for NVidia already published extensions is a
first step.  We could also experiment of how to migrate loaders across
to use shaders rather than fixed function pipeline.  This type of work
needn't be a wholesale ground up block of work, rather biting of
little bits as we go along.

For a clean slate scene graph I think that we'd need to encompass more
goals than just support GL3, as the hardware abstraction layer is just
one element of evolving technology.  Multi-core CPU/GPU combinations,
other language support (Java, Python etc), and mobile graphics are all
technologies that we need to embrace to provide an API that really
tackles needs of future graphics applications.

As a note of funding, would Khronous be able to fund an effort to
write a well documented scene graph API ontop of GL3?  Use it as a
foundation of a new OpenGL SDK?

Robert.
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to