v0.6: ODE physics!

April 9th, 2007

Hi,
here is another update to the Irrlicht Xtra, v0.6, 807Kb in size, and now with the ODE physics engine on board.
Grab the new Xtra, toss it into the Xtras folder of your Director installation, and run the demo movie (make sure you got the media folder right next to it).

Enjoy!

Added methods:
- createPhysics() — initializes the physics engine
- shutdownPhysics() — shuts down the physics engine
- addBody(TYPE, position, rotation, size, density) — adds a model TYPE to the physics simulation - TYPE can be #sphere,#box, #cylinder, #capsule, #character_avatar (for fps cameras) - position. rotation and size are optional vectors, density an optional float describing the mass of the object
- setWorld(TriangleSelection)
- getWorld() — returns the triangleselection which makes up the physics world
- updateWorld() — updates only a segment of the physics world
- collidesRayWithWorld(from,to) — from, to = vectors, returns true or false if a physics world segment is hit
- getBody(idx) — idx is a number>0 and idx - getBodyCount() — returns the number of physics models
- removeBody(idx) — removes the body from the physics engine
- setSimulationHz() — sets the speed of the simulation
- getSimulationHz() — gets the speed of the physics simulation, default is 60
- getType() — returns name of physics engine, now only #ODE
- createPhysicsAvatarAnimator() — ties a fps cam to a physics object so that you can interact with the 3d world

Here is code on how to initialize the physics engine:

wrld=sprite(1).member
cam=wrld.newCamera(”mycam”,#fps)
cam.setPosition(10,50,10)

mdl=sprite(1).quakeMap — just fetching the model from the sprite, nothing 3d here…
mesh=sprite(1).quakeMesh — same here, but for the mesh
— just fetched the model and mesh of the map so that it can be submitted to the triangle selector

triangleSelector=wrld.createTriangleSelector(mesh, mdl)
— got the triangle selector, now doing the assignment

wrld.createPhysics() — create the physics engine
wrld.setWorld(triangleSelector) — submit the quake mesh triangle selector to the engine
wrld.createPhysicsAvatarAnimator(cam,4,2, vector(10,10,75)) — creates a fps cam tied to a physics object with eyeheight 4, density 2 and size vector(10,10,75)

New Xtra v0.52 & Special FX demo movie

February 17th, 2007

Hi,

although it seems as if this blog is not moving, we are still on it. Thanks to Marc-Antoine Bernard-Brunel, we have a new version of the Xtra online (minor changes and additions), as well as a first shot (!) at a transcript of the SpecialFX demo movie from the irrlicht tutorial site as a Director movie. It is not perfect yet, we know, it will be improved.

Those tutorial or demos do also serve as test movies for new implemented feature additions.

More tutorials to come, a special section will be added to this site for it.
Enjoy!

Irrlicht Xtra v0.51

January 5th, 2007

A happy new year everyone!

And to show you that things are still moving on this 3d Xtra, i just put up a new version, v0.51. It has new methods taken from the IMeshManipulator-Interface, like makePlanarTextureWrapping(). See the Irrlicht docs for more info.

The time bomb got removed, so the Xtra can be used infinetely. It has a registration reminder though. The size of the Xtra has dropped to 512Kb only. Either UPX did a great job to crunch the binaries, or I forgot something really important… yet it appears not so, everything seems to be fine.
More stuff to come, I keep adding methods and interfaces.

If you get crashes when starting up the Irrlichttest.dir movie, make sure that the media folder is in the same directory than the movie. That is, that meshes and textures can really be loaded.

Have fun, and a happy 2007!

Xtra is out-of-date, I am aware of it

December 28th, 2006

I am aware of the fact that the Xtra is not working currently. I am working on a new copy that I will soon post on this site.

In the meantime, you can rewind your system clock a couple of months if you would like to test it anyways.

Have fun !

v0.5

September 25th, 2006

New build of the Xtra is up.

DirectX8 as renderer is back in, new sources from the Irrlicht SVN included. Play with it, have fun, and let me know if there is anything broken.

In the meantime, I’ll hook up the new stuff like the sphere creation methods…

UPDATE:

addSphere() was added. Use as shown below:
addSphere(10,32,0,-1,vector(0,0,0),vector(0,0,0),vector(1,1,1))

With 10 being radius, 32 being polyCount, 0 being the parentNode, -1 the internal id, position, rotation and scaling vectors.

irrKlang v0.1

September 25th, 2006

Many interesting things are going on…

First of all, I got to know some interesting 3D developers who will (hopefully) write up some tutorials for the Xtra. Then, i need to iron out the DirectX8 renderer for the Irrlicht engine. Next, there has been some major updates on the Irrlicht site, with irrKlang, a 3D sound engine being the most interesting one.

Taken from its site:

IrrKlang’s current features are:

  • Buffered and streamed audio playback, in 2D and 3D.
  • High level resource management and autodetection: The engine can do everything for you. Just tell it to play a sound file, and it will load, cache and/or stream sound data for you automaticly, depending on what is best for performance and memory usage. But if you want to specify how the engine should handle this, you can do this as well.
  • Extendable: Possibility to write own file format readers/decoders to extend the engine with it.
  • Multi/Singlethreaded modes: The engine can run both multithreaded or singlethreaded in the same thread as your application, to make it possible to debug your application easier for example.
  • Low level audio output manipulation: Possibility to alter any aspect of a playing sound like panning, volume and 3d position.
  • Fast 3D audio on low end hardware: Because some low end audio hardware is not able to play 3D sounds without significant performance loss or some don’t support 3d audio buffers at all, irrKlang has a high performance 3d sound buffer emulator built-in, causing a sound experience nearly as it was a real 3d sound buffer.
  • Advanced file reading support: irrKlang can read directly from compressed zip files, pak files, memory, and everywhere the Irrlicht Engine can. File reading function callback can be overwritten by the user, of course.

Squeezed by UPX, the irrKlang.dll is 208 Kb in size. Added to the Irrlicht Xtra, this would yield to a 3D and 3D sound Xtra under 1 Mb… :-)

New interim build up

September 14th, 2006

Just posted a new version of the Xtra. Just the X32 file though, so no new zip.
The reason being that the DirectX8 renderer has been disabled, and the new code has not yet fully been tested  - okok, actually, not at all, so play at your own risk and do not choose DirectX8 as your renderer.

Have fun!

Expired

September 14th, 2006

Please do not download the current version of the Xtra, it is expired. We are currently fixing some initialization bugs and a new build will be up soon.

Thanks for your patience.

Dev

August 28th, 2006

The development of the Xtra is still ongoing, yet I am working on another project which will pay my bills. In the meantime, another programmer which is a friend of mine is re-working the initialization routine.

So stay tuned, new releases are coming up. I want to wrap this sucker up.

v0.4.9

August 6th, 2006

Pulled down the latest source tree from the Irrlicht SVN server and recompiled it into the Xtra.  I do this as there are intereseting new methods in there, albeit they may not work just yet (like loading and saving a scene, or taking a screenshot) .

What follows is the change file of the Irrlicht 1.1 release, so these are things that you can expect to be in the Xtra. Will wire them up, Xtra is now 684Kb in size.

 

Changes in version Irrlicht 1.1 (??? 2006)

- Added support for making screenshots in all video drivers and a general
possibility to save any IImage to several file formats.
Some image writers are not yet implemented. As a testcase screenshots
are now available in the demo by pressing F9.
This code was contributed by Travis Vitek.

- Changed EAMTS_OCT to EAMT_OCT.

- Improved .3ds and .obj file importers.

- Added support for .b3d (Blitz Basic) submitted by Luke Hoschke and
.pak (Quake archive) files submitted by skreamz.

- Added sky dome implementation contributed by Anders la Cour-Harbo (alc).

- In addition to the Cube scene node (formerly test scene node) there is now also a sphere scene node available,
with an adjustable amount of polygons. Use ISceneManager::addSphereSceneNode to create it.
Thx to Alfaz93 for making available his code on which this node is based on.
Note that both nodes now use default material settings, e.g. lighting is enabled by default.

- Fixed Linux keyhandling for many keys.

- The aspect ratio has been inverted in the matrix, which means when setting a new aspect ratio
for cameras, set it to screen.width/screen.height now instead of screen.height/screen.width
as previously.

- added support for reading/importing binary .x files.

- .ms3d and .x normals are now correctly transformed in animations, bounding
boxes are slightly better transformed, but not yet correct.

- Added possibility to load and save Irrlicht scenes to and from xml files via
ISceneManager::saveScene and ISceneManager::loadScene. Note that not all
scene nodes are supported yet, but most features should already work.

- Bounding box of the Skybox corrected (set to null)

- The SMaterial structure now supports 4 textures. (Currently ignored by the renderers and their materials.)

- Test scene node renamed to CubeSceneNode.

- Added scene node animator factories. This is the same as scene node
factories, but for scene node animators.

- Added scene node factories. This is an interface making it possible to dynamicly
create scene nodes. To be able to add custom scene nodes to Irrlicht and
to make it possible for the scene manager to save and load those external scene nodes, simply
implement this interface and register it in you scene manager via ISceneManager::
registerSceneNodeFactory

- Introduced IMeshSceneNode interface with the possibility to set readonly materials to make
it possible to use the mesh materials directly instead of overriding them. In this way
it is possible to change the materials of a mesh causing all mesh scene nodes
referencing this mesh to change, too.

- Added possibility to load OGRE .mesh files directly, thanks to Christian Stehno who contributed
a loader for this.

- Merged with Irrlicht 1.0 for MacOS

- Added a method getType() to ISceneNodeAnimator.

- There is now a system to serialize and deserialize attributes of scene nodes. In this way
it should be quite simple to to expose the attributes of your scene node for scripting
languages, editors, debuggers or xml serialization purposes.

- Irrlicht containers and strings now have allocators, making it possible to
use them across .dll boundaries.

- Changed the name of scene nodes from wide character to to char* for speed and memory reasons.

- Renamed IStringParameter class to IAttributes and enhanced it to be able to
serialize its content into and from xml.

- Textures now have a method getName().

- Added the methods getTextureCount() and getTextureByIndex() to IVideoDriver.