I guess there's really two different philosophical directions that OSG can
take in the OpenGL3.x timeframe. Maybe there's more than two, but the two I
can think of are as follows:

1) Backwards compatibility. Continue to support the existing OSG API to
enable apps to transparently port to OpenGL 3.x. OSG emulates the fixed
function pipe by creating Uniforms for state attributes and modes and
supplying default shaders that use the Uniforms to reproduce the old OpenGL
2.x functionality.

Note that option 1 doesn't preclude users from accessing the 3.x interface
through their own uniforms and shaders. However, it retains the "conflict"
that OpenGL 3.x resolves, namely, an API that appears to guarantee certain
functionality, which breaks when the wrong shader is loaded.

2) Break with compatibility. Remove from the OSG API all state attributes or
other OSG functionality that relies on the fixed function pipe. OSG becomes
a spatial organizer and mechanism for loading user-defined uniforms and
textures into user-defined shaders.

Seems like both have pros and cons, which I don't have the time to enumerate
this morning. Personally, I've been leaning towards option 2, which seems
cleaner and more in spirit with OpenGL 3.x; the major downside, of course,
is the immense porting effort inflicted on app developers who decide they
can't stay on OSG/OpenGL 2.x. To which I would say a) that's their choice,
as OSG/OpenGL 2.x will be available for years to come, and b) API ports have
been done successfully in the past: Starbase PHIGS, PEX, etc., no one misses
them.

Paul Martz
Skew Matrix Software LLC
http://www.skew-matrix.com
+1 303 859 9466

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

Reply via email to