A running dwarf in Bmax
Miscellaneous Forums/Blitz Showcase/A running dwarf in Bmax
Look!
I have a running dwarf in bmax.
Not running in the screenshot though ;)
The dwarf-model is made by Psionic and the rendering is done with a little help from the Irrlicht engine. :)
Looking nice!
did you import the Irrlicht engine in BlitzMax?
I wrapped a small part of it the same way I wrapped Tokamak.
So I should be able to setup the scene above in Blitz3D & Blitz2D as well.
sounds interresting.. are you going to release the source so we can play with it too?!? :D
Please ?!?!?!,
/Alienforce
Here it is, but It's far from finished.
http://svenberra.net/IrrWrapper.zipI have just wrapped the functions I needed to make the scene above.
The wrapperDll is made with Dev-C++.
Sweenie,
Are you going to "wrapp" the whole engine ??
/Alienforce
Wow, you have self-shadowing in there!
Does that take much of a hit to the frame-rate?
Are you going to "wrapp" the whole engine ??
I'm gonna try at least.
I'm thinking about writing a helpertool to make the wrapping a bit easier/faster (yes, I'm a lazy person).
Wow, you have self-shadowing in there!
Does that take much of a hit to the frame-rate?
With the crappy intel gfxcard I'm using here on my computer at work, yes it does.
Can't wait to get home and try it out on my Geforce 6800 GT.
I really must convince my boss that designing databases in Lotus Notes requires a highend gfx-card. ;)
Frmo a profesional:
Lotus Notes R5 and above require High-end Graphics cards to display the technologically advanced buttons.
..Or..
Maybe not.
[edit]
I can't spell Frmo....
Lotus Notes R5 and above require High-end Graphics cards to display the technologically advanced buttons.
I do believe so. ;)
Add some color to the poor guy's armor. I thought he was in black and white for a moment. :)
Looks great and irlicht is a good choice to add to bmax
@Sweenie - I thought BMax had gotten rid of the need to 'wrap' things like this :(
Why was it necessary here?
I tried to do it without using a wrapper dll but I'm not sure it can be done unless the dll has interfaces in it, like DirectX has.
I tried to access DirectX using the method they used in Powerbasic , and I almost made it(managed to get a DirectX error returncode which means I got contact with the "internal" functions)
But I got "scared" when I realized just how much work it would take to actually create a Directx binding.
But I'm sure someone will eventually do it.
good job so far when I get home im downloading this :) I hope you finish it.
Look really great!!!!
Please continue the wrapping
/Alienforce
sweeny which powerbasic version ?
post some pb sources ?
hmm interesting....
Sweet!
I just downloaded Irrilicht last week for using with DevC++ to try it out, and it seems pretty cool so far!
By the way, do you have any tutorial on how to wrap stuff from C++ (Or another language) to Blitz3D (Or Plus, 2d, ect.)? There are some things I've been dying to use in Blitz. Thanks in advance if that's possible :)
sweeny which powerbasic version ?
post some pb sources ?
Just enter the powerbasic forums and do a search for directx.
I just downloaded Irrilicht last week for using with DevC++ to try it out, and it seems pretty cool so far!
I have checked Irrlicht several times in the past and I think that with the latest release(0.8) it has become a pretty mature engine.
Though I think the media they use in the demos is a little bit on the poor side and that has a tendency to "scare" some people away.
But hey, don't judge a book by it's cover.
By the way, do you have any tutorial on how to wrap stuff from C++ (Or another language) to Blitz3D (Or Plus, 2d, ect.)? There are some things I've been dying to use in Blitz. Thanks in advance if that's possible :)
Try this one...
http://www.blitzbasic.com/Community/posts.php?topic=38319
i thought about wrapping the irr engine but then i said no. its not too much work for me but ill need a good reason to do so. its a powerful engine though.
Hey! Cool! I never saw that before! :D Thanks!
Oooh - I tell you what - I like the way the Dwarf casts a shadow on himself. I want a dwarf. The shadow on his chest looks a bit dodgy though.
hahahaha... yeah, shadowed dwarfs for everyone...
seriously though, nice job Sweenie... very niiice...
you're just interested in wrapping the rendering functionality, right... or are you looking into the whole magilla...
--Mike
Wow, so many 3d engines already for BMax :)
That open-endedness is a great thing.
By the way -- Sweenie, Check your email! :D
Nice job sweenie :)
I suppose just using already made 3rd party engines is a pretty good way to get some decent 3d into bmax.
sweenie any chance of a demo ? I saw the code aboev but the level and dwarf werent included.
The level can be found in the Irrlicht sdk and the dwarf can be found on Psionics freeware models page.
Really cool Sweenie....
Irrlicht seems really good. Please more wrapping :)
I would like to know more about "how to wrapp" do you have any good links... ? Sweenie Tutorial :) ?
/Alienforce
Alienforce,
Check the link a few post above...
Red Ocktober,
I will try to wrap as much as I can.
"Tack så mycket" Sweenie
/Alienforce
"Tack så mycket" Sweenie
Ingen orsak ;)
what functions does this wrapper have right now is it the ones you have in the demo or is it more like particels and shaders
Pleas post if you make any more changes woulde love to see it i think this is great!
Bra jobbat! <-Swedish
Sweenie downloaded the tutorial, Looks like a good starter for wrapping.. Thanks alot for sharing your knowledge.
"Mycket bra jobbat, vill se mer :) " Swedish
/Alienforce
I will try to wrap as much as I can.
great news...
you are now 'the man'!!
--Mike
Well post as soon as you have something more pleas!
I'm currently trying out a more objectoriented way of wrapping irrlicht which means that it won't be very pleasant to use in Blitz3D.
But I believe theduck will cover that part.
Anyway, here is an example on how to load a quake3 map and load a dwarf.
Currently the wrapper only supports dwarves ;)
Import "-lirrwrap"
Include "IrrInclude.bmx"
Local Device:Irr_IrrlichtDevice = CreateIrrlichtDevice(800,600,32,False,False,False)
Local Scene:Irr_SceneManager = Device.getSceneManager()
Local Video:Irr_VideoDriver = Device.getVideoDriver()
Local FileSystem:Irr_FileSystem = Device.getFileSystem()
Local Mesh:Irr_AnimatedMesh = Scene.GetMesh("C:\dwarf\dwarf1.x")
Local Node:Irr_AnimatedMeshNode = Scene.AddAnimatedMeshNode(Mesh)
Local Camera:Irr_CameraNode = Scene.AddCameraNodeFPS()
FileSystem.AddZipFileArchive("C:\q3levels\meatpak\meatpak.pk3")
Local LevelMesh:Irr_AnimatedMesh = Scene.GetMesh("maps\whitemeat.bsp")
Local LevelNode:Irr_SceneNode = Scene.AddOctTreeSceneNode(LevelMesh)
While Device.Run() = True
Video.BeginScene(True,True,Null)
Scene.DrawAll()
Video.EndScene()
FlushMem()
Wend
Device.Drop()
//Edit
Just wanted to mention a little about the method I'm using.
Basically I break down the whole namespace/class structure of Irrlicht into a set of "plain" functions.
I export these functions and create declarations for them in Bmax.
Then in Bmax I reconstruct the whole structure again using Bmax types and methods which call the declared functions.
So far it works pretty well and I will do some performance tests to see if this method have any significant impact on the performance or not.
Wrapping this way is a tremendous amount of work but I'm currently working on a tool that will do this for me.
The wrappertool should theoretically be able to wrap any kind of C++ Api this way but that is a later project.
This is really looking better and better Sweenie..
I like the OO approach on it.. That way, it would be very easy to follow other (C++) tutorials and examples on Irrlicht. :)
have you wrapped some more functions in yet?
Just wondering
Currently the wrapper only supports dwarves ;)
cheeky
Why not Elfs and orchs?
actually... i think they prefer to be called 'little people'...
--Mike
Neither Elfs nor Orcs have beards. Perhaps the wrapper only supports bearded models so far.