Skip to content

Generify OpenVR module into a VR module and rework OpenVR module accordingly

Paul Lafoix requested to merge paul.lafoix/vtk:GenericVRRelease into master

Master issue for future VR developments #18302 (closed)

MR to adapt the Paraview OpenVR plugin (and rename it to VRPlugin) to work with theses new changes

MR for the functional Generic VR branch

This branch creates a new "VR" module to factorize code between OpenVR module (and future OpenXR module, not in this MR).

For instance, only the simplest factorization has been done to be merged quickly :

  • Unchanged classes :
    • the vtkOpenGLAvatar and its data (in the data/ folder)
    • CollaborationHelper
    • Follower
    • HardwarePicker
    • Menu Representation + Widget
    • Panel Representation + Wiget
    • Ray
  • Classes that need to be overriden by specific API classes (OpenVR or OpenXR for example) :
    • the Camera that act only as a shell to hold the GetTrackingToDCMatrix (used in vtkVRModel)
    • the ControlsHelper to InitControlPosition at the controller's button position
    • The VRModel to :
      • Create and setup the VBO+IBO from the controller mesh
      • Create and load the texture object and model
    • The RenderWindow to :
      • Create the framebuffers
      • Get the PoseMatrixWorld from an EventDataDevice
      • Specify how to destroy specific API resources (ReleaseGraphicResources)
      • Specify the size of the HMD
      • Specify the name of the window
      • Initialize and finalize the window (API initialization+shutdown, etc..)
    • The Renderer to create a specialized Camera in MakeCamera()

The InteractorStyle and RenderWindowInteractor are not handled here, as well as the overlay

Edited by Paul Lafoix

Merge request reports