Hi Robert,
The OpenGL 3.0 version does make it easier for us, means we can treat
it more like usual extensions to the core OSG. We'll need to think
about what happens with pure GL 3.0 contexts without backwards
compatibility.
Yes, and we also need to think about the fact that the fixed pipeline is
now deprecated. It's not likely to be actually *removed* that soon as
it's a rather large chunk, so we have some time to think about it. But
we still have to think about how to make the parts of the OSG that map
directly to fixed pipeline state map to shaders instead.
One way I could see this being done is the classic "shader chunk"
strategy. We could have an OSG-wide (or per-camera, or per-view, we need
to think about it) shader manager, which would accumulate
stateAttributes at cull time and construct shaders at the StateSets
containing the right shader chunks to do what the stateAttributes need
to do. This needs to be balanced with the compile cost of multiple
shaders (i.e. not build/compile a completely different shader if only a
small amount of functionality is different from the parent StateSet's
shader) and other aspects need to be considered to get maximum
performance. Another possibility would be to pre-compile a certain set
of standard permutations at load time. Anyways, it's not really
straightforward, but still, it's an option.
OpenGL ES has the concept of profiles, so perhaps we need to mirror
this on the OSG side, with different state, geometry, contexts, buffer
objects all having their own supported profile sets. I have no ideal
how we might go about this yet though...
OpenGL 3 will also have profiles. They mentioned at the BOF that at the
beginning there will only be one, but there may be more later. They say
they'll have as little as possible but as many as absolutely necessary,
which might be an empty promise, but we'll just have to see.
Also, to create an OpenGL 3 compatible context we'll have to use the new
CreateContext extension, as the old context creation will only create up
to the last 2.x that the driver supports. I suspect that's the case for
creating a context that complies to a specific profile too.
One good thing though is that it also adds the possibility to create a
completely offscreen context, so I'm hoping that will be a complete
context so we won't have to fall back to pbuffers when we don't want a
window but want to do some rendering to texture/texture conversion/etc...
I took some notes at the BOF which I'll probably put on the OSG wiki
soon. I expect they'll be useful to others, as they're more concise and
to-the-point than reading the spec... :-)
J-S
--
______________________________________________________
Jean-Sebastien Guay [EMAIL PROTECTED]
http://www.cm-labs.com/
http://whitestar02.webhop.org/
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org