WebGL scene graph hack
JavaScript Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
demos
slides
src
.gitignore
LICENSE
README
bundle.sh
minify.sh

README

Sketching a small WebGL scene graph library

Goals: [- planned, + implemented, x started]
  Put together quick presentation graphics
    x slides/ -- semi-complete HTML slideshow app

  Write documentation
    + matrix.js changes -- glMatrix.js fork
    x gl_util.js -- WebGL utils, DOM utils, Colors, Curves, Klass
    - scenegraph.js -- Basic scene graph
    - scene_util.js -- More advanced stuff, default shaders
    - tar.js -- Tar archive loader
    - obj_loader.js -- Quite incomplete OBJ model format loader
    - bin_loader.js -- Custom binary model format loader

  Make simple things simple
    Drawing text
      + Draw text using the 2D canvas
      + Billboard text (buggy)
      - Extruded text (hmm?)
    Drawing images
      + Load image to textured quad
    Applying post-processing filters
      + Displays with FBO render targets
      + Material system
      - Easy way to chain filters
    Animation
      + Move along Bezier curves & Catmull-Rom splines
      x Animation vocabulary
      - Transformation tweens
    User inputs
      + Default camera navigation
      - Event handlers
    Loading and displaying simple textured models
      x Load archives with model and textures using XMLHttpRequest
      - Multiple lights
    Drawing presentation geometry
      + Quads, mesh quads
      + Fullscreen quads
      x Spheres
      x Cubes, mesh cubes
      x Ring segments, capped rings
      - Capped cylinders
      - Ribbons (along Bezier paths)
      - Dice
      - Layouted arrays of objects (grids, circles, ...)

  Not-so-complex stuff
    x Rewrite scene graph so that it can handle multiple passes easier.
    x Have a structure that's somewhat like this:
      - Display == render target + scene
        - to draw, bind FBO and render scene
        - write a custom draw method to do fancy stuff like envmaps or shadows
      x Camera == perspective & lookat matrices, used by display
      - Light == per-scene list of light attribs, for use in shaders
      x Scene == graph of nodes
      + Node == matrix + model + material + subgraph
      + Model == geometry
      + Material == shader + uniforms

  Complex stuff
    - Shadow maps
    - Depth-peeling
    - Envmaps