Merge Transaction Optimization.
 
 
 
Merge Transaction Optimization.

This reference page is linked to from the following overview topics: MotionBuilder 2013, MotionBuilder 2014.



Module description

File Reference and scene assembly workflow load many small files which contain individual entities (model, material, texture, character, props and etc.,).

And it's a quite time consuming process with normal workflow. The following set of merge transaction functions could be used to improve the performance effectively.

A single file load / merge operation mainly includes the following three major stages:

  1. Loading file from disk to memory;
  2. Translate/interpret the file content into the application scene object models;
  3. Post processing (scene object preparation, UI refresh and etc).

The last step (post processing) often is quite heavy. With the merge transaction, however this step could be executed only once for multiple consecutive file merge operations. for example: [code] MergeTransacionBegin() File_Merge(filepath1) File_Merge(filepath1) File_Merge(filepath1) ... MergeTransactionEnd() [/code] This Merge Transaction could be nested.

Functions

K_DLLIMPORT void  FBMergeTransactionBegin ()
  Call to begin the transaction for merging multiple files.
K_DLLIMPORT void  FBMergeTransactionEnd ()
  Call to end the merge transaction.
K_DLLIMPORT bool  FBMergeTransactionIsOn ()
  Call to tell if system is during Merge transaction.
K_DLLIMPORT void  FBMergeTransactionFileRefEditBegin ()
  Call to begin the transaction for merging multiple files and applying File Reference edit at the same time.
K_DLLIMPORT void  FBMergeTransactionFileRefEditEnd ()
  Call to end merge transaction with File Reference edit.
K_DLLIMPORT bool  FBMergeTransactionFileRefEditIsOn ()
  Call to tell if system is during File Reference Edit Merge transaction.

Function Documentation

K_DLLIMPORT void FBMergeTransactionBegin ( )

Call to begin the transaction for merging multiple files.

Useful to consecutively merge multiple files into scene.

Note:
The transaction need to be closed by calling FBMergeTransactionEnd().
K_DLLIMPORT void FBMergeTransactionEnd ( )

Call to end the merge transaction.

K_DLLIMPORT bool FBMergeTransactionIsOn ( )

Call to tell if system is during Merge transaction.

K_DLLIMPORT void FBMergeTransactionFileRefEditBegin ( )

Call to begin the transaction for merging multiple files and applying File Reference edit at the same time.

Useful to consecutively merge multiple files into scene with FileRef edit operation in between.

Note:
The transaction need to be closed by calling FBMergeTransactionFileRefEditEnd().
K_DLLIMPORT void FBMergeTransactionFileRefEditEnd ( )

Call to end merge transaction with File Reference edit.

K_DLLIMPORT bool FBMergeTransactionFileRefEditIsOn ( )

Call to tell if system is during File Reference Edit Merge transaction.