Irrlicht3D Xtra Documentation

There is no such thing yet.

Some pointers though:

  • get the IrrlichtTest.DIR file, this is what I am using to implement and test the new features I add to the Xtra, so the syntax in there should be correct for most of the features
  • read the Irrlicht API documentation, either online or offline - almost all methods have been implemented, except for the 2D GUI environment, which I will add soon as well.

I know that this isn’t much.

So if someone wants to help of feels inclined to write up some decent documentation, I would be very grateful.
I also plan to write up demo and tutorial movies for specific features, like lights, meshes, textures, and such.

Some hints:

Setting up a 3D scene
Please keep in mind that the Irrlicht engine works differently than Shockwave3d in that you should specify the desired renderer before any 3D image has been created. The default renderer is Directx3D8, which should be the lowest common denominator.

Once a 3D image has been created (even an empty one), the renderer cannot be changed (unlike Shockwave3D).

So make sure that you do member().videodriver either before the playbackhead hits the first frame of your 3d sprite, or put in the beginsprite handler.

Subsequent calls to this property are not taken into account until the next complete re-creation of the 3d sprite.

Loading a Quake Level map
Here is some code to load a pk3 file (which is in fact a ZIP archive). This example is taken from the demo movie and refers to file “map-20kdm2.pk3″ which resides in the media folder:

s.addZipFileArchive(the moviepath&”media/map-20kdm2.pk3″)
– make zip archive readable (.pk3 is nothing else than a zip file)

quakeMesh=s.getMesh(the moviepath&”maps/20kdm2.bsp”)
– “maps” is an internal folder to the zip file

quakeMap=s.addOctree(”QuakeMap”, quakeMesh,0,-1,128)
– create am Octree based on the map to speed up rendering

quakeMap.setPosition(-1000,-220,-1000)

That’s it. You should see the map now.

Setting up a 3d scene
Make sure you got a 3d sprite image visible (meaning, the device properly initialized) before loading any model.

Unlike to Shockwave3d, the 3D world is currently still tied to the sprite.
As long as it is not visible, only a NULL device renderer has been set up to allow you to tweak the initial values of the real engine you would like to set up.

What it boils down to:
Set up your world in beginsprite. you clear a scene with member().clear() or member().resetWorld().