Line 17: | Line 17: | ||
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 | + | 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) |
Revision as of 19: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 ).
The architecture in Cirrus is quite simple and is organized like this :
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)