Lightfeather 3D Engine
Lightfeather 3D Engine
| |
---|---|
[[Datei:Lua-Fehler in Modul:Wikidata, Zeile 639: attempt to index field 'wikibase' (a nil value)|150px]] | |
Basisdaten
| |
Maintainer | Lua-Fehler in Modul:Wikidata, Zeile 639: attempt to index field 'wikibase' (a nil value) |
Entwickler | Lua-Fehler in Modul:Wikidata, Zeile 639: attempt to index field 'wikibase' (a nil value) |
Erscheinungsjahr | Lua-Fehler in Modul:Wikidata, Zeile 639: attempt to index field 'wikibase' (a nil value) |
Aktuelle Version | Lua-Fehler in Modul:Wikidata, Zeile 639: attempt to index field 'wikibase' (a nil value) (Lua-Fehler in Modul:Wikidata, Zeile 639: attempt to index field 'wikibase' (a nil value)) |
Betriebssystem | Windows, Linux, macOS |
Programmiersprache | Lua-Fehler in Modul:Wikidata, Zeile 639: attempt to index field 'wikibase' (a nil value) |
Kategorie | 3D Grafikengine |
Lizenz | zlib |
www.lightfeather.de |
Lightfeather ist eine plattformunabhängige freie Grafik-Engine, die in C++ geschrieben wird und OpenGL für das Rendern benutzt. Die Engine wird seit Mai 2005 entwickelt, die erste öffentliche Version wurde am 7. Oktober 2005 vorgestellt. Das Projekt startete als eine Abspaltung von der Irrlicht Engine, mit der Zeit wurden aber alle Komponenten von Grund auf neu geschrieben. Anwendungen, die mit Lightfeather entwickelt werden, sind auf Windows, macOS und Linux lauffähig, dabei erlaubt die äußerst liberale zlib license auch die Benutzung in kommerziellen Projekten.
Merkmale[Bearbeiten]
Lightfeather enthält ein Exporterskript, welches es erlaubt, aus der 3D-Software Blender heraus Modelle direkt im Lightfeather-Dateiformat zu schreiben. Außerdem ist eine Software zur Konvertierung von verschiedenen Dateiformaten (z. B.: .X, .LMTS, .OBJ) in das Lightfeather eigene Format enthalten.
Lightfeather kann einfach als Widget in Applikationen eingebunden werden, die mit einer der GUI-Bibliotheken Qt, WxWidgets und MFC entwickelt wurden.
An Shadern werden Vertex-, Pixel- und Geometry-Shader unterstützt, welche in GLSL oder in Cg geschrieben sein können.
Der Pagingmanager in Lightfeather erlaubt die Erstellung von sehr großen Welten, wobei das automatische Nachladen der momentan benötigten (sichtbaren) Daten auch für benutzerdefinierte Daten möglich ist.
Die Unterstützung von drei verschiedenen Terrainimplementierungen ermöglicht Flexibilität und Anpassung an die Bedürfnisse. Eine der Implementierungen wird auch vom Pagingmanager unterstützt. Eine der Implementierungen basiert lose auf dem Geomipmapping-Algorithmus, die beiden Anderen nutzen LOD basierend auf der Entfernung von der Kamera und für das Culling wird ein Quadtree benutzt.
Lightfeather unterstützt sowohl skelettbasierte als auch Morph-Animationen mit Animationsblending und Skinning.
Die eingebaute GUI benutzt Skins/Themes, so dass ein eigener Look für die GUI sehr einfach zu erstellen ist.
Lightfeather enthält ein Post-Processing-Framework, unterstützt HDR und MRT. Als Beispiele für Post-Prozesse sind blooming, motion blur und Schwarzweiß-Filter enthalten.
Für das Culling unsichtbarer Objekte in einer Szene stehen ein bounding volume tree, Portale, Octrees, Occlusion Culling und Potentially visible set (PVS) zur Verfügung.
Der Ressourcenmanager in Lightfeather ermöglicht die gleichartige Behandlung aller Ressourcen (Texturen, Materialien, Modelle) und erlaubt auch das Verwalten benutzerdefinierter Ressourcen.
Das Dateiformat ermöglicht das Laden von Texturen, Shadern, Materialien, Modellen, GUI-Skins/Themes, Animationen, kompletter Szenen und Post-Prozessen aus einer einzigen Datei heraus. Die Modelle und Animationen sind in einem binären Dateiformat gespeichert, wogegen der Rest in einer ASCII-Datei gespeichert wird, um einfaches manuelles Editieren zu ermöglichen.
Werkzeuge[Bearbeiten]
Lightfeather enthält einen Terraineditor, einen Terraingenerator, einen Partikelsystemeditor, einen Modelviewer und einen GUI-Designer.
Die Programmierschnittstelle enthält außerdem einen Wrapper für die enet Netzwerkbibliothek und es gibt ein weiteres, verwandtes, Projekt, welches eine Verbindung zur Physik-Engine ODE herstellt. Diese Wrapper dienen dazu, das Schreiben von Programmen zu vereinfachen, die Lightfeather und eine der genannten Bibliotheken nutzen.
Seit dem 5. Januar 2008 gibt es auch einen Szeneneditor namens Feathered, welcher es ermöglicht, Szenen zu erstellen, die dann später in einem Programm geladen werden können, welches die Lightfeather-Engine benutzt. Feathered beinhaltet zusätzlich einen Materialeditor, einen Editor für Post-Processes und einen Shadereditor für GLSL-Shader.
Geschichte[Bearbeiten]
Ursprünglich wurde das Projekt unter dem Namen IrrlichtNX gestartet, um ein CVS-Repository für die Irrlicht-Engine mit von der Community entwickelten Änderungen zur Verfügung zu stellen, die noch nicht in die Engine integriert waren. Nach ein paar Monaten wollten die Entwickler einige größere Änderungen in die Engine einbringen, die die Kompatibilität mit Irrlicht brechen würden. Deswegen wurde beschlossen, die Entwicklung in eine eigene Engine auszulagern. Um dieses deutlich zu machen, wurde diese neue Engine IrrlichtNX++ genannt. Im Mai 2005 wurde dann eine neue Komponente zum Rendern fertiggestellt, und im Laufe dieser Änderung wurde der ganze Kern der Engine, inklusive Ressourcen-Management, eigenem Dateiformat u. a. neu entwickelt, sodass die Engine nichts mehr mit Irrlicht gemein hatte. Die Entwickler beschlossen, das auch im Namen ersichtlich zu machen, und die Engine wurde ein letztes Mal umbenannt und erhielt den heutigen Namen "Lightfeather".
Weblinks[Bearbeiten]
- Lightfeather Projekt Website
- Liste aller Merkmale auf der Website von Lightfeather
- Engine details
Diese artikel "Lightfeather 3D Engine" ist von Wikipedia The list of its authors can be seen in its historical and/or the page Edithistory:Lightfeather 3D Engine.