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 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)