TenGine® middleware features
- PC DirectX® 9
- PC DirectX® 11
- Playstation® 3
- Playstation® Vita
- TenGine format world loader that loads and creates meshes, sub meshes and materials.
- Portal and frustum culling to skip rendering meshes that are not visible.
- TenGine format model loader that loads and creates meshes, sub meshes and materials.
- Frustum culling to skip rendering meshes that are not visible.
- Camera class that calculates all camera matrices and the frustum.
- Supports 2D ortho, 3D ortho and perspective projection matrices.
- Camera manager class for keeping track of multiple cameras.
- Light manager class that keeps track of lights and their states.
Vertex and index buffers
- Texture manager that keeps track of loaded textures with a reference counter.
- PC and PS3™: Supports loading DDS and TGA textures
- PSVita: Supports loading GXT textures
- Material class that keeps track of textures, colors and shaders.
- Cross-platform vertex and index buffer management.
- Shader manager that keeps track of loaded shaders with a reference counter.
- Ability to have different shaders and render callbacks on a per material basis.
- Collision class using KDTree collisions (line and sphere) against both world and model meshes.
- TenGine format animation loader
- PC and PS Vita: GPU / CPU skinning on skeletal animations.
- PS3™: CPU / SPU skinning on skeletal animations.
- Sub-hierarchical animations.
- Animation blending.
- Cross-platform thread class.
- Cross-platform mutex class.
- 2D, 3D, 4D Vector classes, a Quaternion class and a Matrix class.
- Math header with assembler versions of useful math functions for faster calculations.
- Easy to use converter to create TenGine format files from *.fbx files.
Sound, music and video
- Easily integrated with commercial physics engines.
- Easily integrated with commercial sound engines.
- File management class for loading files etc.
- Plugin support.
- Transform hierarchy system that allows making hierarchies of models, meshes, joints, cameras, lights and anything else that has a transform.
- Macros for endian swapping.
- Log listener system with builtin support for logging messages to console and txt files.
- Assert functions that can specify if it should Break, Log or do nothing.
- Memory manager that keeps track of all allocated memory and tries to catch buffer under/overruns.
- Console Plugin. For enabling dropdown console with programmable commands.
- Input plugin. Easy to use input checking plugin.
- Skydome Plugin. For rendering a skydome with custom shader.
- Sun Plugin. For calculating the sun position based on location, date and time.
- UV Animation plugin. Easy to use plugin for animating UV Coordinates.
- Window Plugin. To be able to setup a Window easily.