Made a B3D Loader

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki
afecelis
Admin
Posts: 3075
Joined: Sun Feb 22, 2004 10:44 pm
Location: Colombia
Contact:

Post by afecelis »

just tried your fix, works nice!

About Codeblocks, I got no prob using it, in fact it's my IDE of choice. I guess using just GCC is not a problem, and I like Opengl best so NP there either.

Thanks for your efforts Luke! :D
Luke
Admin
Posts: 449
Joined: Fri Jul 14, 2006 7:55 am
Location: Australia
Contact:

Post by Luke »

afecelis: Well hopefully someone can get my code to work with msvc, that should not be a problem.

jam: yeah, I just thought people could copy and paste, I didn't want it taking up so much room
Luke
Admin
Posts: 449
Joined: Fri Jul 14, 2006 7:55 am
Location: Australia
Contact:

Post by Luke »

Getting there,

Image
afecelis
Admin
Posts: 3075
Joined: Sun Feb 22, 2004 10:44 pm
Location: Colombia
Contact:

Post by afecelis »

OMG OMG OMG OMG OMG!!!!! :shock: :shock: and you added transparency!!

That's looking sweeet! All this advance in just one day? Happy birthday to me! :D
Luke
Admin
Posts: 449
Joined: Fri Jul 14, 2006 7:55 am
Location: Australia
Contact:

Post by Luke »

Added alpha maps, the code is a bit hacky so some mesh may not render right, (can you send me any meshes that don't work)

Image

afecelis, I cannot get your hallway mesh to work right, I'll look at it later.


Here is the updated CAnimatedMeshB3d.cpp and CAnimatedMeshB3d.h.
http://www.uploading.com/?get=AWOKQZFW

I'm having a break for today

edit: also use setMaterialFlag(EMF_LIGHTING, false) on the meshes for now
Last edited by Luke on Sun Jul 23, 2006 6:04 am, edited 1 time in total.
Emil_halim
Posts: 518
Joined: Tue Mar 29, 2005 9:02 pm
Location: Alex,Egypt
Contact:

Post by Emil_halim »

Luke wrote:
Here is the updated CAnimatedMeshB3d.cpp and CAnimatedMeshB3d.h.
http://www.uploading.com/?get=AWOKQZFW
Luke

i did not know how to download from that page where is the download link in the page?

thank you for your great work.
Luke
Admin
Posts: 449
Joined: Fri Jul 14, 2006 7:55 am
Location: Australia
Contact:

Post by Luke »

find the button called "free"

then on the new page type the number and click the "start download button"

I really need my own website, or a better upload site....
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

The patch just required an additional comma in the enum (and renaming the PPC define to __BIG_ENDIAN__), now it compiles without warning. Except for this copy'n'paste mistake everything was fine. But the meshes weren't loading.
vermeer
Posts: 2017
Joined: Wed Jan 21, 2004 3:22 pm
Contact:

Post by vermeer »

kudos for all the success, I encourage you to continue :)


@afe
BTW I wonder if there's an export script to b3d for blender animated characters?
Nope...but there have been several tries...I think there...wait a minute...for some reason I havein my brain that somebody could do it...

Anim8or, another free tool, reported to work in wine, is adding in a beta plugins support for exporter and more stuff...I think a b3d would get out there, tehre was already one, tho...just that can't glue joints to floor yet, no constraints for that...

You personally can do, tho, Afe. I'll tell u the 2 workfows u have:

-Export directly fromMax using the free plugin called Pipeline or something like that....Or...one reported to be greater for characters animated, export as U3d with the free plugin max extras for your max version, there at u3d site, and then, open in u3d, do some fixing if neeed, and export as b3d :) Works like charm.U need to add the u3d plugin to max plugins folders as explained in zip, and also inu3d plugins folder the b3d plugin , downloaded free from u3d site.A plugin is loaded in u3d inside the iterface, once copied. Load plugins, or something like that...download the latest u3d version -the man doesnt stop working..- and latest b3d plugin...

-A third way, Blender based (I know u'r more freak of Blender ;) ) .Export using Ben's latest script -in my sig(besides what I told u with the worm, remember: set the anim to baked PREVIOUS to start animating and so before adding keyframes) , u need that so that the ipo curves get well baked, as the plugin last time I checked only does a linear output(feeet sinking, unnatural floating, non wanted moves, etc) baking does export a keyframe per frame, every bone. Md5 format does export well ipos, no need to bake, but now u need x. Now the x file, should import well in Ultimate Unwrap, tho it needs certain different settings in the exporter, check as allways ben's doc, my signature. Once in u3d, do a fix if neeed, and export as b3d. Of course, you'd have needed for all this to download the b3d plugin and etc.


For levels and its lightmaps...I cant remember all but...LMMAKER, Deled, Giles, Cartography, Slimshady, etc,etc...

b3d allows 4 channels of multitexturing. Bones and weights, and lets hope, that feature I mentioned... ;)

A full round format. before there werent as much tools as today supporting it...
Finally making games again!
http://www.konekogames.com
vermeer
Posts: 2017
Joined: Wed Jan 21, 2004 3:22 pm
Contact:

Post by vermeer »

I have uploaded here
http://www.savefile.com/files/9249461

the last update tehre bellow the green room screenshot...It is full thing, tho being an update, isn't it?



@hybrid
Although it took some time to find this damn small download button I managed it before (otherwise I couldn't have said to prefer a shorter version than one with full source code), but the patch wasn't accessible, I always got timeouts.
I have a bad costume of explaining allways the too obvious things...sorry. ;) (maybe as I was a teacher...)
I was indeed 80% sure it happened so, just in case u werent much about this temp sites, often down...
Finally making games again!
http://www.konekogames.com
vermeer
Posts: 2017
Joined: Wed Jan 21, 2004 3:22 pm
Contact:

Post by vermeer »

pd: can be also the config of security/javascript, or features....in the browsers...

tho, most sure, the hour when u tried, is often there with timeouts...
Finally making games again!
http://www.konekogames.com
afecelis
Admin
Posts: 3075
Joined: Sun Feb 22, 2004 10:44 pm
Location: Colombia
Contact:

Post by afecelis »

ahhhhhh! thanks luke, take a month holiday break; you more than deserve it!! ;) About other meshes with alpha not working, I guess the hallway mesh is a good challenge for you since you say it's not working. Or maybe the trees in the temple level? (is the alpha for the leaves working there?)EDITED: nevermind; I hadn't seen the screenshot where it's working. I was so excited reading that I jumped over it!!!. The funny thing is that all 3 of the examples I sent you were exported from Giles, so if alpha was achieved in "finca" it should work the same in the others (or at least in hallway). MMM, anyway, let me know how else I canhelp improving your loader. :D

ahhhhhhh! thanks Vermeer!
:D

I use the U3d export plugin in max but never used it for animated characters. I've also read some stuff about "pipeline" but it's a bit tricky to get it to work. I'll also look into the blender option as indeed I'm totally addicted to it now; and I remember your worm with constraints thing but lost the files to it and never found the link to it again. Do you remember where you placed it in the forums or got a direct DL link to it?

Many thanks!!
here's a direct link to Lukes update:
http://afecelis.gdlib.net/Irrlicht/B3dloaderUpdate2.zip
Luke
Admin
Posts: 449
Joined: Fri Jul 14, 2006 7:55 am
Location: Australia
Contact:

Post by Luke »

vermeer:

No, that update is not the full thing, I’ll make a full update later.

And can I have a link to some info on the type of spline interpolation your talking about, is it fast enough for games?

hybrid:
I'm not sure why the meshes are not loading,
But I have not tested any the "#ifdef PPC" parts of the code, I don't think "OSReadSwapFloat32" is a real command, I know OSReadSwapInt32 is, does it work with floats?

afecelis:
Thanks


When I get some free time I will try and fix the problem with the hallway mesh (have you tried it, it comes up super bright) and also add transitions between the different animations, (eg from idle to walking) so there is no jump.

I probably will need a custom AnimatedMeshSceneNode to get transitions to work, so at the same time I might make options to move/rotate joints in your code, (eg head) using the custom AnimatedMeshSceneNode, so you could make a head look at the mouse, or hand with gun aim at a target, etc.

Can anyone think of a better way of doing this? I don't have much experience with irrlicht.
vermeer
Posts: 2017
Joined: Wed Jan 21, 2004 3:22 pm
Contact:

Post by vermeer »

I think...I am referring to actually be able to leave intact, to carry the animatio curves information.That is, of course, it depends on if the exporter is also respecting it. Sadly, unsure if pipeline, one of the most known, In max, would help there, as, being blitz3d limited to linear, the plugin authors do instead aovid it...Pipeline plugin seem to be able to take the curves, but it then bakes em into m any keyframes, as they know linear interpolation is what the engine will make... Maybe the pipeline plugin internal code could be of really great help, as I guess it is exactly looking at the spline curves that the artist made for those bones, in the 3dsMax "curve editor"...and which are indeed the key for good animations.

The Piepeline plugin.A b3d exporter for max :
http://www.onigirl.com/pipeline/

here, an example of a plugin porting the curves, for very old max4.

http://members.optushome.com.au/ghra/sc ... slator.mcr


The task would not be to extract the spline curves from the scene, but , in case the max or whatever the package plugin, did extracted those curves, your loader would be respecting and also carrying them, if I explained well...


here, a wikipedia explanation of the types...(but is no use, as I refer to just bring the curves already extracted by the package exporter, being your function only to keep them...)
http://en.wikipedia.org/wiki/Spline_interpolation


here, screenies of blenders animation curves...The thing here would be taking them imported with b3d file (not in the case of Blender, but for example, Max, LW, or Ultimate unwrap...)

http://www.blender.org/cms/Animation_Cu ... 717.0.html

I know md5 Blender exporter does well the task, and is based I think in blender2java or blender2cal...

md5 plugin works great as an exporter for blender.(CODE included, read the python py file with notepad, wordpad or the like..)

http://home.tiscali.de/der_ton/blender2md5.rar

The blender plugin does allow two very important things I have not seen in other weights formats exporters for Blender:

-it takes in consideration the bone pose module of new blender 2.41 and newer...

-it does get the IPO curves from the bones. I have been now looking at the code of the plugin , altho I don't konw how to program, I can read there a getcurves fro ipos sort of code, so I guess it is doing it, besides I could test that visually...

Unluckily, have not been able to find the Pipeline max plugin source code. What it does is take the curves info and bake as a keyframe per frame and bones.

I have seen many formats bringing the spline info and seen right at the engine....


but tru that I dont know if that's actual spline curves extracted files, or baked from curves to keyframes. In the case of the second case, well, you are already doing linear interpolation. It'd be a matter of the artist to just bake all frames as keyframe per every bone in the model, every frame.

Wether that is or is not more heavy in memory, and cpu or gpu, than using just the really keyframes done (an animator tends to use very few, and then manipulate the curves, it's seen usually better, and no problems arise...but if he bakes it, is seen just as smooth...not if he continues editing after that ;) ) and extracting the curves he did....wel I plainly don't know.

True that I have another data: long ago, did seem to me that half life 2 new smd files, which support well weights and all (opposite to old hl1 files) at least importing back into max...it took all frames keyframed!!! As if the exporter would have done so in its moment, or as if the importer did at import time back into max, is my only doubt.

So, thinking it well, it's already done your loader, just the need of bake for the artist of every bone in every frame...i don't know indeed how heavy is that in HD memory nor for the engine. Have you made a test? or the dwarfes hasnt got all baked?if so, weird stuff is to happen.

But I'd love if loaders and plugins just grabbed the curves info.

Ive heard of , art side, artists not needed to care,just exporting as is,...but with that or performance, you put me in doubt if it's the case that then engine loaders, or even the same exporting plugins of the 3d package...actually "bakes" it all per frame...

I dunno, have I been clear?
Finally making games again!
http://www.konekogames.com
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

I've added the loader to the SVN version. Changes by me are just removal of empty lines and some code indentation. Windows users will have to adjust their project files until these are also updated.
Post Reply