squeak graphic: technical introduction

Martin Kuball MartinKuball at web.de
Tue Jul 29 20:00:28 UTC 2003


Thanks. I guess that will help a bit. Maybe I will be able to add the missing 
line rendering stuff once I understand b3d well enough.

Martin

Am Montag, 28. Juli 2003 23:46 schrieben Sie:
> > > Which book (or books) are you thinking of in particular?
>
> "Computer Graphics: Principles and Practice" (Fooley et. al) is still the
> ultimate reference.
>
> > Good question. On the other hand I'm not looking for an
> > introduction to OpenGL or hidden surface algorithms. I would
> > like to now what's involved on the squeak side to say -
> > render a mesh to make it visible in a scene. What
> > kind of plugins are envolved, etc.
>
> Well, assuming that you know what a rendering pipeline typically looks
> like, it's really straight out of the books:
>
> Pipeline part		Class				Plugin
> Transformation		B3DVertexTransformer*	B3DTransformerPlugin
> Shading			B3DVertexShader*		B3DShaderPlugin
> Clipping			B3DVertexClipper*
> B3DClipperPlugin
> Rasterization		B3DVertexRasterizer*	B3DRasterizerPlugin
>
> (the "*" in the above means including subclasses as the plugin supported
> versions are typically subclasses of the more generic ones, e.g.,
> B3DPrimitiveTransformer, B3DPrimitiveShader, B3DPrimitiveClipper and
> B3DPrimitiveRasterizer). All of these are found in the category
> 'Balloon3D-Kernel-Engine'.
>
> The front-end giving you the API to all of the parts is called
> B3DRenderEngine (what an innovative name, eh?! ;-) and you mostly deal with
> it instead of the individual parts of the engine. Most of the other classes
> involved simply model certain objects you find in 3D environments:
> * Geometry (Balloon3D-Kernel-Meshes)
> * Material and Lights (Balloon3D-Kernel-Lights)
> * Vectors and Matrices (Balloon3D-Kernel-Vectors)
> * Viewing objects (Balloon3D-Kernel-Viewing)
> ...
>
> That's basically it. The only three things I haven't mentioned are:
> * 'Balloon3D-Kernel-Objects' - this contains some sample objects
> * Vertex buffers - those are captured by B3DVertexBuffer,
> B3DPrimitiveVertex and B3DVertexBufferPlugin
> * Acceleration - the accelerator cuts off the entire nicely defined backend
> classes above in order to be able to go as directly as possible to the
> hardware (and it uses some nasty tricks for being able to play well with
> Morphic)
>
> That's it. Not much to it, and pretty much right out of the box ... if you
> know how to construct a viewing matrix, how a lighting model works, and how
> to apply texture mapping ;-) If not, definitely read the graphics bible.
>
> Cheers,
>   - Andreas



More information about the Squeak-dev mailing list