Small demo of Matrix/Bone Animation

Blitz3D Forums/Blitz3D Programming/Small demo of Matrix/Bone Animation

GrumpyOldMan(Posted 2006) [#1]
Hi

I've just finished working on the guts of a matrix/bone animation system and I'm just wondering if people could try it out and let me know how it performs on their machines.

I've tested it on two machines - on a pentium 4 3.2 with a Radeon 9800XT i was able to animate and render 200 individualy animated figures at around 900 fps at the low settings, with an AMD 2500 and a Radeon 9200 I was only able to get around 50 fps for the same settings.

The demo is at
[a http://home.ozconnect.net/victor/Matrix Anim.zip] http://home.ozconnect.net/victor/Matrix Anim.zip[/a] .

Appreciate any feedback

Cheers

GrumpyOldMan


Bobysait(Posted 2006) [#2]
Awesome !!! most impressive, it runs at 250 fps on amd 2.4 GHz

Did you try with classic animation ? it could be interessant to compare


GrumpyOldMan(Posted 2006) [#3]
Hi Bobysait

I've tried similar things with Blitz's internal animation system but the system just chokes on 200 skeletons trying to animate at the same time :).

Thanks for the feedback.

GrumpyOldMan


Danny(Posted 2006) [#4]
Sorry but on my system all I get is a blank screen!
NOTE that my laptop is an ancient piece of [censored]: 800Mhz with an ATI mobility (8mb!!!) ""gfx"" card :(
I've tried different resolutions, etc. but no luck except for a blank (greenish?) background.

d.


John Blackledge(Posted 2006) [#5]
Wow - stunning!
Someone will have been waiting for this, and will be wetting themselves.
Keep on with this - it will immensely expand the capabilities of Blitz3D.


Barliesque(Posted 2006) [#6]
Wow, that looks great! It's a simple concept, really, but quite effective. And quite an acid test of your system. Have you tried randomly setting the animation speed per figure: + or - some small amount, just enough so any two walking in sync will gradually fall out of step.

One problem: When I press ESC to exit the program, I get a Memory Access Violation error.

Here's a link that'll work more easily:
http://home.ozconnect.net/victor/Matrix%20Anim.zip

...I look forward to learning more about this new system! Perhaps if it can be used in place of Blitz's own system, then those working on stencil shadow systems can gain access to crucial information to create shadows for bone animated meshes.


mongia2(Posted 2006) [#7]
good work

mongia


puki(Posted 2006) [#8]
Mmm, I found nothing to download.

I find "GrumpyOldMan" interesting - he doesn't post much - like he is constantly working on something.

How much is it going to cost?


kevin8084(Posted 2006) [#9]
@puki, here is the link: http://home.ozconnect.net/victor/Matrix Anim.zip
The demo worked at an average of 10FPS for me on my laptop (AMD Athlon-XP-M @ 2.1GHz), 1 Gig RAM, 64 Meg Video, with ATI Radeon 7000 DDR x86/MMX/3DNow!/SSE


Naughty Alien(Posted 2006) [#10]
link dead..404


kevin8084(Posted 2006) [#11]
where it says victor/Matrix Anim.zip....that is the file name: Matrix Anim.zip (with a space between Matrix and Anim)


Naughty Alien(Posted 2006) [#12]
ok, its working now...this is amazing..I would like to have this lib if it is free, or purchase, whatever..this is goooooood...

ehh..fullscreen doesnt showing any animation..just blank screen..windowed working fine..


150-230 FPS

nVidia 5600fx, 256MB VRAM, P4, 2.4 GHz, 1 Gig RAM, Win XP


IPete2(Posted 2006) [#13]
Wow that is amazing 200 animated figures lol!

20 - 24 fps on an Athlon 1900+ 768 MB Ram 256 MB nVidia GeForce 6600.

What I particularly love is that they are not all synchronised, they look realistic in their swaying. Brilliant work!


I'd like to be able to roam with the camera - is that possible?

IPete2.


sigi(Posted 2006) [#14]
450-500 fps, great.
Fullscreen only shows one figure.


puki(Posted 2006) [#15]
SELL, SELL, SELL


t3K|Mac(Posted 2006) [#16]
it just gives me a MAV after typing 0,0,0,15 on my work pc. doesn't work in fullscreen or windowed mode.


puki(Posted 2006) [#17]
Wait a minute!

Where did you get the animated RPG/medieval figure from?

I bet there are more of them - sell, sell, sell!


degac(Posted 2006) [#18]
Great works

@sigi: you need to specify what FPS you want, ie: return means 0 -> 1 man


(tu) sinu(Posted 2006) [#19]
Very impressive, i get 70fps on my 1500 athlon+gf 4200+512mb ram.


Dustin(Posted 2006) [#20]
High settings got me 300fps on my 7800gs AMD3000.

Amazing!!!!!

I could use this so badly at the moment. Please tell me you will be selling this soon. I will buy it day one!


slenkar(Posted 2006) [#21]
I just get the green screen with my integrated gfx card at 600MHZ

I get 5FPS though


Stevie G(Posted 2006) [#22]
Tried 30fps setup @ 800x600x16 and got an average of 180 fps. P4 3.0 , gfx440mx

Very fast - superb work! How does this compare to the native system with the same number of models etc.., I don't use alot of animated stuff myself?

Stevie


Chroma(Posted 2006) [#23]
Nice job!


puki(Posted 2006) [#24]
I wonder if he has any more animated models? I tried to use the one he supplied, but seems to be non-standard.

I'd like to see a new demo where we can move the camera - just so I can check there is no cheating going one - plus hand over any more models you have - in fact, put a different animated model in the next demo.

Love "puki" - your new best friend.


GrumpyOldMan(Posted 2006) [#25]
Hi All

Thanks for the feedback. In my rush I forgot to mention that the system relies on Thomas Jansson's Memory.dll. The basic skeleton and the animation are heavily modified ones I extracted from Rome Total War. As for the figure it was a lores figure that I made for testing various methods of animation.

I'll put the original b3d figure up and post the link so people can compare. I'll also put a limited roam on the camera and post a new .exe file. The roam will be limited only because if you swing it away entirely from the mesh it screws up the FPS figures. I'll also put in another b3z figure and texture.

As for its availablity, there is a long way to go from it's current alpha state to an acceptable beta state.

Cheers

GrumpyOldMan


GrumpyOldMan(Posted 2006) [#26]
Hi All

I've just put up a new demo with a roaming camera (no tricks here Puki :) ) and a different model. The demo is at home.ozconnect.net/victor/Matrix_Anim2.zip . I haven't put any limits on the camera, you'll just have to be careful that you keep the mesh in view or the FPS values go berserk.

I've also put up the original b3d figures that the b3z figures are based on, they are at http://home.ozconnect.net/victor/original_figures.zip .

The b3z figures and the animations are interchangeable between the different versions of the demo by renaming the files ie rename (after backing up of course :) ) demo_pike.b3z to demo_musket.b3z, and demo_march.b3d to demo_march2.b3d and they should both run in the second version of the demo. You can also mix and match the different animations with the b3z's.

Cheers

GrumpyOldMan

edit - WHOOPS!!!!

Made a small error in the exe file in the latest demo download. Has been fixed now and corrected. Apologies to anyone that downloaded the incorrect version.

Cheers

GrumpyOldMan


Danny(Posted 2006) [#27]
sorry dude, I get a MAV when I try (0,0,0,50)... (I downloaded the 'fixed' one!?!)

But I just saw your original one and err... WOW! Amazingly cool!

D.


Tom(Posted 2006) [#28]
Great stuff. Second demo MAVs though.

Are you getting all the B3D info from the file? There's a way to peek the vertex info, weightmap values and their associated bone IDs if it helps.




puki(Posted 2006) [#29]
This is so cool.

Can you do all the models from Rome Total War? Just so I can check for any cheating - just bundle them up in an archive and email them across to me. I'll take any other decent geometry that you have too.

How much is this system going to cost us? I'm assuming the models will be free though?


jhocking(Posted 2006) [#30]
This looks really interesting, but I'm confused as to what exactly is going on. Are these all individual entities that can be controlled and interacted with separately?


Dreamora(Posted 2006) [#31]
440 FPS

CoreDuo T2500 (2Ghz), 7600Go, 2GB RAM.
Settings to 1024x768x32, Fullscreen, 50 Frames on animation (mentioned to be slow?! ^^)

Really great.


GrumpyOldMan(Posted 2006) [#32]
Puki

Could I do all the models from Rome Total War.? Yes, I wrote a utility to extract info from their format to Milkshape ASCII.

Could I bundle them up and send them to you? I think they may have some difficulty with copyright issues :).

Other geometry? I'm working on a new 3d format to use with this system that will allow a selection of skins, weapons and heads within the one mesh.

This has yet to be worked beyond a sparkle in my eyes as yet.

Cheers

GrumpyOldMan


GrumpyOldMan(Posted 2006) [#33]
jhocking

What there is in the demos, as far as Blitz entities are concerned (apart from the camera and camera pivot), is one mesh with one surface. Each unit however is one object-entity ie a discrete controllable figure that can be moved separately, given a different animation separately, etc. The reason for the spike in processing time is the calculation and processing of vertex values for each object-entity (I'm looking at using four or five anim stacks sequentially of object-entities instead of one large stack to 'spread the pain').

The main drawback is that you won't be able to use Blitz3d's inbuilt entity based functions and procedures (ie collisions or animation transitions) unless you provide pivots to carry those functions, if possible. I'm looking at a simple 2D cylindrical, octree based collision system to work in with the animation system.

Cheers

GrumpyOldMan


GrumpyOldMan(Posted 2006) [#34]
Tom

Thanks for the code. This could have saved me some time when I was first looking at this. I wasted about a month and a half trying to work out what was wrong with my code until I discovered that the Blitz B3D loader doesn't load a mesh as recorded in the file. There are random reindexing of vertices.

Cheers

GrumpyOldMan


LAB[au](Posted 2006) [#35]
Great! Works 600fps+ on my Geforce Go 7800 gtx, but just green screen (and 500fps!) on my intel Gma 950.


b32(Posted 2006) [#36]
It is very impressive, I got 145 fps all around laptop/geforce fx go5350, fullscreen, 25 fps.


@rtur(Posted 2006) [#37]
@GrumpyOldMan
Do you plan to release this system for sale? And when it will be ready, if so?


puki(Posted 2006) [#38]
I forgot about this thread.

Yeh, let's have this thing now.

"Grumps" - I don't need the models anymore - I took them myself.


GrumpyOldMan(Posted 2006) [#39]
Hi All

Sorry about the silence but my ISP crashed and burned, taking me and 29,999 others with him. I understand the owner is now resident in Guatemala :(.

Still the absence of distractions helps to focus the mind, so they say.

I've been working on the data structures so the system can move from a demo to being useful. I'll be releasing it soon, as soon as I can get my head around what's required ( I'm not a very good programmer).

Cheers

GrumpyOldMan


Naughty Alien(Posted 2006) [#40]
hey Grumpy, is it freeware or you selling it?? If it is for sell, may I know the price?


smilertoo(Posted 2006) [#41]
i was never able to d/l this, always got bad links.


Mikele(Posted 2006) [#42]
Any news Grumpy?


puki(Posted 2006) [#43]
Yeh - if I remember correctly, he was virtually doing this for me.

I'll tell you what "Grumpy" - if you finish it, I'll turn into "Snow White" and give you a really big snog.


slenkar(Posted 2006) [#44]
yeah 'GIZ' the system already


puki(Posted 2006) [#45]
Hey, "Cinderella" - he's my dwarf - get your own.


slenkar(Posted 2006) [#46]
im a gonna make you smell purdy, boy


Physt(Posted 2006) [#47]
Can you put a new demo up?


boomboom(Posted 2006) [#48]
Yes, I am also intrested in this system, But the demo has gone down :(


bytecode77(Posted 2006) [#49]
is there any working demo and not just code snipptets?

i'd love to see my shadow system casting from anim b3d meshes :)

gread work anyway:D!!


GrumpyOldMan(Posted 2006) [#50]
Hi All

I've just sent the source of the new demo to Devils Child to see if he can do anything with it.

This demo is taken from an old development prg that I was fiddling with and I've decided to release it anyway. It is an ugly, ugly piece of coding and you'll have to forgive it and me.

The mesh terrain is an old piece of code I was working on and probably has snippets and bits and pieces from all over. The terrain texture is by L3DT. The original figure mesh and texture are from the LOTR Total War mod. I can't remember where the tree texture came from so don't redistribute it.

A final system won't be based on arrays and will allow LOD meshes.

The new demo is at New Demo.rar

I'm using FRAPS now for fps rates and this demo runs at around 320-330 fps on my machine. Camera controls are cursor keys - forward back and turn. The camera is raised and lowered with the + and - keys on the NumPad.

Again please forgive the very sloppy code but I'm basically a 3D modeller dabbling in programming.

Cheers

GrumpyOldMan


boomboom(Posted 2006) [#51]
aghh rapid share! It never works on my computer (And alot of peoples i hear)

Could you, or someone else, upload it to a better host:

http://www.yourfilehost.com

or email it to me chipmandoo@...


GrumpyOldMan(Posted 2006) [#52]
Hi boomboom

I've also uploaded it to http://www.yourfilehost.com/media.php?cat=other&file=New_Demo.rar

Hope you can download it from there.

Cheers

GrumpyOldMan


Dustin(Posted 2006) [#53]
Thanks for releasing this! The idea of 100 B3D animations onscreen with no slowdown is so amazing.

I'll do my best to analyze what you've done. But, I'm like you. I'm a CG guy who does his own (sloppy) programming. Hope that some supporters can get this thing well documented. I'd love to put this thing into action. If not for "Bad, Bad Bots!" then the next one. This is the kind of thing that could keep me hanging on to B3D for another go 'round!


mongia2(Posted 2006) [#54]
thank for your code is fantastic!

gondor_spear.b3x is your format?

specific?

thanks

mongia


Mikele(Posted 2006) [#55]
Thanks Grumpy!


Pinete(Posted 2006) [#56]
I cannot download it!
Please, someone have another link??

Thanks a lot!


bytecode77(Posted 2006) [#57]
just email it to me, i can upload it on my webspace :)

edit:
http://dc.chat-blitz.de/upload/files/Devils%20Child/GrumpyOldMan_MatrixBoneAnim.zip
i uploaded it. i zipped it by the way.

cya


Nexus6(Posted 2006) [#58]
I cant run it !

Function dllPeekInt not found


bytecode77(Posted 2006) [#59]
of course, you have to copy the userlibs into the blitz userlib dir...


Nexus6(Posted 2006) [#60]
Thanks Devil, all working now.


GrumpyOldMan(Posted 2006) [#61]
Hi Mongia2

Yes b3x is my format, nothing fancy but I needed local vert positions for the matrix transformations. I played with the idea of using a normal b3d with collapsed bones but the vertex reindexing of the internal b3d loader means that you have to build your own mesh for vertex manipulation, or extract the information from the loaded b3d.

Cheers

GrumpyOldMan


Pinete(Posted 2006) [#62]
Thank for the link Devil,

but when i try to run the example, after copy the userlibs
into the correct folder, etc...
A MAV comes to me here:

>>>> surf = dllPeekInt(surfListPtr , i*4)

line 91...

Could you please help me??


Thanks in advance!


Pinete(Posted 2006) [#63]
Sorry,

solved....
:P
Just I was trying to run th example with 1.96 version...
:)

Now it works perfectly and its impressive!!!


regards


Pinete(Posted 2006) [#64]
Hi,

one thing more...
what are the plans for this lib? do you think to finish this amazing lib? and when? is really incredible...

thanks in advance,

regards


boomboom(Posted 2006) [#65]
If you are still working on this, It would be really nice to get a much simpler demo with documentation.


Pinete(Posted 2006) [#66]
yeah!
it could be a fantastic help for the whole Blitz community!!
It could expand even more the possibilities of the language!!
Please!!!!

Best regards!


bytecode77(Posted 2006) [#67]
the problem is, that there are planty of other things which are making the code unreadable.

for example the terrain, the trees, the birds singing and the wolf barkin in the noon ;)

beautiful, but if you left these things out, make just a few soldiers and the code readable, it would be possible to other people to read:)

thank you anyway for this great code!
cya


GrumpyOldMan(Posted 2006) [#68]
Hi

I've stripped down another version without the terrain (shame, I liked the terrain :) ). It's at http://www.yourfilehost.com/media.php?cat=other&file=anim_only_demo.bb .

It uses the same figure and texture as the other demo. Not much in the way of documentation though. Let me know if it's any clearer.

Cheers

GrumpyOldMan


Pinete(Posted 2006) [#69]
Hi!

Thank you very much for the new demo!!
however the major part of it is like chinesse for me!! :)
I must recognise I'm not a very advance user, that's the reason...

Could be aboslutely smashing if you could do some kind of commands or functions like the blitz animation ones (or similar), in order to keep people could track the lib and
make the implementation in their games...

If you finish this at that way could be one of the best additions to the blitz community I've ever been seen (in my opinon)..

Please keep working and finish it!!!!! please, please!!!!!

Thanks a lot and best regards!!!


bytecode77(Posted 2006) [#70]
please put the new demo into a codebox, and not into that upload thing above.


bytecode77(Posted 2006) [#71]
i put that through my code scanner which idented it. then i made a proper freelook function.



grumpy: please work on -this- code above :)


Pinete(Posted 2006) [#72]
Hi Devil,

the freelook function is great! as well as the time invested making the code a little more organized...

Grumpy: How things are coming??? go for it!!

Thanks a lot!


bytecode77(Posted 2006) [#73]
well, i will follow this thread to my deaht (and you know why :P)

anyway. what the community really can use is a proggram where you simply load a b3d mesh using loadnimmmesh() and use a function such as initanimB3D(entity).
then you update it and request the vertex coords...


GrumpyOldMan(Posted 2006) [#74]
Hi Devils Child

I haven't tried what you're after but it should be pretty easy to do.

Prep work on loading

1. Loadanimmesh

2. Run JFK's code modified http://www.blitzbasic.com/codearcs/codearcs.php?code=615 to give a list of bones in hierarchial order

3. Use Tom's code in post above to get vertex information on bone assignments.

4. Get vertex local vector using tformpoint on bone assignment and store, ie Tformpoint,x,y,z,world,bone and store loc_x,loc_y,loc_z,bone_index

Looping in program

5. After Updateworld or EntityY 'kick', run the MatrixIdentity Function for each bone (this takes into account any position or rotation on the base entity)

6. Do the matrix multiply on local vectors using values from MatrixIdentity (as in my main loop) and this will give you the current global position of each vertex.

This will give you the information you're after but I'm not sure that it would be any faster than a Tformpoint based function since they're basically doing the same thing, ie Tformpoint, loc_x,loc_y,loc_z,bone,world.

Is that the sort of stuff that you're interested in?

Cheers

GrumpyOldMan

Edit

I just had a think about my previous post, and I think I was wrong in saying that my system would be comparable to Tformpoint. With my system you would be looking up the global matrix for each entity only once and then applying the vector/matrix multiplication for all affected vertices. With Tformpoint the system would be looking up the entity global matrix individually for each vector in sequence and then applying the vector/matrix multiplication. I haven't tested it yet but I imagine it would be a significant difference with large numbers of vertices.

Cheers


Sokurah(Posted 2006) [#75]
Hmm, I can't make any of the examples work.

I've tried B3D v1.90 and v.196.
I've also copied memory.decls and Memory.dll to the Userlibs folder. Still no luck.

- what am I doing wrong?

Thanks.


GrumpyOldMan(Posted 2006) [#76]
Hi Sokurah

You haven't given me much detail. Are there any error messages? What sort of system are you running?

Cheers

GrumpyOldMan


Pinete(Posted 2006) [#77]
Sokurah,

I had the same problem, install 1.98 and all works fine.

Install 1.98 and it will run ok. sure. :)

Regards!


GrumpyOldMan(Posted 2006) [#78]
Hi All

I'll be travelling for the next few weeks and I probably won't have access to the internet over that time, so any queries will have to wait until I get back. I'll be interested to see if anybody can make head or tail out of my ugly, ugly code :).

Cheers

GrumpyOldMan


bytecode77(Posted 2006) [#79]
i have made a clear demo



Pinete(Posted 2006) [#80]
Hi Devil!,
yes, it's more clear!
now, how do you plan make something usable with this?
Do you know something about b3x format?

regards!


bytecode77(Posted 2006) [#81]
no i dont know.
the best solution would be creating everything on the fly and not froom a b3x format...

i need a construct like so:
SetAnimB3DFile(entity)
UpdateAnimations()
FreeAnimations()



Pinete(Posted 2006) [#82]
the thruth is that I don't understand the grumpyman code very well... and all my attempts has feiled... my unique option is to wait till you finish something usable!
x)

regards!


bytecode77(Posted 2006) [#83]
yeah, i'm allways trying to... but it is not that simple...
i made the code as readable as i could ;)


Pinete(Posted 2006) [#84]
The "animation" engine is the last one you could add to the
"devil engines" list!!!
;P
Think about it!!
:))

Regards!


slenkar(Posted 2006) [#85]
I always just get the green screen for some reason with Intel integrated GFX card


Pinete(Posted 2006) [#86]
Are you refering to the background behind of the animated model?
I have a green background too, but all works fine for me..

regards!


slenkar(Posted 2006) [#87]
yes,
so the mesh is just not visible for me

I dont know why, am I doing something wrong?


Pinete(Posted 2006) [#88]
mmmm
I don't know what's happening to you, really...
I guess the best solution is ask for help of Devils child or GrumpyOldMan...
They are the most involved persons..
However, have you tried the previous examples?
:/

regards!


Pinete(Posted 2007) [#89]
Hi!,

How the animation system is coming? some news about?
I hope you've continuing working on it, it was really impressive and promising!!

regards!


Blitzplotter(Posted 2007) [#90]
Impressive piece of 3d trickery... (;-}


Kryzon(Posted 2010) [#91]
Excuse the grave-digging... I take it as nothing usable came out of this, no final product?

Does anybody still have the original demo files (any of the ones listed in this thread)?


EDIT: Big thanks to Yasha for providing me with a copy.

You can download it here: http://www.easy-share.com/1909120133/B3X_Demo.rar