Lightfeather 3D Engine
From Wikipedia, the free encyclopedia
Lightfeather 3d Engine | |
---|---|
Developed by | The Lightfeather team |
Latest release | 0.7.0 / March 21, 2008 |
OS | Microsoft Windows, Linux, Mac OS X |
Platform | Cross-platform |
Genre | 3D graphics engine Application framework |
License | zlib |
Website | www.lightfeather.de |
Lightfeather is a cross-platform open source 3d engine written in C++ using OpenGL for rendering. It has been in development since May 2005 and the first public alpha version was released on October 7, 2005. The project started as a fork of the Irrlicht Engine (see history) but has since been completely rewritten. Applications developed with Lightfeather run on Windows, Mac OS X, and Linux and the zlib license allows usage in commercial projects without the need to release code changes.
Contents |
[edit] Features
Lightfeather includes an exporter script for Blender which allows for models to be written in the Lightfeather file format directly from within Blender. It also includes a model converter with which models from different formats such as .X, .LMTS and .OBJ can be converted into .lfm files.
Lightfeather can easily be incorporated as a rendering widget into applications built with various GUI- libraries such as QT, WxWidgets or native (MFC) Windows applications.
It supports vertex, pixel and geometry shaders written in GLSL or Cg.
There is a paging manager in Lightfeather with the possibility to write custom paging handlers.
Lightfeather includes 3 different terrain implementations for different needs. A terrain based loosely on geomipmapping, a paging terrain with splatting, distance based LOD and quadtree based culling (independent of the paging manager) and a terrain-paging-handler for the paging manager which uses the same file format as the stand-alone paging terrain.
Lightfeather supports skeletal and morphing animations, animation blending and skinning.
The built-in GUI framework is skinnable and two skins are provided with the engine.
Lightfeather has a postprocessing framework, supports High dynamic range rendering and multiple render targets. Sample postprocessing effects included are blooming, Motion blur and black and white rendering.
For scene culling Lightfeather uses a bounding volume tree, supports Portal rendering, octtrees, occlusion culling and PVS.
Lightfeather includes a resource manager which handles all resources needed for rendering ( textures, models, materials, etc.) uniformly and also supports handling of user-defined resources.
The Lightfeather file format enables loading of textures, shaders, materials, meshes, GUI-themes, animations, scenes and postprocesses from a single file. The meshes and models are in a binary file format whereas the rest is in an ascii file format. Additionally there is support for user-defined sections within the ascii based file format to enable users to load their own data through a common mechanism.
A full overview of the features can be found here.
[edit] Tools
A wrapper for the enet network library is included in Lightfeather, a wrapper for the ode physics engine with collision detection support by OPCODE or GIMPACT is available as LFPE, the Lightfeather physics engine. These wrappers combine Lightfeather and the respective libraries so its easy to use them together in a project.
Tools included in the Lightfeather package are a terrain-editor with built-in terrain generator, a particlesystem-editor, a viewer for models in the Lightfeather file format and a guidesigner.
Since January 5, 2008 there is also a scene-editor named feathered available, which allows creation of scenes from objects and loading these scenes later into a program using the engine. Feathered also incorporates a material editor, post-process editor and shader-editor for GLSL shaders.
[edit] History
Lightfeather started as IrrlichtNX, a CVS repository for the Irrlicht engine with patches from the community that were not (yet) integrated into the mainline engine. After a few months, the developers of IrrlichtNX wanted to implement some bigger changes to the engine which would break compatibility and the decision was made to fork development. The project was renamed to IrrlichtNX++ to reflect this change. In May 2005 finally, with a completely new rendering component, added resourcemanagement, own file format and other changes, the differences between Irrlicht and IrrlichtNX++ became too big to still call it a fork of Irrlicht, hence the engine was renamed to the Lightfeather 3D Engine. Nowadays the two engines have, codewise, nothing in common anymore.