From Wakapon
Revision as of 19:19, 14 September 2010 by Patapom (talk | contribs)
Jump to: navigation, search

Cirrus, as well as being high altitude clouds is also my high-level Nuaj wrapper also available at the same SVN repository as Nuaj here.

It's loaded with cool stuff like a FBX scene importer that allows you to load any FBX scene from your favorite 3D package like 3DS Max and Maya into a Cirrus scene that can later be saved as a unit using the (quite lousy) Cirrus proprietary format.

Cirrus is not a 3D engine filled with humongous amounts of code and 3rd party libraries : as for Nuaj its sole purpose is to ease the development of 3D projects so you can quickly come up with a 3D application that fills your needs (and some polygons at the same time, mirf hirf hirf S1.gif).


The architecture in Cirrus is quite simple and is organized like this :

Cirrus Renderer.png


Structures

There's nothing much to say about the Renderer and the Pipelines, a Renderer is (usually) a singleton (although you can create as many as you like) that contains a collection of pipelines which, in turn, contain a collection of RenderTechniques. The RenderTechniques on the other hand are quite interesting as they are the main render units that actually draw the polygons.

The base RenderTechnique class contains 3 abstract methods that need to be implemented :

  • Render(), that performs the rendering of the primitives registered to the technique
  • CreatePrimitive(), that creates a primitive of the type supported by the technique
  • GetPrimitiveInfos(), that returns the informations about a primitive supported by the technique (basically, its name, vertices/indices count and the content of the vertex/index buffers for serialization)