On Sat, 2007-12-08 at 14:07 +0000, Robert Osfield wrote:
> Hi All,
> 
> After a two month break I'm now doing a purge of the submissions
> backlog.  I doubt I'll get all the way through before Monday, but on
> Monday I'll tag the first dev release since 2.2 stable was made.  This
> dev release will be 2.3.0 and be the first concrete step towards the
> final 2.4.  This leads me on to asking the question - what features
> should we aim to integrate with 2.4?
> 
> My own short list for contenders for integration are:
> 
>   osgOQ - Occlusion Querry support
>   osgCal - Cal3D integration

I noticed there was a lot of Cal3D discussion going on here so I'd
figure I'd chime in and say a few things.

I have write access to Cal3D SVN I obtained a year or so ago when Palle
Raabjerg and myself rewrote the Cal3D Blender exporter, which we built
by starting from the version in the Soya project; I've also fixed a few
small bugs here and there in Cal3D proper. I'm pretty familiar with
Cal3D in general, and with the various Cal3D OSG plugins that exist. As
a matter of fact, I'm the one who made the Cal3D videos on the website,
and I used OSG to do it. :)

http://home.gna.org/cal3d/

For a bit of info (and some personal opinion):

Firstly, there is the "generally-referred-to" osgCal (officially called
osgCal2), which was originally made by Ruben Lopez and has had many
additional edits since then. There is also a GPL version that is
incredibly more sophisticated which was created by the people at
Underware, but the license wouldn't not allow for wholesale inclusion
into OSG.

Vladimir Shabanov recently made some changes to osgCal2, and I believe
he and Ruben coordinated so that his changes were committed upstream.
However, as I mentioned back then and I believe Jan Ciger has alluded to
earlier in this thread: the code will need a lot of love before it's
ready for serious inclusion. For example, the last time I checked, the
shaders were somehow parsed by sed before actually being written into a
valid shader file, and there's simply no way I can see anyone in the
Windows or Mac world willing to accept such a restriction.

One thing that should be kept in mind when using Cal3D is that in it's
current state, Cal3D isn't a skeletal system alone--it's a skeletal
animation system+mesh format, and one cannot be divorced from the other.
Furthermore, there is a lot of data reproduction in Cal3D that already
exists in OSG, and no way to easily (or cleanly) make changes therein.

In the opinion of someone who is familiar with Cal3D, I'd say that we
wait a bit on inclusion of this until someone has the time to cleanup
the current plugin. Hardware skinning is a pretty common performance
boost these days, and whatever solution arises for OSG, I'd personally
look at support for this feature as the make-or-break aspect. We also
need exporters, and while I wrote a significant portion of the Cal3D
Blender exporter currently in SVN, I did it at a time where my knowledge
of both Cal3D, Blender, and graphics/3D development in general was very
poor, and thus cannot attest for it's reliability or cleanliness. :)

As far as ReplicantBody is concerned I'm unsure--I've never looked at
it.

To be completely honest, character animation is such a huge issue unto
itself that it probably deserves a lot of discussion and review before
any steps are taken--but that's just my opinoin. Every time I'm forced
to put any thought into the issue, I just get sleepy. What we __really__
need is an osgSkeleton NodeKit, which can then be exercised/demonstrated
in the Collada importer, but would be usable alone as well in true OSG
style:

        osgSkeleton::Skeleton* skel  = new osgSkeleton::Skeleton();
        osgSkeleton::Bone*     root  = new osgSkeleton::Bone();
        osgSkeleton::Bone*     child = new osgSkeleton::Bone();

        root->addChildBone(child);

        skel->setRootBone(root);

I bet once a basic, simple system was released, people would go to town
making the necessary changes to bring it up to speed with other kits. It
wouldn't have to be perfect, but as long as it was adaptable and done in
true OSG fashion, people could subcass things in osgSkeleton for their
own uses or to inject their desired interpolation algorithms (which is a
big area of interest for animations buffs)...


P. S. When I finish a release-candidate version of osgHUD (or whatever
you want to change the name to), I'll be peddling that for inclusion as
well. :) I've made a number of changes in the last few days if anyone is
keeping up with SVN, and almost done with a decent implementation of a
"table" layout, very similar to how HTML tables are done... however, no
one posted any complaints to my first thread, so I'm just going to keep
proceeding as normal, though I did remove the silly functional code that
no one could have possibly understood but myself... it's a shame how
difficult it is to do use something as [conceptually] easy as
std::for_each()--it's a nightmare, when you can almost always achieve
the same thing cleaner and with less code using for(iter;iter;++)...

>   osgAL - OpenAL integration
> 
> I'm not personally familiar with these libraries, but do know that
> they are known to work with the latest OSG so should be relatively
> straight forward to integrate.  Thoughts for the authors, maintainers?
>  What extra work would be appropriate before integration?  Would you
> be happy with integration?
> 
> My own inclination towards integration is to make it a bit easier for
> OSG users to assemble their application without chasing down lots of
> different nodekits all of which are maintained in different places
> with different build system and different release schedules.  The
> downside for me is there is more work involved at my end at least
> initially while we get the build systems working well across the range
> of platforms that the OSG supports.  Long term I'd hope that this will
> diminish and it'll be less support work associated with helping end
> users get things working at there end.  It should also be possible to
> make the overall OSG dev experience for end users slicker as we should
> be able properly test and get areas like multiple
> window/multi-threaded usage properly excercised.
> 
> I would also like to see the core OSG have support for scripting out
> of the bag, as well as integration with the main browsers.  One has to
> gauage what is doable in what time frame so should be considered in
> terms of 2.4 or 2.6 etc versions.
> 
> I'd like to see scripting supported out of the box to enable us to
> develop applications purely from scripting languages, so developers in
> this realm would just need the binaries to the OSG installed, and no
> need for C++ dev environment.  There are limits to how much
> functionality you can expose in this direction, but my guess is it
> should be possible to write reasonable useful apps, and especially
> good for prototyping and cross platform portability.   One has to ask
> which scripting languages to go for - Lua and/or Python?  Lua would be
> the easiest to integrate in terms of being very self contained i.e.
> which could stick the whole of the lua interpreter into the core OSG
> distribution and one would hardly notice as its so tiny.
> 
> Thoughts?
> Robert.
> 
> ps. I'm still very busy with other on going work so please don't
> expect me to be able to dive into this stuff right away.  Come 2008 I
> should start become a bit more available and able to start looking at
> progressing some of the above, so opening this stuff off for
> discussion now will help us mesh gears better when the time comes.
> _______________________________________________
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
> 

_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to