# I3DExFinalRenderer Struct Reference
[External Interfaces]

Inheritance diagram for I3DExFinalRenderer:

List of all members.

## Public Member Functions
virtual MCCOMErr MCCOMAPI | SetTreeTop (I3DShGroup *treeTop)=0
virtual MCCOMErr MCCOMAPI | SetCamera (I3DShCamera *camera)=0
virtual MCCOMErr MCCOMAPI | SetEnvironment (I3DShEnvironment *environment)=0
virtual MCCOMErr MCCOMAPI | SetAmbientLight (const TMCColorRGB &ambiantColor)=0
virtual MCCOMErr MCCOMAPI | SetFieldRenderingData (int32 fieldRenderingSettings, int16 firstFrame)=0
virtual void MCCOMAPI | GetRenderStatistics (I3DRenderStatistics **renderstats)=0
virtual MCCOMErr MCCOMAPI | PrepareDraw (const TMCPoint &size, const TBBox2D &uvBox, const TBBox2D &productionFrame, boolean(*callback)(int16 vv, void *priv), void *priv)=0
virtual MCCOMErr MCCOMAPI | FinishDraw ()=0
virtual boolean MCCOMAPI | IsSMPAware ()=0
virtual void MCCOMAPI | RenderVolumetrics (boolean renderEffects)=0
virtual void MCCOMAPI | RenderBackGround (boolean enable)=0
virtual void MCCOMAPI | SeparateShadow (boolean enable)=0
virtual void MCCOMAPI | OptimizeTileSize (TMCPoint &inOutTileSize)=0
virtual void MCCOMAPI | GetTileRenderer (I3DExTileRenderer **tileRenderer)=0
virtual void MCCOMAPI | BeginRendering ()=0
virtual void MCCOMAPI | EndRendering (boolean aborting)=0
virtual void MCCOMAPI | CreateRaytracer (I3DExRaytracer **raytracer)=0
virtual void MCCOMAPI | SetLightingDetailOptions (boolean atmosphereDetails, boolean volumePrimitivesDetails, boolean volumetricEffectsDetails)=0

## Detailed Description

The final renderer is the component that takes care of the rendering of an frame. It is driven by the rendering module that takes cares of all the high level tasks (animation, tiling, multithreading...).

See also:
  I3DExGBufferRenderer
  I3DExTileRenderer

## Member Function Documentation

virtual void MCCOMAPI I3DExFinalRenderer::BeginRendering | ( |  | ) | `[pure virtual]`

Called at the beginning of the rendering of an animation

Implemented in TBasicFinalRenderer.

virtual void MCCOMAPI I3DExFinalRenderer::CreateRaytracer | ( | I3DExRaytracer ** | raytracer | ) | `[pure virtual]`

Returns a pointer to a Raytracer (or Lighting Model). This function should only be called after PrepareDraw and before FinishDraw. You cannot keep the raytracer between two frames, you need a new raytracer for each frame.

Parameters:

  | raytracer | The pointer to the raytracer that is returned

Implemented in TBasicFinalRenderer.

virtual void MCCOMAPI I3DExFinalRenderer::EndRendering | ( | boolean | aborting | ) | `[pure virtual]`

Called at the end of the rendering of an animation

Implemented in TBasicFinalRenderer.

virtual MCCOMErr MCCOMAPI I3DExFinalRenderer::FinishDraw | ( |  | ) | `[pure virtual]`

Called at the end of the rendering of each frame. You can use this function to delete the temporary rendering caches.

Note, that it is called only once even in SMP.

Implemented in TBasicFinalRenderer.

virtual void MCCOMAPI I3DExFinalRenderer::GetRenderStatistics | ( | I3DRenderStatistics ** | renderstats | ) | `[pure virtual]`

Returns a pointer to the rendering statistics object.

Parameters:

  | renderstats | A pointer to next render statistics.

Implemented in TBasicFinalRenderer.

virtual void MCCOMAPI I3DExFinalRenderer::GetTileRenderer | ( | I3DExTileRenderer ** | tileRenderer | ) | `[pure virtual]`

Creates a new tile renderer. This function is called after PrepareDraw() and before FinishDraw().

Note that you should always return a new renderer if your renderer is SMP compliant since tile renderer is created for each rendering thread.

Parameters:

  | tileRenderer | A pointer to the tile renderer created

See also:
  I3DExTileRenderer

Implemented in TBasicFinalRenderer.

virtual boolean MCCOMAPI I3DExFinalRenderer::IsSMPAware | ( |  | ) | `[pure virtual]`

Returns True if the renderer supports SMP (multiprocessors) which means that several tiles can be rendered at the same time in different preemptive threads.

You should returns false if the renderer does not support reentrant calls.

Implemented in TBasicFinalRenderer.

virtual void MCCOMAPI I3DExFinalRenderer::OptimizeTileSize | ( | TMCPoint & | inOutTileSize | ) | `[pure virtual]`

Optimize the size of the tiles for rendering speed by increasing the tile if necessary

Parameters:

  | inOutTileSize | Should contain the proposed tile size when the function is called. Contains the optimized tile size when the function returns.

Implemented in TBasicFinalRenderer.

virtual MCCOMErr MCCOMAPI I3DExFinalRenderer::PrepareDraw | ( | const TMCPoint & | size,
|  | const TBBox2D & | uvBox,
|  | const TBBox2D & | productionFrame,
|  | boolean(*)(int16 vv, void *priv) | callback,
|  | void * | priv |
| ) |  |  | `[pure virtual]`

Called at the beginning of the rendering of each frame. You can use it to precalculate and store some information that will be needed for each tile of the frame. For example you can get the list of the instances and some information about them.

Note: this function is called only once per frame even in SMP (multi processor mode).

If you want to use the shadow features of the lights you want to initialize them here by calling I3DExShadowFeature::BeginRenderFrame on each of them.

Parameters:

  | size,: | Size of the image to render in pixels
  | uvBox,: | uvBox is the is the box in screen coordinates (camera uv) corresponding to the image being rendered. Note that it is not always within the Production Frame (For example, when you do a Test Render in the Assemble room).
  | productionFrame,: | The box in screen coordinates (camera uv) corresponding to the Production Frame (the image being rendered in final rendering). You can use this parameter to make sure that the size of some effects does not change when you use the Test Render tool. (For example, when you do a Test Render of the backdrop which expects screen coordinates between 0 and 1 matching the Production Frame.)
  | callback | Not Used. Should be NULL
  | priv | Not Used. Should be NULL

virtual void MCCOMAPI I3DExFinalRenderer::RenderBackGround | ( | boolean | enable | ) | `[pure virtual]`

Turn on/off the rendering of the background of the image. (When the background rendering is turned off it should be black). This is used for alpha channel rendering/compositing. By "background" it is meant anything that is not hidden by an object, so backdrop, background, ...

Parameters:

  | enable | True if the background should be rendered

Implemented in TBasicFinalRenderer.

virtual void MCCOMAPI I3DExFinalRenderer::RenderVolumetrics | ( | boolean | renderEffects | ) | `[pure virtual]`

This call is called by the shell to enable/disable the rendering of volumetric effects (like light cones and light spheres)

Parameters:

  | renderEffects | True if the volumetric effects should be rendered.

Implemented in TBasicFinalRenderer.

virtual void MCCOMAPI I3DExFinalRenderer::SeparateShadow | ( | boolean | enable | ) | `[pure virtual]`

Turn on/off separation of the shadow in lighting computation.

Parameters:

  | enable | True if the shadows should be separated

Implemented in TBasicFinalRenderer.

virtual MCCOMErr MCCOMAPI I3DExFinalRenderer::SetAmbientLight | ( | const TMCColorRGB & | ambiantColor | ) | `[pure virtual]`

Sets the ambient light color

Parameters:

  | ambiantColor | the color of the ambient light.

Implemented in TBasicFinalRenderer.

virtual MCCOMErr MCCOMAPI I3DExFinalRenderer::SetCamera | ( | I3DShCamera * | camera | ) | `[pure virtual]`

Specifies the rendering camera.

Parameters:

  | camera | The rendering camera.

Implemented in TBasicFinalRenderer.

virtual MCCOMErr MCCOMAPI I3DExFinalRenderer::SetEnvironment | ( | I3DShEnvironment * | environment | ) | `[pure virtual]`

Sets up the background, backdrop, and atmospheric shader

Parameters:

  | environment | The specified environment.

Implemented in TBasicFinalRenderer.

virtual MCCOMErr MCCOMAPI I3DExFinalRenderer::SetFieldRenderingData | ( | int32 | fieldRenderingSettings,
|  | int16 | firstFrame |
| ) |  |  | `[pure virtual]`

Deprecated:
  Initializes FieldRendering for video output. This function is called once before the rendering starts. If FieldRendering is on, the rendering Module will render twice as many frames as it will output, then it will mix the even and odd lines from two frames to build one frame.

Parameters:

  | fieldRenderingSettings | Not documented
  | firstFrame | Not documented

Implemented in TBasicFinalRenderer.

virtual void MCCOMAPI I3DExFinalRenderer::SetLightingDetailOptions | ( | boolean | atmosphereDetails,
|  | boolean | volumePrimitivesDetails,
|  | boolean | volumetricEffectsDetails |
| ) |  |  | `[pure virtual]`

Sets the lighting details options used for multipass rendering

Parameters:

  | atmosphereDetails | True if it wants atmosphere details
  | volumePrimitivesDetails | True if it wants volume primitive details
  | volumetricEffectsDetails | True if it wants volume effect details

Implemented in TBasicFinalRenderer.

virtual MCCOMErr MCCOMAPI I3DExFinalRenderer::SetTreeTop | ( | I3DShGroup * | treeTop | ) | `[pure virtual]`

Specifies which tree needs to be rendered (generally the universe).

Parameters:

  | treeTop | A pointer to the top of the tree hierarchy.

Implemented in TBasicFinalRenderer.

The documentation for this struct was generated from the following file:

- I3dExFinalRenderer.h