Hello Gerrit,

Gerrit Voß wrote:
> I finally managed to factor out the csm animation bits. They are
> currently not commit into the svn but available from
> 
> http://www.cgmt.org/user/gerrit/OpenSG.svn.git/
> 
> in the animation branch.

thanks. I've been looking at it during the day.

> Let's try to come up with a way to unify both approaches.

- where is FieldConnector::process() implemented? Or more accurate, 
where is the actual copying from src to dst field happening?
Oh, nvm found it in OSGFieldContainer.inl, is that location an 
historical artefact?

- for unification of the approaches:
what I call Animation can basically become a TimeSensor with a bunch of 
Interpolators, so that there is a single object to deal with for 
animations that modify many different values.
where I don't have a good solution yet (but really need one, so ideas 
very welcome), is the blending of multiple animations; I see two 
difficulties this introduces:
1) the output of multiple interpolators has to be temporarily stored 
somewhere and there needs to be a trigger to perform the actual blending 
and storing of the final value. Alternatively something has to know that 
it is the first thing to write to a field in this frame and sets an 
absolute value, while all subsequent writes in this frame make relative 
changes. The latter sounds fairly brittle to me though.
2) since the blend weights change over time (e.g. to fade one anim out, 
fade another in) the natural choice seems to control the weights with an 
animation of their own, but then there is an ordering dependency between 
animations.

One thing we have come up with is to feed interpolators always into a 
blender object that has the real connection to the target field. By 
allowing a field connector to write into a fixed index of an MF we could 
accumulate the results over all inputs and also feed weights for each 
into the blender and compute the weighted average as output. The 
question with this is how to trigger the actual blending? We could 
derive the blender objects from FrameTask and have them run as a task 
after the time sensors (something would have to ensure they are at the 
back of the task list). Also this does not really help with 2) above 
because the weights need to available for the blending (so they can not 
be the result of blending ;) ), which means there are 
BlendableInterpolators and NonBlendableInterpolators; hmpf, don't like 
that idea a lot...

As has been said before, basically there needs to be an efficient way to 
take multiple inputs and  move them to a single output and a way to deal 
correctly with the resulting ordering problem (outputs should only be 
written after all input that will change this frame has actually changed).

Any ideas/hints to solve this are very welcome :)

        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

Reply via email to