Products ::
Leadwerks Engine :: Models

Leadwerks Engine features support for bone animation, fast hardware skinning, and fast GPU instancing, with support for Autodesk FBX and Collada files. Our model system combines visual meshes with physics bodies and automatic LOD management to create simple and effective object class for most game objects. All objects can cast and receive shadows, and even self-shadow.



Animation
Leadwerks Engine supports bone animation with fast hardware skinning. Animations can be mixed and blended, or combined with programmer input or physics motion. To attach an object to any limb in the mesh hierarchy, simple use the EntityParent command as show below. The attached object will then move with the parent:

EntityParent( gun, FindChild( player, "r_hand" ) );


Skinning
Display dozens of animated figures with our hardware-accelerated GPU skinning technique. Up to 256 bones can be used to make your characters come alive.


Level of Detail
Leadwerks Engine allows up to 16 LOD meshes with automatic management and user-defined detail distances.

Pipeline
The Leadwerks Engine SDK includes a utility to convert Autodesk FBX files to Leadwerks Game Model Format (.gmf) files. Or just call LoadMesh("mymesh.fbx") and the FBX file will be silently converted in the background and loaded. Collada .dae files are also supported.


GPU Instancing
All meshes are drawn in hardware-accelerated batches. Hundreds or even thousands of like objects can be displayed at a very low cost.

Asset Management
All media assets are automatically instanced and managed by the engine. When the user calls LoadMesh("mymesh.gmf") twice, an instance of the reference object is automatically returned and rendered with fast GPU batching. The moment a mesh, model, texture, shader, or material are no longer referenced by the user or any other objects (i.e. a material applied to a mesh) the asset will be deleted from memory. The abstract file system allows the user to load any kind of file without knowing exactly where in the game directory it exists. This is done by specifying the "abstract" file protocol.

For example, the following two lines will both return instances of the same material:

LoadMaterial( "meshes\vehicles\car01.mat" );
LoadMaterial( "abstract::car01.mat" );


Related Lessons:
Read the latest thoughts and ideas from the Leadwerks dev team, and learn about new features and technical details of our technology.

From here you can access our community enhanced documentation center. Constantly updated, this guide features a command reference, video tutorials and hundreds of examples.

This is the place to discuss anything related to Leadwerks technology, showcase your productions and chat with fellow developers.