Tuesday, March 16, 2010

Retrospective 25/8/2009

Goal : get planets and suns rendering. This requires displaying the render channel strip that the world objects are currently being bound to.

Changed the "DrawScene" update command to actually draw a scene, instead of a render channel strip. This is because the scene has extra stuff like a camera/lens to setup rendering with - it may also have render targets etc. Basically we need to go via the full RenderMethod::standard fn because it does important stuff like clearing the back buffer and calling beginScene()/endScene(). In the end we may not want to use RenderMethod::standard

Split out RenderMethod::standard to ::beginScene and ::endScene

Problem now is the 'debug render channel' uses / clears the depthTexture. Alternatives here:
  • 'debug render channel' only has 'Gui' and 'Console' channels
  • makes old modules (dog fight, architect) not work
  • make them work with the new scene architecture ALL DONE
TODO : get rid of the 'debug render channel' entirely. Instead have this created by main.py, and registered with the appropriate instances.

Got all old modules and new working with the RenderChannelStrip concept

Tried to get lights working, as that will greatly expand the number of objects i can load, i.e. planets.

CURRENT STATUS :
  • no lighting on objects. If you get "MeshPiece" and add a "Lighting" object to it, then the mesh piece will get bound to the light channel
  • currently only the light objects have a "lighting" object. This is actually how it is designed - for deferred lighting

New Scene Library
  • has CameraScene, LightScene, owned by cameras and lights. These have CameraChannelStrips and LightChannelStrips. Those classes setup the appropriate render channels, and when an object is added
  • supports n cameras and n lights

OldScene
  • has a strip and explicitly sets up render channels, combining lights+materials+debug all as one giant strip. Supports 1 camera and 4 lights only.
  • has useful addWorldObject / addMesh fns that the new scene library lacks. However, with the new scene library, try to keep all the data loaded in from scene files and avoid explicitly creating objects wherever possible.

No comments:

Post a Comment