Public Member Functions | |
void | addRenderTechniqueFactory (RenderTechniqueFactory *factory) |
registers a RenderTechniqueFactory | |
float | getMaxJoinRadius () |
retirieves the maximum bounding sphere radius with two SharedRuns can be joined. | |
void | setMaxJoinRadius (float rad) |
sets the maximum bounding sphere radius with two SharedRuns can be joined. | |
void | update (unsigned long frameNumber, RenderTarget *rt) |
The function to be called to render one frame. | |
void | initTechniques () |
searches for RenderTechniques in materials and creates them. | |
Camera * | getMainCamera () |
Returns a pointer to the player camera. | |
Viewport * | getMainViewport () |
Returns a pointer to the viewport attached to the player camera. | |
void | setMainCamera (Camera *camera) |
Sets the player camera. | |
void | setMainViewport (Viewport *viewport) |
Sets the viewport attached to the player camera. | |
void | sharedRunSplit (SharedRuns *old, SharedRuns *new1, SharedRuns *new2) |
The function to be called when a shared run is splitted. | |
void | sharedRunJoin (SharedRuns *old1, SharedRuns *old2, SharedRuns *newsr) |
The function to be called when two shared runs are joined. | |
void | joinSharedRuns () |
Joins shared runs if needed. | |
void | addSharedRuns (SharedRuns *runs) |
Register a shared run object. | |
void | getNearestCausticCasters (Vector3 position, std::vector< OgreSharedRuns * > *nearestcasters, unsigned int maxCount) |
Searches for the nearest object groups (SharedRuns) that are caustic casters from a given point. | |
void | createGlobalRun (RenderingRunType runType) |
Creates a global RenderingRun of the given type. | |
RenderingRun * | getGlobalRun (RenderingRunType runType) |
Returns the global RendderingRun with the given type. | |
void | updateGlobalRun (RenderingRunType runType, unsigned long frameNum) |
Updates a global RenderingRun with the given type. | |
void | createPerLightRun (String lightName, RenderingRunType runType) |
Creates a RenderingRun attached to a lightsource with the given type. | |
RenderingRun * | getPerLightRun (String lightName, RenderingRunType runType) |
Retuns a RenderingRun attached to a lightsource with the given type. | |
void | updatePerLightRun (String lightName, RenderingRunType runType, unsigned long frameNum) |
Updates a RenderingRun attached to a lightsource with the given type. | |
Static Public Member Functions | |
static OgreIlluminationManager & | getSingleton () |
Returns the one and only OgreIlluminationManager instance. | |
Protected Member Functions | |
OgreIlluminationManager () | |
Protected constructor (OgreIlluminationManager is a singleton). | |
virtual | ~OgreIlluminationManager () |
Protected destructor. | |
void | fillVisibleList (RenderQueue *rq) |
Searches for visible renderables with valid TechniqueGroups in a renderqueue. | |
void | createTechnique (IllumTechniqueParams *params, Pass *pass, OgreRenderable *rend, OgreSharedRuns *sRuns) |
creates a specific type of RenderTechnique for a Renderable's pass. | |
BillboardSet * | findRenderableInParticleSystem (ParticleSystem *system) |
A helper function to find the renderable object attached to a particle system (ONLY BILLBOARDSETS ARE SUPPORTED). | |
Protected Attributes | |
std::list< RenderTechniqueFactory * > | techniqueFactories |
registered RenderTechniqueFactories | |
float | maxRad |
The maximum bounding sphere radius that groupped objects ( see SharedRuns class ) can have. | |
Camera * | mainCamera |
The camera attached to the player. | |
Viewport * | mainViewport |
The viewport of the player camera. | |
VisibleFinderVisitor * | visitor |
VisibleFinderVisitor instance. | |
std::vector< const Renderable * > | visibleObjects |
Vector containing visible renderables with valid TechniqueGroups that must be refreshed. | |
std::list< SharedRuns * > | sharedRunRoots |
List containing SharedRuns roots. | |
OgreSharedRuns | globalSharedRuns |
Group of RenderingRuns that are used globaly. | |
std::map< String, OgreSharedRuns * > | perLightRuns |
Stores groups of RenderingRuns that are attached to individual light sources. | |
Static Protected Attributes | |
static OgreIlluminationManager * | instance = NULL |
The one and only OgreIlluminationManager instance. |
|
Register a shared run object. Only called when new techniques are created.
|
|
Creates a global RenderingRun of the given type. If a RenderingRun with the given type already exist there is nothing to do.
|
|
Creates a RenderingRun attached to a lightsource with the given type.
|
|
creates a specific type of RenderTechnique for a Renderable's pass. It searches all registered RenderTechniqueFactories. |
|
Searches for visible renderables with valid TechniqueGroups in a renderqueue.
|
|
A helper function to find the renderable object attached to a particle system (ONLY BILLBOARDSETS ARE SUPPORTED).
|
|
Returns the global RendderingRun with the given type.
|
|
Returns a pointer to the player camera.
|
|
Returns a pointer to the viewport attached to the player camera.
|
|
Searches for the nearest object groups (SharedRuns) that are caustic casters from a given point.
|
|
Retuns a RenderingRun attached to a lightsource with the given type.
|
|
Joins shared runs if needed. Searches the registered shared run roots and join them if necessary (they are close enough). |
|
Sets the player camera.
|
|
Sets the viewport attached to the player camera.
|
|
The function to be called when two shared runs are joined.
|
|
The function to be called when a shared run is splitted.
|
|
The function to be called to render one frame. This is the main refreshing function. It seasrches for visible objects, manages shared runs, updates render techniques and finally renders the scene to framebuffer.
|
|
Updates a global RenderingRun with the given type.
|
|
Updates a RenderingRun attached to a lightsource with the given type.
|
|
Group of RenderingRuns that are used globaly. Some RenderingRuns have only one instance per application (for example scene depth map). These resources are shared between all RenderTechniques. |
|
The maximum bounding sphere radius that groupped objects ( see SharedRuns class ) can have.
|
|
Stores groups of RenderingRuns that are attached to individual light sources. These resources need separate instances for each lightsource ( for example depth shadow maps). They are grouped by the name of the lightsource. |
|
List containing SharedRuns roots. It is the IlluminationManager's task to find the SharedRuns which can be joined. Only the root SharedRuns needs to be checked. |
|
VisibleFinderVisitor instance. Used for adding visible renderables with valid TechniqueGroups to the visibleObjects vector. |