B3D animations

Blitz3D Forums/Blitz3D Programming/B3D animations

Naughty Alien(Posted 2008) [#1]
..I noticed that my program suffering serious slow down after loading few B3D animated characters at once on scene..is there any way of optimizing B3D animation, or its just as it is...slow?


Gabriel(Posted 2008) [#2]
That's the way it is.. slow.


Dreamora(Posted 2008) [#3]
The simplest way to optimize it is create models for Blitz3D, not for rendering.
In most cases where I've seen a massive slowdown yet, either the CPU was weak (B3D bone animation is pure CPU. If you don't need to attach stuff use MD2 instead!) or the amount of bones were totally out of question. With 20-25 you should be at the maximum of bones if you want to have a usefull performance through your game.


kragoth74(Posted 2008) [#4]
Animations are really slow now but they weren't before, take a look at this.


Dreamora(Posted 2008) [#5]
Well the ones with the problem are the ATI ones ... catalyst 6 and 7 were seriously crap so this might have had a serious influence.

If you want many animated characters, MD2 is the only way to go, bone animation will take too much performance. (there was someone who wrote a dll do to it externally, showing 200 animated chars on screen with superb performance ... but I don't think he ever finished yet sold it :( )


Ross C(Posted 2008) [#6]
Yep, i'm going to be using md2's for enemies, and a boned .b3d for the main character. Watch out with md2's, are i'm sure vertex positions need to be integers in the file format?


Naughty Alien(Posted 2008) [#7]
problem with MD2 is that I have no way to cast shadows from them....ihhh


jfk EO-11110(Posted 2008) [#8]
I'm not sure but I guess linepicking doesn't work with MD2, can anybody confirm this?


Gabriel(Posted 2008) [#9]
I'm not sure but I guess linepicking doesn't work with MD2, can anybody confirm this?

Doesn't work with animated B3D's either, does it? Last I checked it only picks the default pose, not the current, animated pose.

problem with MD2 is that I have no way to cast shadows from them....ihhh

Doesn't SSwift's Shadow System cast shadows from MD2's?


Ross C(Posted 2008) [#10]
Yep, the default pose is the only one any type of poly collision works with.

Yeah, sswifts shadow system should do, because i believe it simply takes a camera render for the shadow shape. It can't cast shadows only animated .b3ds or md2's though. Same issue with collisions.


jfk EO-11110(Posted 2008) [#11]
Don't confuse collision and linepicks. While an animated B3D with a single mesh containing bones in fact picks only the initial pose, childmesh structured hierarchies like 3DS, X or (AFAIR) no-bones-B3D (using childmeshes instead of bones) does pick the current pose correctly, although it will return the childrens IDs, so you have to identify the parents somehow.

So do I get this right, I can't pick MD2 at all, not even the initial pose?


Dreamora(Posted 2008) [#12]
If you want to cast shadow you won't have problems with the amount of bones anyway. The game will die LONG before you reach 30 - 40 characters where the cpu calculated bones will start to be a serious problem.
Shadows will already reduce the maximum amount of bones quite a bit as they use the CPU as well.


Ross C(Posted 2008) [#13]
Nope, MD2's aren't meshes. I'm not sure how blitz treats them. You need to parent a pivot to their location and use that for the collisions.