Features

Hauptfeatures

Irrlicht - Features

Irrlicht - Features

Irrlicht - Features

Irrlicht - Features

  • Sehr schnelles Echtzeit 3D-Rendering mit DirectX, OpenGL oder einem eigenen Software-Renderer
  • Plattformunabhängig, läuft unter Windows, Linux und Mac.
  • Riesige integrierte und erweiterbare Material-Bibliothek mit Vertex- und Pixel-Shader-Unterstützung..
  • Problemloses Kombinieren von Indoor- und Outdoor-Welten
  • Extrem anpassbares Szenen-Management
  • Charakter-Animationssystem mit Bones
  • Partileleffekte, Lightmaps, Weltentexturierung, stencil shadows, und viele andere Special-Effekte
  • .NET-Unterstützung, wodurch Irrlicht in allen .NET-Sprachen wie C#, VB und Delphi.NET genutzt werden kann.
  • Zwei integrierte Software-Renderer, mit verschiedenen Spezialgebieten (Geschwindigkeit vs. Qualität), welche alles unterstützen, was man bei der Spieleentwicklung braucht
  • Erweiterbare, leistungsstarke aber einfach zu benutzende 2D-GUI mit Buttons, Lists, Edit-Boxen etc.
  • 2D-Zeichenfunktionen wie Alpha-Blending, Text-Befehlen und der Möglichkeit, 2D mit 3D zu mischen.
  • Saubere, einfach zu verstehende und gut dokumentierte API mit vielen Tutorials und Beispielen
  • In reinem C++ geschrieben und komplett objektorientiert
  • Direkter Import von wichtigen Mesh-Formaten wie Maya (.obj), 3DStudio (.3ds), COLLADA (.dae), DeleD (.dmf), Milkshape (.ms3d), Quake 3 levels (.bsp), Quake2 models (.md2), Microsoft DirectX (.X) etc.
  • Direkter Import von allen wichtigen Textur-Formaten : Windows Bitmap (.bmp), Portable Network Graphics (.png), Adobe Photoshop (.psd), JPEG File Interchange Format (.jpg) etc.
  • Einfache und schnelle Kollisionsabfrage
  • Optimierte und schnelle 3D-Mathematik- und Containerlibraries
  • Direkt aus .ZIP-Archiven lesen
  • Integrierten XML-Parser, welcher sehr schnell arbeitet
  • Unicode-Unterstützung für einfache Lokalisierung
  • Arbeitet mit den meisten wichtigen IDEs
  • Irrlicht ist komplett Open Source und komplett kostenlos. Und da die Engine unter der zlib-Lizenz steht, kann man an ihr Bugs beheben, Features einbauen und auch sonst ändern, was man will. Die Änderungen müssen nicht öffentlich gemacht werden.

Spezialeffekte

Irrlicht - Features

Irrlicht - Features

Irrlicht bietet sehr, sehr viele Spezialeffekte, welche alle sehr einfach zu benutzen sind. Der Anwender muss sie in den meisten Fällen lediglich auswählen und zuweisen. Die Engine wird kontinuirlich mit neuen Effekten versorgt, eine Liste mit den aktuell implementierten Spezialeffekten gibt's hier:

  • Realistische Wasseroberflächen
  • Dynamische Schatten
  • Dynamische Schatten, die den Stencil Buffer verwenden.
  • Billboards
  • Bumpmapping
  • Parallaxmapping
  • Transparente Objekte
  • Lightmaps
  • Erweiterbares Partikel-System für Schnee, Feuer, Rauch etc.
  • Spheremapping
  • Textur-Animationen
  • Skyboxen
  • Nebel

Treiber

Irrlicht - Features

Irrlicht - Features

Die Irrlicht-Engine bietet 6 verschiedene Render-APIs. Das sind 5 mehr, als die meisten anderen bieten ;)

  • Direct3D 8.1
  • Direct3D 9.0
  • OpenGL 2.0
  • Irrlicht Engine software renderer .
  • Apfelbaum Software Renderer
  • Null-Device.

Der Programmierer muss nicht einmal wissen, welche API das Spiel verwendet, sodass man den Spieler entscheiden lassen kann. Die Engine muss zu Beginn einmal mitbekommen, welche Engine genutzt wird, der Programmierer muss sich dann um nichts mehr kümmern.

Drei wesentliche Gründe erklären, warum sich die Engine nicht auf einen Renderer beschränkt:

  • Performance - Manche Grafik-Funktionen laufen unter OpenGL schneller, manche unter Direct3D. Der Programmierer (oder der User) kann also frei wählen, was für das Spiel am besten ist.
  • Plattformunabhängigkeit - Direct3D läuft weder unter Linux noch unter Mac (von speziellen Emulatoren einmal abgesehen). Deshalb sind verschiedene Renderer notwendig, um auch unter diesen Systemen die optimale Leistung zu erbringen oder überhaupt etwas darstellen zu können.
  • Treiberprobleme - Ein weit verbreitetes Problem der Computerspiele sind Treiber. Oft stürzt ein Spiel ab, weil die richtigen Treiber veraltet sind oder fehlen. Den Benutzer zwischen den Renderern wählen zu lassen, behebt dieses Problem oftmals.

Materialien und Shader

Irrlicht - Features

Irrlicht - Features

  • Pixel und Vertex Shader 1.1 bis 3.0
  • ARB Fragment und Vertex Programs
  • HLSL
  • GLSL

Plattformen

Irrlicht - Features

Irrlicht - Features

Irrlicht - Features

Die Irrlicht-Engine ist plattformunabhängig, läuft also unter mehr als nur einem System. Die folgenden werden momentan unterstützt:

  • Windows 98, ME, NT 4, 2000, XP, XP64
  • Linux
  • MacOS
  • Sun Solaris/SPARC

Weitere Plattformen sollen folgen, sind aber momentan noch nicht integriert.

Um ein Spiel auf verschiedenen Plattformen lauffähig zu machen, muss nicht eine Zeile Code geändert werden. Das Programm muss lediglich unter dem jeweiligen System neu kompiliert werden.

Szenen-Manager

Irrlicht - Features

Irrlicht - Features

Das Rendern in der Irrlichtengine erfolgt über einen Szenen-Manager, dessen Elemente hierarchisch aufgebaut sind. Sogenannte Szenenelemente (Knoten) können anderen Szenenelementen unterstellt werden, wobei die Kindelemente ihren "Eltern" sogar bei Bewegungen folgen, ihren Drehwinkel anpassen und sogar Kollision berechnen. Ein Szenenelement ist zum Beispiel die Kamera, ein ganz normales Mesh wie z.B. ein Haus, ein Indoor oder Outdoor-Level, eine Bone-Animation, bewegtes Wasser und vieles, vieles mehr.
So kann die Irrlichengine Indoorlevel beliebig mit Outdoorlevel kombinieren, und gibt dem Programmierer somit die volle Kontrolle über die Szene, da er jeder Zeit ein beliebiges Szenenelement, ein Mesh, und Texturlader oder ein GUI-element hinzufügen kann.

Charakter-Animation

Irrlicht - Features

Aktuell sind bereits zwei Methoden der Charakteranimation integriert:

  • Morph target animation: Meshs werden linear von einem Frame zum anderen "abgespielt". So macht es z.B. Quake. Das ist die einfachste, aber bei komplizierten Meshes etwas unpraktische Möglichkeit der Animation.
  • Bone-Animation: Hier ist alles in "Knochen" (Bones) unterteilt. So kann ein Objekt, bzw. die Animation, später sehr einfach erweitert werden.

Auch hier muss der Programmierer nicht unbedingt wissen, welche Methode er nutzt. Er muss einfach die Datei laden und je nach Dateityp entscheidet Irrlicht sich für eine Methode.

Unterstützte Formate

Irrlicht - Features

Eine Unzahl an Grafik-Formaten wird von der Irrlicht-Engine unterstützt. Diese können dann direkt in das Irrlicht-Programm geladen werden. So spart man sich Aufwand und Zeit, eine Lästige Formatkonvertierung durchzuführen.
Die Liste wird auch ständig erweitert und neue Formate kommen hinzu. Und falls du doch einmal ein Format finden solltest, welches die Irrlicht-Engine nicht unterstützt, dann schreib das doch einfach in das "Feature request"-Forum hier im Portal. Ansonsten kannst du auch dem Irrlicht-Team eine Mail schicken und nach dem Format fragen.

Aktuell unterstüzte Dateiformate :

  • Adobe Photoshop (.psd)
  • JPEG File Interchange Format (.jpg)
  • Portable Network Graphics (.png)
  • Truevision Targa (.tga)
  • Windows Bitmap (.bmp)
  • Zsoft Paintbrush (.pcx)

Aktuell unterstützte Mesh-Formate:

  • 3D Studio meshes (.3ds)
  • B3D files (.b3d)
  • Alias Wavefront Maya (.obj)
  • Cartography shop 4 (.csm)
  • COLLADA (.xml, .dae)
  • DeleD (.dmf)
  • FSRad oct (.oct)
  • Irrlicht scenes (.irr)
  • Microsoft DirectX (.x) (binary & text)
  • Milkshape (.ms3d)
  • My3DTools 3 (.my3D)
  • OGRE meshes (.mesh)
  • Pulsar LMTools (.lmts)
  • Quake 3 levels (.bsp)
  • Quake 2 models (.md2)

Außerdem sind in der SDK Exporter für einige bekannte Formate enthalten (Blender, 3DSMax, Gile[s], ..).