On May 28, 2007, at 16:02 , Cesare Marilungo wrote:
Bert Freudenberg wrote:
OTOH, the abstraction that B3D provides is still valuable - I for one wouldn't mind if someone would bring it up to date and add features, in particular because it works on both GL and D3D.
- Bert -
I second that.
Not only for the abstraction layer it provides but also because it would be good to have something more versatile than Croquet, too. Croquet is a really interesting projects (and probably it is the future), but it is designed around the virtual reality paradigm, which is overkill sometimes.
What would be needed to make Balloon3D up to date?
Well, first one would have to check if it still works in 3.9 and 3.10, and adapt it if needed - should not be too hard.
After that it's optimizing (like using newer APIs than DX7) and adding features that someone may need - currently B3D only supports single-textured Gouraud-shaded triangle meshes with Phong lighting and fog, and I think stenciling. This is enough for many eductional and scientific tasks, but for game-engine quality you would have to add at least multi-texturing and texture combining (to allow dot3 bump mapping for example), allowing rendering quality as was standard in about 2004. Vertex shader support would be next on my wish list, which is a bit harder as there is no cross-API standard (except for Cg ... maybe a Cg plugin would be an option). And finally pixel shaders, which require relatively modern graphics boards (whereas vertex shaders can be emulated in the driver).
The bad thing is that all of this requires hacking C code (twice, for OpenGL and Direct3D), inventing new plugin interfaces etc. This is *so* much nicer in Croquet where you do everything from Smalltalk, and for OpenGL only ... But once the low-level work is done it should be relatively simple to use.
Even the software renderer would be interesting if someone would try giving it a bit of assembly-love to make it efficient enough on the OLPC (which has no 3D hardware support at all).
As for higher-level optimizations, I believe B3D does only simple frustum culling if at all. Efficient picking and collision detection would be nice, etc.
And at an even higher level, Wonderland is still interesting but has not seen much improvement since its initial release.
- Bert -