Multiple scene-graph + camera support
ATM we only have one root node, which can have one active camera.
I'd love the main Render function to take a group node as an argument, so that I can create multiple separate scene graphs, and render each one using a different camera and pipeline configuration. Also, I'd like to be able to render the same scene graph twice in one frame using different cameras (and possibly different pipelines).
Generalisation of 2d/3d
One thing that really bugs me in Horde is that the 2D support seems "tacked on". It's a completely different API to the regular 3D stuff, and has arbitrary restrictions (e.g. only 8 layers) and is based on immediate mode quads (i.e. it's slow).
I would love the 2D API to be thrown away altogether! Instead, if we had
Multiple scene-graph + camera support, we could create a separate scene graph which uses an Ortho (2d) camera, and contains geometry designed for 2D rendering. This would also allow animated 2D objects to be created from Max as usual.
A utility function would be required that constructs H3DG data from simple 2D quads so that the current style of 2D quad creation can still be used.
swiftcoder wrote:
Render To Texture
The ability to set multiple cameras, and render from each in turn with a specific pipeline configuration for each.
This is probably required by my first suggestion.
AcidFaucet wrote:
Threading in the resource manager
would be nice too, and a good step forward for paging, chunk lod terrain, and all other sorts of goodness.
Is threading within Horde actually needed, seeing as the actual resource loading happens within the application/utility code?
The reason that I'm cautious about adding extra threads within Horde is that I am currently creating one thread per hardware core (or 2 threads per hyper-threaded core) for optimal system performance. I've then got a pool scheduler that keeps all of these threads busy at all times.
If I can keep all work that requires threading on the application side, then I can keep the number of context-switches to a minimum, but if horde creates it's own threads then there's going to be more logical threads than hardware threads, causing unnecessary context-switches.