Thursday, December 1, 2011

Great Webgl Canvas Scene Graph

Looks like we might have a winner here: http://labs.hyperandroid.com/animation

The project is called CAAT

From their site:

CAAT in essence is a multi-instance director-based Scene graph manager.
It is multi-instance in the sense that you can set an undefined number of directors up for each web page.
Each director is able to manage different Scenes with different timelines.
The scenes contain a graph of different Actor and Containers which conform the animation elements.
CAAT has some features out-of-the-box among which we can highlight:
  • Seamless zero-coding WebGL and CSS rendering engines.
  • Unlimited number of Scenes per Director.
  • Unlimited number of Actors and ActorContainers per Scene.
  • Hierarchycally applied affine transformations (rotations, scales and translations).
  • Hierarchycally applied alpha composition.
  • Unlimited number of timers per Scene.
  • Ability to define complex paths for translations applied to Actors and ActorContainers.
  • Easing and interpolation functions for affine transformations and alpha transparency application.
  • Homogeneous coordinate system. Each contained Actor will receive correct input coordinates on its coordinate system
    regardless of its parents applied transformations.
  • Abstracted input system, from mouse events to keyboard and accelerometer.
  • Resource management and preloading.
  • Many types of actors supported: Sprites, Shapes, Text, Path, Interpolator, etc.
  • Easily extendable framework.
  • Open Source and MIT Licensed.
  • Performs properly in all major canvas enabled browsers. Internet explorer must be version 9 or greater.
I'm going to add in the fact that the project looks very professional, and extremely useful.  The examples that are provided are very simple in context, and that is a good thing.

One of the many building blocks we need for online multiplayer games is a good solid and easy scene graph implementation.  It is one thing drawing 1000 sprites, it is a whole other thing for your game to know it only has to draw 100 of that 1000 to achieve the same results, but much better frame rates.  Or trying to propagate matrix multiplications down an unlinked chain of objects, it's like trying to hammer in a nail with your forehead without a scene graph.

CAAT looks like something we'll be exploring in the future on here.

No comments:

Post a Comment