* Image taken from the documentation of the Autodesk MotionBuilder 7.5
When I was writing a plugin shader for a webcam, I have faced with such a contradiction: on the one hand is necessary to process each frame of a web camera with no impact on the overall performance of the MoBu scene, and with another – rule for creating plug-ins for MoBu says: Any extra threads or processes running parallel to MotionBuilder might seriously slow down performance or even prevent MotionBuilder from running at all.
But I did not find the place where they could perform all the calculations involved in processing personnel web camera in MoBu. Plugin shader has only a challenge in drawing frame, and if they produce processing, it will slow down the whole scene entirely. It is not good. I tried to substitute the processing of personnel in the UI thread MoBu, but also a failure – because UI is processed for shader only in active mode. If you exit interface, the calculation is carried out not to be, and personnel to handle all the time. I tried to rewrite the events OnIdle of the FBSystem, also did not help, slow down the scene.
In the end, I came to the conclusion that I should use a parallel flow, despite the slogan of architecture of the MoBu and I were right, all earned as necessary. Hence the conclusion, the architecture of the MoBu should be sharpen, and the computation of shading is not intended for complex pipelines and processing.