I3DExFinalRenderer Struct Reference
[External Interfaces]

Inheritance diagram for I3DExFinalRenderer:
IMCUnknown TBasicFinalRenderer

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:
Generated on Mon Apr 26 22:47:37 2010 for Carrara SDK Doc by  doxygen 1.6.3