Features
From Yage3D Wiki
Contents |
[edit] Features
- Written using highly cross platform code that supports Windows and Linux. There are no major hurdles to supporting other platforms as well.
- Liberal LGPL license.
- Speed. Even in its early state, Yage can support tens of thousands of objects with thousands on screen at any given time. Yage is also highly multi-threaded in order to take advantage of multi-processor machines.
- Documentation. Although tutorials won't be written until more features are implemented, classes and methods are well documented with frequent examples.
- Modularity. Yage is extremely well organized into packages and modules with good coupling and cohesion. Interdependencies between packages are minimal.
[edit] Scene Graph
- Multithreaded - Each scene graph executes asynchronously in its own thread.
- Basic Physics (position, rotation, velocity, angular velocity, scaling). The Bullet Physics library will eventually be used.
- Lights, sounds, cameras, sprites, 3D models, and more all exist as nodes in the scene graph.
[edit] Sound System
- Supports wav and ogg vorbis file playback.
- All audio decoding/queueing/playback occurs in a separate thread.
- Complete positional 3D audio support with quadratic attenuation and Doppler.
- Uses an OpenAL backend to ensure maximum portability.
- Supports an unlimited number of virtual sound sources and only those close/loud enough to be heard will be played.
[edit] Rendering
- Uses vertex buffer objects to ensure maximum rendering speed.
- Automatically calculates which lights most influence each object in the scene graph and enables/disables them as necessary.
- Each camera renders to a texture to easily allow compositing effects.
- Uses an OpenGL backend to ensure maximum portability.
- Collada FX will eventually be used for easy materials authoring using programs such as Nvidia's FX Composer.
[edit] Resource Management
- Smart resource manager loads a resource once and returns cached resource upon additional requests.
- Supports textures, materials, shaders, models, sounds, and fonts.
- Supports a wide variety of texture formats, including png, jpeg, gif, bmp, pcx, targa, tiff, and more.
[edit] User Interface
- Mirrors the implementation of the scene graph but with 2D elements
- Supports a subset of CSS for styling elements.
- Pixel and percend units are both supported.
- TrueType font support via FreeType.
[edit] Notably Missing Features
See the Roadmap for a list of completed and planned features. Since Yage is still early in development, the following notable features are still absent.
- Collision physics
- Level loading / portal culling
- Good terrain support
- Good skeletal (character) animation support.
- Model LOD
- User interface widgets
- Picking (selecting a 3D object from a mouse click)
- Shadows

