Balloon 3D

Bert Freudenberg bert at freudenbergs.de
Mon May 28 12:40:20 UTC 2007


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 -





More information about the Squeak-dev mailing list