Small demo of Matrix/Bone Animation
Blitz3D Forums/Blitz3D Programming/Small demo of Matrix/Bone Animation
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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. |
| ||
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. |
| ||
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. |
| ||
good work mongia |
| ||
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? |
| ||
@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 |
| ||
link dead..404 |
| ||
where it says victor/Matrix Anim.zip....that is the file name: Matrix Anim.zip (with a space between Matrix and Anim) |
| ||
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 |
| ||
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. |
| ||
450-500 fps, great. Fullscreen only shows one figure. |
| ||
SELL, SELL, SELL |
| ||
it just gives me a MAV after typing 0,0,0,15 on my work pc. doesn't work in fullscreen or windowed mode. |
| ||
Wait a minute! Where did you get the animated RPG/medieval figure from? I bet there are more of them - sell, sell, sell! |
| ||
Great works @sigi: you need to specify what FPS you want, ie: return means 0 -> 1 man |
| ||
Very impressive, i get 70fps on my 1500 athlon+gf 4200+512mb ram. |
| ||
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! |
| ||
I just get the green screen with my integrated gfx card at 600MHZ I get 5FPS though |
| ||
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 |
| ||
Nice job! |
| ||
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. |
| ||
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 |
| ||
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 |
| ||
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. |
| ||
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. |
| ||
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? |
| ||
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? |
| ||
440 FPS CoreDuo T2500 (2Ghz), 7600Go, 2GB RAM. Settings to 1024x768x32, Fullscreen, 50 Frames on animation (mentioned to be slow?! ^^) Really great. |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
Great! Works 600fps+ on my Geforce Go 7800 gtx, but just green screen (and 500fps!) on my intel Gma 950. |
| ||
It is very impressive, I got 145 fps all around laptop/geforce fx go5350, fullscreen, 25 fps. |
| ||
@GrumpyOldMan Do you plan to release this system for sale? And when it will be ready, if so? |
| ||
I forgot about this thread. Yeh, let's have this thing now. "Grumps" - I don't need the models anymore - I took them myself. |
| ||
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 |
| ||
hey Grumpy, is it freeware or you selling it?? If it is for sell, may I know the price? |
| ||
i was never able to d/l this, always got bad links. |
| ||
Any news Grumpy? |
| ||
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. |
| ||
yeah 'GIZ' the system already |
| ||
Hey, "Cinderella" - he's my dwarf - get your own. |
| ||
im a gonna make you smell purdy, boy |
| ||
Can you put a new demo up? |
| ||
Yes, I am also intrested in this system, But the demo has gone down :( |
| ||
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!! |
| ||
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 |
| ||
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@... |
| ||
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 |
| ||
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! |
| ||
thank for your code is fantastic! gondor_spear.b3x is your format? specific? thanks mongia |
| ||
Thanks Grumpy! |
| ||
I cannot download it! Please, someone have another link?? Thanks a lot! |
| ||
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 |
| ||
I cant run it ! Function dllPeekInt not found |
| ||
of course, you have to copy the userlibs into the blitz userlib dir... |
| ||
Thanks Devil, all working now. |
| ||
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 |
| ||
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! |
| ||
Sorry, solved.... :P Just I was trying to run th example with 1.96 version... :) Now it works perfectly and its impressive!!! regards |
| ||
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 |
| ||
If you are still working on this, It would be really nice to get a much simpler demo with documentation. |
| ||
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! |
| ||
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 |
| ||
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 |
| ||
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!!! |
| ||
please put the new demo into a codebox, and not into that upload thing above. |
| ||
i put that through my code scanner which idented it. then i made a proper freelook function. grumpy: please work on -this- code above :) |
| ||
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! |
| ||
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... |
| ||
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 |
| ||
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. |
| ||
Hi Sokurah You haven't given me much detail. Are there any error messages? What sort of system are you running? Cheers GrumpyOldMan |
| ||
Sokurah, I had the same problem, install 1.98 and all works fine. Install 1.98 and it will run ok. sure. :) Regards! |
| ||
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 |
| ||
i have made a clear demo |
| ||
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! |
| ||
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() |
| ||
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! |
| ||
yeah, i'm allways trying to... but it is not that simple... i made the code as readable as i could ;) |
| ||
The "animation" engine is the last one you could add to the "devil engines" list!!! ;P Think about it!! :)) Regards! |
| ||
I always just get the green screen for some reason with Intel integrated GFX card |
| ||
Are you refering to the background behind of the animated model? I have a green background too, but all works fine for me.. regards! |
| ||
yes, so the mesh is just not visible for me I dont know why, am I doing something wrong? |
| ||
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! |
| ||
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! |
| ||
Impressive piece of 3d trickery... (;-} |
| ||
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 |