On Sat, Aug 1, 2009 at 1:49 PM, Carsten Neumann <[email protected]>wrote:
> Hello David,
>
> David Kabala wrote:
> > As part of my groups work with OpenSG, we have written an animation
> > library for OpenSG 1.8. From what you have described, a port of this
> > library to OpenSG 2.0 could be useful.
> >
> > Some overview of the features:
>
> sounds very interesting :)
>
> > Animator - derived from AttachmentContainer
> > Animators hold a pointer(FieldContainerPtr) to a keyframe sequence.
> > Used to apply a keyframe sequence to an animated value
>
> just out of curiosity, how "keyframe specific" is this type? For example
> could it deal with procedurally generated values as well?
The keys are held in a MFReal32 field, and the values are also held in a
MF(Real32/UInt16/Pnt3f/Matrix/etc...) field, so that values could be
updated. Or you could inherit off of the KeyframeSequence Base class. The
KeyframeSequence class hierarchy is arranged similarly to the GeoProperties
class hierarchy.
KeyframeSequence
KeyframeColorSequence
KeyframeColor3ubSequence
KeyframeColor3fSequence
KeyframeColor4fSequence
KeyframeColor4fSequence
KeyframeNumbersSequence
KeyframeUInt8Sequence
KeyframeUInt16Sequence
KeyframeUInt32Sequence
.
.
.
KeyframeReal32Sequence
KeyframeReal64Sequence
KeyframePositionsSequence
KeyframePnt2fSequence
...
KeyframeVectorsSequence
KeyframeVec2fSequence
...
KeyframeRotationsSequence
KeyframeQuaternionSequence
KeyframeDiscreetSequence
KeyframeStringSequence
KeyframeGLeunmSequence
KeyframeTransformationsSequence
KeyframeMatrixSequence
KeyframeFCPtrsSequence
KeyframeNodeSequence
KeyframeTextureChunkSequence
KeyframeMaterialSequence
...
>
> > Animation - derived from AttachmentContainer
> > FieldAnimation - derived from Animation
> > contains:
> > An AnimatorPtr for applying some animation
> > A FieldContainerPtr to the FC to animate
> > A FieldID of the field to animate
> > The interpolation type, and replacement type to use
> >
> > This allows us to define a keyframe sequence on colors,
> > Pnts, matrices, etc and then connect those as an animation to any field
> > of a FieldContainer that matches the type of the keyframe sequence.
> [SNIP]
> > AnimatedCharacters
> > Joints - essentially transformations
> > Skeletons - Joint hierarchy
> > SkeletonBlendedGeometry - inherits from Geometry
> > defines wieghting between vertices in a geometry and joints
> > in a skeleton
> > SkeletonAnimation - inherits from Animation
> > Holds a collection of Joint animations and a
> > SkeletonBlendedGeometry to apply the animations to. It is optimized to
> > only update the verticies once per update.
>
> I guess this does the vertex skinning computation on the CPU then? That
> is one thing that I'd very much like to move to the GPU, do you think
> that is possible with these data structures?
Yes, we have some target machines that may not have a lot of shader support
so we went with the CPU approach. In addition doing these computations on
the GPU makes it difficult to have the bounding volume of the node correctly
updated. However, the same data structures could probably be sent as
parameters to a vertex shader for the actual computation.
>
>
> > SkeletonBlendedAnimations - inherits from Animation
> > Holds a collection of SkeltonAnimations and weight for all of
> them.
> > This is used to seamlessly blend between a walk and run
> > animation by changing the weights.
>
> hm, blending of animations is something I'd preferably solve at a higher
> level (so that it is not specific to SkeletonBlendedAnimation). Do you
> think this could be moved up in the inheritance hierarchy so that it is
> something all animations support?
Yes, with a little work.
>
>
> > AnimationAdvancers
> > We found that we do not always want animations to be directly tied
> > to an elapsed time update.
>
> hm, Gerrit has TimeSensors which (if I understand it correctly) should
> be able to do the same thing. The stuff I've written so far expects the
> user to set the time each frame (and it is done on the AnimationManager,
> so more globally, which is perhaps too inflexible).
>
> > That is why there is the difference between an AnimationTemplate
> > (with ATracks) and an Animation (with AChannels), one just stores
> > data, the other is a "cursor" into that data - similar to how Cal3d
> > splits things with its Core and non-Core types.
> >
> > The library I have written supports just this type of arrangment.
>
> I think this is pretty much a must if you want to use animations that
> are authored in a DCC tool.
>
> > If there is interest, I would love to talk more about it.
>
> by any chance, will you be at SIGGRAPH this week? We could try and meet
> in person.
Unfortunately not this year, due to back problems. But I am available over
email, skype, IM, etc. I will have installers available for the entire set
of libraries on Linux, Windows, and OS X within the next week, so people
could take a look at he libraries capabilities. We have written a lot of
tutorials for the animation library.
>
> > Because we
> > are excited about having this functionality in OpenSG 2, I would
> > definitely be willing to work on porting it.
>
> We need this for a project, so I'm more than happy to write/reuse/port
> code as that is what I'd have to do anyway ;)
Given that this library was written using OpenSG's fcdCompile to create all
the classes as FCs I don't(read hope) think this will be too difficult to
port; but you would probably know this better than me. All our code is
LGPL3 btw.
David Kabala
>
>
> Cheers,
> Carsten
>
>
>
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
> trial. Simplify your report design, integration and deployment - and focus
> on
> what you do best, core application coding. Discover what's new with
> Crystal Reports now. http://p.sf.net/sfu/bobj-july
> _______________________________________________
> Opensg-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/opensg-users
>
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users