# TBasicFinalRenderer Class Reference
[Base Classes for plugins]

Inheritance diagram for TBasicFinalRenderer:

List of all members.

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

## Detailed Description

Basic Final Renderer class. Derive from this for a default implementation of I3DExFinalRenderer.

See also:
  I3DExFinalRenderer

## Member Function Documentation

virtual uint32 MCCOMAPI TBasicFinalRenderer::AddRef | ( |  | ) | `[inline, virtual]`

Increments the reference count of the object

Reimplemented from TBasicDataExchanger.

virtual void MCCOMAPI TBasicFinalRenderer::BeginRendering | ( |  | ) | `[virtual]`

Called at the beginning of the rendering of an animation

Implements I3DExFinalRenderer.

virtual void MCCOMAPI TBasicFinalRenderer::CreateRaytracer | ( | I3DExRaytracer ** | raytracer | ) | `[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

Implements I3DExFinalRenderer.

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

Called at the end of the rendering of an animation

Implements I3DExFinalRenderer.

virtual MCCOMErr MCCOMAPI TBasicFinalRenderer::FinishDraw | ( |  | ) | `[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.

Implements I3DExFinalRenderer.

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

Returns a pointer to the rendering statistics object.

Parameters:

  | renderstats | A pointer to next render statistics.

Implements I3DExFinalRenderer.

virtual void MCCOMAPI TBasicFinalRenderer::GetTileRenderer | ( | I3DExTileRenderer ** | tileRenderer | ) | `[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

Implements I3DExFinalRenderer.

virtual boolean MCCOMAPI TBasicFinalRenderer::IsSMPAware | ( |  | ) | `[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.

Implements I3DExFinalRenderer.

virtual void MCCOMAPI TBasicFinalRenderer::OptimizeTileSize | ( | TMCPoint & | inOutTileSize | ) | `[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.

Implements I3DExFinalRenderer.

virtual MCCOMErr MCCOMAPI TBasicFinalRenderer::QueryInterface | ( | const MCIID & | riid,
|  | void ** | ppvObj |
| ) |  |  | `[virtual]`

Check if the object supports a given interface and returns a pointer to that interface if it does. Note that QueryInterface will increment the reference count of the object by one if the interface is found.

Parameters:

  | riid | GUID of the interface
  | ppvObj | A pointer to the pointer being returned.

Reimplemented from TBasicDataExchanger.

virtual void MCCOMAPI TBasicFinalRenderer::RenderBackGround | ( | boolean | enable | ) | `[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

Implements I3DExFinalRenderer.

virtual void MCCOMAPI TBasicFinalRenderer::RenderVolumetrics | ( | boolean | renderEffects | ) | `[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.

Implements I3DExFinalRenderer.

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

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

Parameters:

  | enable | True if the shadows should be separated

Implements I3DExFinalRenderer.

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

Sets the ambient light color

Parameters:

  | ambiantColor | the color of the ambient light.

Implements I3DExFinalRenderer.

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

Specifies the rendering camera.

Parameters:

  | camera | The rendering camera.

Implements I3DExFinalRenderer.

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

Sets up the background, backdrop, and atmospheric shader

Parameters:

  | environment | The specified environment.

Implements I3DExFinalRenderer.

virtual MCCOMErr MCCOMAPI TBasicFinalRenderer::SetFieldRenderingData | ( | int32 | fieldRenderingSettings,
|  | int16 | firstFrame |
| ) |  |  | `[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

Implements I3DExFinalRenderer.

virtual void MCCOMAPI TBasicFinalRenderer::SetLightingDetailOptions | ( | boolean | atmosphereDetails,
|  | boolean | volumePrimitivesDetails,
|  | boolean | volumetricEffectsDetails |
| ) |  |  | `[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

Implements I3DExFinalRenderer.

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

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

Parameters:

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

Implements I3DExFinalRenderer.

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

- BasicFinalRenderer.h