Public Member Functions | Public Attributes

FBRenderer Class Reference

This reference page is linked to from the following overview topics: MotionBuilder 2013, FBSystem - The System Class, FBCamera - Cameras.


Search for all occurrences

Detailed Description

Open Reality renderer interface.

Definition at line 270 of file fbrenderer.h.

#include <fbrenderer.h>

Inheritance diagram for FBRenderer:
Inheritance graph
[legend]

List of all members.

Public Member Functions

  FBRenderer (HIObject pObject)
  Constructor.
void  SetViewport (int pX, int pY, int pW, int pH)
  Must be called before inputing if the same renderer is used on multiple views/cameras in the same application.
bool  RenderBegin (int pX, int pY, int pW, int pH)
  RenderBegin.
bool  RenderEnd (HFBView pView=NULL)
  RenderEnd.
bool  PreRender (int pLayer=-1)
  PreRenders one frame (needed for some shaders) This functions destroys the frame buffer content and must be called every time a render is called the typical order of call must be Renderer->Prerender // at this point the frame buffer is garbage -Clear the ogl -Do your render functions Renderer->Render.
bool  Render (int pLayer=-1)
  Renders one frame.
bool  SetViewingOptions (FBViewingOptions &pOptions)
  Set the viewing options.
FBViewingOptions GetViewingOptions ()
  Obtain the current viewing options.
bool  FrameCurrentCameraWithModels (bool pAll)
  Frame the current camera either with all models or with the currently selected models.
bool  MouseInput (int pX, int pY, FBInputType pInputType, int pButtonKey, FBInputModifier pModifier, int pLayer=-1)
  Mouse input.
bool  MouseInputNormalized (float pX, float pY, FBInputType pInputType, int pButtonKey, FBInputModifier pModifier, int pLayer=-1, int pPaneId=-1)
  Mouse input.
bool  Pick (int pX, int pY, FBPickInfosList &pPickInfosList, bool pNeedIntersectPosition=false)
  Object picking selection.
bool  PickNormalized (float pX, float pY, FBPickInfosList &pPickInfosList, bool pNeedIntersectPosition=false, int pPaneId=-1)
  Object picking selection.
bool  RectPick (int pX1, int pY1, int pX2, int pY2, FBPickInfosList &pPickInfosList)
  Object rectangle selection.
bool  RectPickNormalized (float pX1, float pY1, float pX2, float pY2, FBPickInfosList &pPickInfosList, int pPaneId=-1)
  Object rectangle selection.
void  KeyboardInput (FBDeviceKeyboardKey pKeyIndex, bool pKeyState, bool pIsTrigger=false)
  Keyboard input.
FBModel GetDisplayableGeometry (int pIndex)
  Get the diplayable geometry model.
FBLight GetDisplayableLight (int pIndex)
  Get the diplayable light.
const FBModelList GetDisplayableGeometryInCameraFrustum (FBModelList *pModelList=NULL, FBCamera *pCamera=NULL)
  Get a list of displayable geometry inside given camera's frustum.
bool  IsModelInsideCameraFrustum (FBModel *pGeometry, FBCamera *pCamera=NULL)
  To tell if given model is located inside camera's frustum.

Public Attributes

FBPropertyCamera  CurrentCamera
  Read Write Property: Current camera.
FBPropertyBool  UseCameraSwitcher
  Read Write Property: Activate/Deactivate usage of camera switcher for the first model view of main viewer.
FBPropertyManipulatorTransform  ManipulatorTransform
  Read Only Property: Manipulator responsible of moving objects
FBPropertyListManipulator  Manipulators
  List: of manipulators.
FBPropertyScene  Scene
  Read Write Property: Scene that the renderer will use/draw
FBPropertyBool  AutoEvaluate
  Read Write Property: Indicate if a call to RenderBegin will also cause a re-evaluation of the scene.
FBPropertyBool  Background
  Read Write Property: The renderer.
FBPropertyBool  ShowStats
  Read Write Property: Show the stats about FPS, Evaluation rate ...
FBPropertyBool  FrustumCulling
  Read Write Property: Turn on/off the early frustum culling optimization.
FBPropertyBool  DisplayNormals
  Read Write Property: Display model normals in main viewer.
FBPropertyBool  IDBufferPicking
  Read write Property: Use ID (Color) Buffer for picking, instead of OpenGl selection buffer picking.
FBPropertyDouble  IDBufferPickingAlpha
  Read write Property: Those Semi-transparent (Alpha Blend) geometry(region) contribute less than this threshold, will be considered as invisible during ID picking.
FBPropertyBool  IDBufferDisplay
  Read write Property: Render Model's unique Color ID into color Buffer (used for picking)
FBPropertyBool  SelectionOverride
  Read write Property: Add transparent color override layer on selected models if true.
FBPropertyDouble  SelectionOverrideTransparency
  Read write Property: Selection override layer transparency.
FBPropertyColor  SelectionOverrideColor
  Read write Property: Selection override layer color.
FBPropertyInt  DisplaySetUpdateId
  Read Only Property: Current DisplaySet Update Id.
FBPropertyInt  RendererUpdateId
  Read Only Property: Current Render Update Id.
FBPropertyInt  DisplayableGeometryCount
  Read Only Property: Displyable geometry count.
FBPropertyInt  DisplayableLightCount
  Read Only Property: Displyable light count.
FBPropertyBool  AdvancedMaterialMode
  Read write Property: Turn on/off advanced material setting UI widgets.

Constructor & Destructor Documentation

FBRenderer ( HIObject  pObject )

Constructor.

Client code cannot instantiate objects of this class. The FBSystem and FBScene classes provide access to the current renderer.

Parameters:
pObject For internal use only.

Member Function Documentation

void SetViewport ( int  pX,
int  pY,
int  pW,
int  pH 
)

Must be called before inputing if the same renderer is used on multiple views/cameras in the same application.

Parameters:
pX X position where to render.
pY Y position where to render.
pW Width of render area.
pH Hight of render area.
bool RenderBegin ( int  pX,
int  pY,
int  pW,
int  pH 
)

RenderBegin.

Parameters:
pX X position where to render.
pY Y position where to render.
pW Width of render area.
pH Hight of render area.

must be called before rendering can happen

bool RenderEnd ( HFBView  pView = NULL )

RenderEnd.

Parameters:
pView If you want the renderer to draw artifacts, such as TimeCode, CameraLabel or SafeArea, you must provide the FBView on which the renderer draws on.
Remarks:
Must be called at the end of rendering.
bool PreRender ( int  pLayer = -1 )

PreRenders one frame (needed for some shaders) This functions destroys the frame buffer content and must be called every time a render is called the typical order of call must be Renderer->Prerender // at this point the frame buffer is garbage -Clear the ogl -Do your render functions Renderer->Render.

Parameters:
pLayer Rendering layer ID(default=-1).
Returns:
true if successful.
bool Render ( int  pLayer = -1 )

Renders one frame.

Parameters:
pLayer Rendering layer ID(default=-1).
Returns:
true if successful.
bool SetViewingOptions ( FBViewingOptions pOptions )

Set the viewing options.

Parameters:
pOptions See FBViewingOptions for more detail.
FBViewingOptions* GetViewingOptions ( )

Obtain the current viewing options.

Returns:
A structure that can be queried and updated for a call to SetViewingOptions.
bool FrameCurrentCameraWithModels ( bool  pAll )

Frame the current camera either with all models or with the currently selected models.

Parameters:
pAll true to frame with all models.
Returns:
true if successful.
bool MouseInput ( int  pX,
int  pY,
FBInputType  pInputType,
int  pButtonKey,
FBInputModifier  pModifier,
int  pLayer = -1 
)

Mouse input.

Parameters:
pX X position.
pY Y position.
pInputType Type of input.
pButtonKey Button/Key pressed.
pModifier Modifier pressed (CTRL/ALT/SHIFT).
pLayer Rendering layer ID(default=-1).
Returns:
true if successful.
bool MouseInputNormalized ( float  pX,
float  pY,
FBInputType  pInputType,
int  pButtonKey,
FBInputModifier  pModifier,
int  pLayer = -1,
int  pPaneId = -1 
)

Mouse input.

Parameters:
pX X position, normalized to the range of [0, 1] in the view port dimension.
pY Y position, normalized to the range of [0, 1] in the view port dimension.
pInputType Type of input.
pButtonKey Button/Key pressed.
pModifier Modifier pressed (CTRL/ALT/SHIFT).
pLayer Rendering layer ID(default=-1).
pPaneId specify which pane's dimension used for normalization, default (-1) for the whole viewer.
Returns:
true if successful.
bool Pick ( int  pX,
int  pY,
FBPickInfosList pPickInfosList,
bool  pNeedIntersectPosition = false 
)

Object picking selection.

Parameters:
pX X position.
pY Y position.
pPickInfosList The list of models hit, and the location of the hit.
pNeedIntersectPosition require valid intersection position if true, this will take more time to process, and not reliable with very dense mesh.
bool PickNormalized ( float  pX,
float  pY,
FBPickInfosList pPickInfosList,
bool  pNeedIntersectPosition = false,
int  pPaneId = -1 
)

Object picking selection.

Parameters:
pX X position, normalized to the range of [0, 1] in the view port dimension.
pY Y position, normalized to the range of [0, 1] in the view port dimension.
pPickInfosList The list of models hit, and the location of the hit.
pNeedIntersectPosition require valid intersection position if true, this will take more time to process, and not reliable with very dense mesh.
pPaneId specify which pane's dimension used for normalization, default (-1) for the whole viewer.
bool RectPick ( int  pX1,
int  pY1,
int  pX2,
int  pY2,
FBPickInfosList pPickInfosList 
)

Object rectangle selection.

Parameters:
pX1 Left upper corner X position.
pY1 Left upper corner y position.
pX2 Right bottom corner X position.
pY2 Right bottom corner y position.
pPickInfosList The list of models hit, and the location of the hit.
bool RectPickNormalized ( float  pX1,
float  pY1,
float  pX2,
float  pY2,
FBPickInfosList pPickInfosList,
int  pPaneId = -1 
)

Object rectangle selection.

Parameters:
pX1 Left upper corner X position, normalized to the range of [0, 1] in the viewport dimension.
pY1 Left upper corner y position, normalized to the range of [0, 1] in the viewport dimension.
pX2 Right bottom corner X position, normalized to the range of [0, 1] in the viewport dimension.
pY2 Right bottom corner y position, normalized to the range of [0, 1] in the viewport dimension.
pPickInfosList The list of models hit, and the location of the hit.
pPaneId specify which pane's dimension used for normalization, default (-1) for the whole viewer.
void KeyboardInput ( FBDeviceKeyboardKey  pKeyIndex,
bool  pKeyState,
bool  pIsTrigger = false 
)

Keyboard input.

Parameters:
pKeyIndex Key index. (See "enum FBDeviceKeyboardKey" above for supported keys)
pKeyState Key state. (True == key is down, False == key is up)
pIsTrigger When setting pKeyState to True, resets key state to False right after operation.
FBModel* GetDisplayableGeometry ( int  pIndex )

Get the diplayable geometry model.

Those geometry models which have Show property ON are considered as "displayable".

Parameters:
pIndex displayable geometry model index to query.
Returns:
displayable geometry model.
FBLight* GetDisplayableLight ( int  pIndex )

Get the diplayable light.

Those light models which have Show property ON are considered as "displayable".

Parameters:
pIndex displayable light index to query.
Returns:
displayable light.
const FBModelList& GetDisplayableGeometryInCameraFrustum ( FBModelList pModelList = NULL,
FBCamera pCamera = NULL 
)

Get a list of displayable geometry inside given camera's frustum.

This function will return conservative resuilt. It's possible for some geometry outside of the frustum will be considered to be visible, but it will not skip any real visible geometry. This function should only be called in the main rendering thread.

Parameters:
pModelList ModelList holding the return models.
pCamera use current camera if NULL.
Returns:
Reference to pModelList. if pModelList is NULL return a const reference to internal static FBModelList and consecutive call to this function will invalidate the result of previous call.
bool IsModelInsideCameraFrustum ( FBModel pGeometry,
FBCamera pCamera = NULL 
)

To tell if given model is located inside camera's frustum.

This function will return conservative resuilt. It's possible for some geometry outside of the frustum will be considered to be visible, but it will not skip any real visible geometry. This function should only be called in the main rendering thread.

Parameters:
pGeometry the geometry to be queried.
pCamera use current camera if NULL.

Member Data Documentation

FBPropertyCamera CurrentCamera

Read Write Property: Current camera.

if UseCameraSwitcher is on, this will Get/Set camera switcher's current camera;

Definition at line 451 of file fbrenderer.h.

Read Write Property: Activate/Deactivate usage of camera switcher for the first model view of main viewer.

Definition at line 452 of file fbrenderer.h.

FBPropertyManipulatorTransform ManipulatorTransform

Read Only Property: Manipulator responsible of moving objects

Definition at line 455 of file fbrenderer.h.

List: of manipulators.

Definition at line 456 of file fbrenderer.h.

FBPropertyScene Scene

Read Write Property: Scene that the renderer will use/draw

Definition at line 459 of file fbrenderer.h.

Read Write Property: Indicate if a call to RenderBegin will also cause a re-evaluation of the scene.

Definition at line 460 of file fbrenderer.h.

Read Write Property: The renderer.

Definition at line 461 of file fbrenderer.h.

Read Write Property: Show the stats about FPS, Evaluation rate ...

like when using Shift-F in main viewer.

Definition at line 462 of file fbrenderer.h.

Read Write Property: Turn on/off the early frustum culling optimization.

Definition at line 463 of file fbrenderer.h.

Read Write Property: Display model normals in main viewer.

Definition at line 464 of file fbrenderer.h.

Read write Property: Use ID (Color) Buffer for picking, instead of OpenGl selection buffer picking.

Definition at line 465 of file fbrenderer.h.

Read write Property: Those Semi-transparent (Alpha Blend) geometry(region) contribute less than this threshold, will be considered as invisible during ID picking.

Definition at line 466 of file fbrenderer.h.

Read write Property: Render Model's unique Color ID into color Buffer (used for picking)

Definition at line 467 of file fbrenderer.h.

Read write Property: Add transparent color override layer on selected models if true.

Definition at line 468 of file fbrenderer.h.

Read write Property: Selection override layer transparency.

Definition at line 469 of file fbrenderer.h.

Read write Property: Selection override layer color.

Definition at line 470 of file fbrenderer.h.

Read Only Property: Current DisplaySet Update Id.

Add/Delete models, Show/Hide models will affect DisplaySet.

Definition at line 471 of file fbrenderer.h.

Read Only Property: Current Render Update Id.

DisplaySet update, material change, texture changes and shader change and other operations will trigger Renderer update.

Definition at line 472 of file fbrenderer.h.

Read Only Property: Displyable geometry count.

Definition at line 473 of file fbrenderer.h.

Read Only Property: Displyable light count.

Definition at line 474 of file fbrenderer.h.

Read write Property: Turn on/off advanced material setting UI widgets.

Definition at line 475 of file fbrenderer.h.


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

FBRenderer FBRenderer FBRenderer FBRenderer FBRenderer FBRenderer FBRenderer FBRenderer FBRenderer FBRenderer
FBRenderer FBRenderer FBRenderer FBRenderer FBRenderer FBRenderer FBRenderer FBRenderer FBRenderer FBRenderer