Support collaboration between CAVE and HMD
The RenderingParallel module now provides optional support for synchronizing collections of actors among the synchronized renderers. The first such supported actor type is vtkOpenGLAvatar
, which lays the foundation for supporting collaboration among users of HMD-based VR and CAVEs.
To add a new type of synchronizable actor in the future, you can simply subclass vtkSynchronizableActors
and implement the four api methods:
InitializeRenderer
CleanUpRenderer
SaveToStream
RestoreFromStream
And then update the vtkSynchronizedRenderers::EnableSynchronizableActors
method to instantiate your new class and add it to the internal list.
By default, this support is currently disabled. To enable it, you must call EnableSynchronizableActors(true)
on all vtkSynchronizedRenderer
instances involved.
Other minor improvements supporting collaboration in CAVEs include:
-
vtkFlagpoleLabel
now supports CAVEs by making the label face the camera eye point (rather than the desktop camera position) when in off-axis projection mode -
vtkVRCollaborationClient
now allows customizing the default initial avatar up vector from the new default of[0, 1, 0]
-
vtkVRCollaborationClient
now allows specifying an arbitrary object as the source of Move3DEvents used to share local pose with collaborators -
vtkOpenGLAvatar
now provides api access to get the associated avatar label
Additionally this MR moves two classes from Rendering/VR
into Rendering/OpenGL
: vtkVRRay
and vtkOpenGLAvatar
. This allows changes to the Rendering/Parallel
module to avoid depending on Rendering/VR
, as that dependency would introduce a cycle in the module dependency graph.