From Wakapon
Jump to: navigation, search
Line 14: Line 14:
  
 
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'''.
 
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 '''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 :
 
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
+
* '''Render()''', that performs the rendering of the primitives registered to the technique
* '''CreatePrimitive''', that creates a primitive of the type supported by 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)
+
* '''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)

Revision as of 20:19, 14 September 2010

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)