Thursday 25 January 2007

So many changes, my head hurts!

As usual, a build up to an exam results in massive stimulation of what I call "Wanting to Code Syndrome" (or WCS for short) and as usual, your truly has been developing VE. So what are the changes?

  • Profile now has a registerable Class-Renderatom situation; Register a class with a RenderAtom and whenever that class is rendered (it has to implement IRenderable), the renderatom you registered with that class gets used.
  • Added RenderAtom.getPriority(); You can now have multiple render atoms that render the same class; the one with the highest priority will be selected. The getPriority() returns a priority based on your hardwares capabilities.
  • Extracted Pass to Pass and ImmutablePass; this allows effects to extend ImmutablePass and not allow the user to override key variables.
  • Removed SceneVisitor.
  • Changed accept(...); in Spatial to traverse(SceneTraverser, int flags). This allows per spatial handling of traversal. Much nicer code.
  • Removed static members in RenderState (i.e. the RenderState type and all that). That is now handled by RenderStateType enum. This has implications on ImmutablePass and StateRenderBin
  • ImmutablePass now has 3 types: AMBIENT, ILLUMINANT or DECAL.
  • AbstractRenderBin now renders AMBIENT passes first of all shapes, followed by ILLUMINANT, followed by DECAL.
  • Added preRenderLogic(Shape, Light) to ImmutablePass. You can do some limited logic before rendering here. (I am considering removing this, but we'll see)
  • LWJGLProfile now registers the RenderAtoms/StateRenderAtoms in the EventQueue.
  • SceneTraverser now also has a render(Canvas) method. The Camera no longer renders, but is used at the SceneTraverser. This has complications for rendering as well as initialising a game.
Now why all those changes? I realised the engine isn't up to scratch yet and now I'm fairly happy with the current code.

3 comments:

Anonymous said...

be sure to make a backup :)

kappa

DarkProphet said...

Hehe. Thanks kappa.

I take it you've experienced WCS too?

Anonymous said...

yup been suffering from WCS for the last month, now that i just finished my last exam 2 days ago, the WCS is gone :)

kappa