Glossary Of Common Terms

Some terms you will need to understand to work with Irrlicht (or any other 3D engine). For longer explanations please use google or checkout Wikipedia.

Model Every 3D figure is a model. They are usually created in an Modeler application like Blender, Max 3D, Maya, etc. Then they are exported in a format which can be read by Irrlicht, like for example obj, x or b3d.

Vertex A corner-point of a polygon. All vertices of a model can be found in the meshbuffers. Usually each vertex is only defined once. Therefore the polygons don't use the vertices directly but use indices to an array of vertices instead. That way one vertex can be shared by several polygons.

Polygon A plane with boundaries which are defined by the vertices. Realtime 3D models are usually made up of lots of polygons. Mostly triangles are used, but it's also possible to have polygons with more corners. The number of polygons which have to be rendered by the engine is one of the major factors which will influence the speed of your application (but not the only one!). A typical human figure might for example have 500 polygons (typical for mass-scenes like you might need them in a rts game), 3000-10000 Polygons (typical FPS) or 50000 Polygons (some application which targets only modern cards or has the need for really detailed humans and not much beside them).

Material The material defines how your polygons will look like. It can define for example how it reacts to light, if it should be rendered one-sided or from both sides and if it should use any textures. If you use textures then the material will know which ones and how many of them are used. The way material-data is used depends on the MaterialType which is set.

Texture An image which is wrapped around your mesh. The exact mapping between your mesh and the image is defined by UV-Coordinates (vertices which have x,y values between 0 and 1).

Meshbuffer A meshbuffer does contain the geometric data (as vertices and indices to them) and exactly one material.

Mesh A mesh contains the data for your 3D models. In Irrlicht it consists of several meshbuffers - one meshbuffer per material. Unless you plan to change meshdata at realtime there is no need to have more than one mesh loaded for a model as you can create lots of scenenodes for one mesh.

SceneNode (often just called Node) Most important is that scenenodes are something that has a position, rotation and scaling. Usually they are used to place 3d models. Beside that they can contain really anything, a soundeffect, a trigger or whatever else might need a position in a 3d world. Several scenenodes can use the same mesh, but it's also possible to give each scenenode it's own copy of a mesh. In a typical 3d application you will load a model once into a mesh and from there one work with scenenodes using that mesh.

Scene A scene contains many scenenodes. So a level in a game is for example a typical scene. The scenenodes are usually organized in some hierarchical scenegraph. So you have one root-node which can have any number of children. Each child can have again any number of children, etc. You can create a scene with an editor (like irrEdit) or hardcode it or use any custom format of your own.