sorry, it was a problem with my handling of normals... all fixed.
so yeah, this was a quick drop in change - seeing 10x + increase in
morph fps. i think somewhere in here there's one more big speed
increase to be had, but i'm having a hard time following your code.
where do you actually get and set the trimesh data?
mike
On Mar 25, 2006, at 8:39 PM, Lo Saeteurn wrote:
hmm... what sort of errors? Does it work with the original code?
Are you running a Mac or Windows?
On Mar 25, 2006, at 5:27 PM, Mike Woodworth wrote:
hmm, that model throws errors the whenever i try to do anything.
mike
On Mar 25, 2006, at 8:20 PM, Lo Saeteurn wrote:
Sure.
Here is the werewolf model (12MB):
http://www.rpghorror.com/files/werewolf2.zip
On Mar 25, 2006, at 3:37 PM, Mike Woodworth wrote:
lo,
it looks like you've tried hard to optimize this already... lots
of loop unraveling. I'll give it a try - probably out drinking
tonight, but will look at it tomorrow.
ps: do you have any sample animations that are more complex? i'm
already getting 900fps on the morph of this... i'd like to start
with something a bit slower - easier to find bottlenecks.
mike
On Mar 25, 2006, at 6:24 PM, Lo Saeteurn wrote:
Here is the code:
http://www.rpghorror.com/files/animationbuilder.zip
Let me know if it requires plugins or anything.
The actual modification of the memoryblock happens in the
method: Animation3D->ApplyMorpth
Scroll to this code (it was a for loop, but I changed it
recently for some reason):
if Normals=NIL or Normals1=NIL or Normals2=NIL then
//No normals to interpolate so interpolate just points
do
value1=Points1.singleValue(position)
points.singleValue(position) = value1+
(Points2.singleValue(position)-value1)*percent //apply %
tweening to points
position=position+4
value1=Points1.singleValue(position)
points.singleValue(position) = value1+
(Points2.singleValue(position)-value1)*percent
position=position+4
value1=Points1.singleValue(position)
points.singleValue(position) = value1+
(Points2.singleValue(position)-value1)*percent
position=position+4
loop until position>c2
else
//interpolate points and normals
do
//apply % tweening to points
value1=Points1.singleValue(position)
points.singleValue(position) = value1+
(Points2.singleValue(position)-value1)*percent
//apply % tweening to Normals
value1=Normals1.singleValue(position)
Normals.singleValue(position) = value1+
(Normals2.singleValue(position)-value1)*percent
position=position+4
//apply % tweening to points
value1=Points1.singleValue(position)
points.singleValue(position) = value1+
(Points2.singleValue(position)-value1)*percent
//apply % tweening to Normals
value1=Normals1.singleValue(position)
Normals.singleValue(position) = value1+
(Normals2.singleValue(position)-value1)*percent
position=position+4
//apply % tweening to points
value1=Points1.singleValue(position)
points.singleValue(position) = value1+
(Points2.singleValue(position)-value1)*percent
//apply % tweening to Normals
value1=Normals1.singleValue(position)
Normals.singleValue(position) = value1+
(Normals2.singleValue(position)-value1)*percent
position=position+4
loop until position>c2
On Mar 25, 2006, at 2:57 PM, Mike Woodworth wrote:
On Mar 25, 2006, at 5:49 PM, Frank Condello wrote:
On 25-Mar-06, at 5:26 PM, Mike Woodworth wrote:
On Mar 25, 2006, at 5:06 PM, Frank Condello wrote:
...
VecAdd, VecSub, and VecMult (vec*scalar) methods would be
enough to be useful, but more exotic combinations
(VecAddMult) and Matrix methods (VecMultMat4x4) plus Double
precision versions (VecAddD) would help flesh it out ;)
...
well, i've done exactly this for mac osx.
Awesome! Payware? Freeware? Open source?
as industrious a capitalist as i am... even i cant justify
charging for single line declares that wrap apple's hard
work :) besides, showing up those people who bitch about how
slow RB is compared to C will be payment enough.
does anyone have a simple test doing this the old scalar way
that they can send me? i'll shoe horn my vdsp classes in,
and we can get some quantifiable numbers. prefereably some
simple example where we can compare fps between the two
methods. (i'm not up enough on rb3d to do this, otherwise i
might take a crack at it, but i'd love to show you guys what
i've been doing with veclib).
Lo's animation builder may be a good test app, but I can't
seem to find a link anywhere (I'm sure he'll chime in later).
Frank.
great. lemme know Lo, and if you can point me to the methods
that are doing this, that'll make the switch even easier. I
was actually talkign to asher @ RW about how some judicious
miss use of vectorized vImage calls might speed this kinda
stuff up leaps and bounds. and there's nothing i love more
than staring at shark profiles (i wish that was sarcastic, but
alas i am that geeky)
mike
--
Mike Woodworth
mike at divergentmedia dot com
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>
Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>
Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>
--
Mike Woodworth
mike at divergentmedia dot com
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>
Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>
Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>
--
Mike Woodworth
mike at divergentmedia dot com
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>
Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>
Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>
--
Mike Woodworth
mike at divergentmedia dot com
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>
Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>
|