Congratulations Lukas:) Amazing piece of 3D parametric shader:) thank You for sharing Your knowledge:)
Great studio. Great game will be.
Maybe ... but dont try to touch it xD
Rendering in the Irrlicht Engine is done using a hierarchical scene graph. Scene nodes are attached to each other and follow each others movements, cull their children to the viewing frustum, and are able to do collision detection. A scene node can for example be a camera, an indoor or outdoor level, a skeletal animated character, animated water, a geomipmap terrain, or something completely different.
In this way, the Irrlicht engine can seamlessly mix indoor and outdoor scenes together, gives the programmer full control over anything which is going on in the scene. It is very easily extensible because the programmer is able to add his own scene nodes, meshes, texture loaders, GUI elements, and so on.
The geometry creator gives easy access to simple geometrical bodies, such as cylinder, cube, etc. Objects can be rendered as polygons, wireframe, or points, using triangles, lines, point and point sprite primitives.
Currently there are two types of character animation implemented:
- Morph target animation: Meshes are linearly interpolated from one frame to the next. This is what is done in the Quake game series, and how the Irrlicht engine does it when importing .md2 and .md3 files.
- Skeletal animation: A skin is manipulated by animated joints. The Irrlicht Engine will do this when loading .ms3d, .x, and .b3d files. It is easily possible to attach objects to parts of the animated model. It is, e.g., possible to attach a weapon to the hand of a model, which will be moved as the hand moves, with only one line of code.
The programmer doesn’t need to know about all this, if he doesn’t want to. All he has to do is to load the files into the engine and let it animate and draw them.
There are lots of common special effects available in the Irrlicht Engine. They are not difficult to use, in most cases the programmer only has to switch them on. The engine is constantly extended with new effects, here is list of effects which are currently implemented:
- Animated water surfaces
- Dynamic lights
- Dynamic shadows using the stencil buffer
- Geo mip-mapped terrain
- Bump mapping
- Parallax mapping
- Transparent objects
- Light maps
- Customizeable Particle systems for snow, smoke, fire, …
- Sphere mapping
- Texture animation
- Skyboxes and skydomes
- Volume Light
Lots of common file formats are supported, and are able to be loaded (and partially also saved) directly from within the engine. In this way, you don’t need to convert your media before using it with the Irrlicht Engine, saving development time. The internal ressource management of Irrlicht provides simple access to all file formats and takes care of fetching already loaded meshes or textures from its own cache instead from disk if the data was already loaded before. The list of all supported formats is constantly growing, and there are many community-made plugins which add new formats without having to recompile the engine.
If you need the Irrlicht Engine to be able to load a file format which it cannot currently handle, simply ask for it by raising a feature request on our issue tracker.
Currently supported textures file formats:
- JPEG File Interchange Format (.jpg, r/w)
- Portable Network Graphics (.png, r/w)
- Truevision Targa (.tga, r/w)
- Windows Bitmap (.bmp, r/w)
- Zsoft Paintbrush (.pcx, r/w)
- Portable Pixmaps (.ppm, r/w)
- Adobe Photoshop (.psd, r)
- Quake 2 textures (.wal, r)
- SGI truecolor textures (.rgb, r)
Currently supported mesh file formats:
- B3D files (.b3d, r, skeleton)
- Microsoft DirectX (.x, r) (binary & text, skeleton)
- Milkshape (.ms3d, r, skeleton)
- Quake 3 models (.md3, r, morph)
- Quake 2 models (.md2, r, morph)
- Irrlicht scenes (.irr, r/w)
- Irrlicht static meshes (.irrmesh, r/w)
- 3D Studio meshes (.3ds, r)
- Alias Wavefront Maya (.obj, r/w)
- Lightwave Objects (.lwo, r)
- COLLADA 1.4 (.xml, .dae, r/w)
- OGRE meshes (.mesh, r)
- My3DTools 3 (.my3D, r)
- Pulsar LMTools (.lmts, r)
- Quake 3 levels (.bsp, r)
- DeleD (.dmf, r)
- FSRad oct (.oct, r)
- Cartography shop 4 (.csm, r)
- STL 3D files (.stl, r/w)
- PLY 3D files (.ply, r/w)