Yage3D.net
 

Features

The text of this page was pulled from the Yage wiki entry for Features.

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


Wiki Activity