Hi Roland,

Thank you a lot for this contribution, it's really cool. I merged your modification in my branch ( http://hg.plopbyte.net/osg-branch ) to test and adjust it before submitting in the trunk.
All modification sounds good to me.

I was thinking to remove LOOP mode from Animation, because it's something directly related to call you make in the animation manager, but because it's not clear for me yet we can write those data in the osg file. Same thing for the Channel weight, it's something used in internal set by the animation manager, i am not sure
it's intersting to write it in the .osg file too.

I think to update that in a near futur.

About the current design of osgAnimation you are right some elements would need to move or change to mix skinning and morphing

Cheers,
Cedric

Roland Smeenk wrote:
Attached you will find some improvements for osgAnimation and a new feature: 
morphing

Summary of changes:
-Added MorphGeometry
-Bone Bindmatrix is only calculated if needed
-osgAnimation plugin now supports all available channel types (before only 
linear vec3 or quat channels)
-osgAnimation plugin now supports MorphGeometry
-osgAnimation plugin now supports animation and channel weights, animation 
playmode, duration and starttime
-removed osgAnimationManager.cpp from CMakeList

osgAnimationManager.cpp needs to be removed from the repository, because it was 
renamed to BasiscAnimationManager.cpp

Example morhing.osg (see screenshot)

The example is converted to .osg from a Collada example for morphing. The 
example file available in the DOM 2.2 download package and is released under 
Creative Commons license.
You can load the model in osgAnimatonViewer example to play the morphing 
animation. The lower three heads are standard geodes with a single geometry. 
The upper middle head is a MorphGeometry with the first of the three heads as 
base and the other two as morphtargets.

The loading of morph controllers is not available in the current version of the 
Collada loader.

Current osgAnimation design limitation

Currently RigGeometry and MorphGeometry modify their own geometry. In Collada 
it is possible to chain controllers for instance to morph a character's face 
and have the skin controller modify the body. It is probably possible to set 
RigGeometries as morphtargets for the MorphGeometry, but you can not specify a 
RigGeometry as base geometry. Viceversa there's is no way to give the 
RigGeometry a MorphGeometry to modify.

kind regards,

Roland Smeenk

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=7390#7390



------------------------------------------------------------------------

------------------------------------------------------------------------

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

--
+33 (0) 6 63 20 03 56  Cedric Pinson mailto:[email protected] 
http://www.plopbyte.net


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

Reply via email to