1 / 26

The Virtual Radiology Explorer Part 2: Understanding and extending VRE

The Virtual Radiology Explorer Part 2: Understanding and extending VRE. Robert Belleman robbel@science.uva.nl. Overview. What is what? Brief overview on each component in VRE Understanding VRE How to find your way through the sources How to make changes and extensions. VRE structure.

nansen
Download Presentation

The Virtual Radiology Explorer Part 2: Understanding and extending VRE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Virtual Radiology ExplorerPart 2:Understanding and extending VRE Robert Belleman robbel@science.uva.nl

  2. Overview • What is what? • Brief overview on each component in VRE • Understanding VRE • How to find your way through the sources • How to make changes and extensions

  3. VRE structure

  4. What is what? An overview on the components in VRE

  5. CVS modules • Note:You will see references to “CVS” modules. To access these, log in on one of the Unix systems and typecvs -d /home/robbel/.cvsroot checkout module-nameThis will create a directory module-name in your current directory.

  6. XiVE • XiVE: • X11 in Virtual Environments library • Allows any X windows GUI to be used in a VE • Bridge between 2D GUIs and 3D VEs • Unfinished/unstable; currently not used in VRE • Think about this when you need “standard” helper applications in a VE (browser, calculator, document reader, etc.) • See http://www.science.uva.nl/~robbel/XiVE/ • CVS module: XiVE

  7. OpenGL|Volumizer • OpenGL|Volumizer: • Volume rendering library • SGI/Irix systems only (hardware support) • Provides full view of 3D grids through “raycasting” • Interactive color map editor • CAVE support by Sean Spicer, Stanford(CVS module: SVR) • See http://www.sgi.com/software/volumizer/ • Latest news (April 2002): SGI released version 2.2 including Vtk support (which may make module SVR obsolete) (still Irix only)

  8. GEOPROVE • GEOPROVE: • Geometric Probes for Virtual Environments • Taking measurements in a VE • Subcomponents: • Freetype: open source TrueType font library • GLTT: OpenGL TrueType • CFC: CAVE Foundation Classes (compare to Windows Foundation classes) • Probing user interface • See http://www.science.uva.nl/~robbel/GEOPROVE/ • CVS module: GEOPROVE

  9. PACS • PACS: • Picture archiving and communication system • Similar to those used in hospital radiology depts • PACS server: • Database access • Remote (pre-)processing (such as parallel isosurface extraction) • Communicates with VRE via PVM • Obsolete; no longer supported in VRE

  10. XML monitor • XML: • eXtended Markup Language interface interface to monitor VRE’s internal state • Provides “X3D” DTD state info of VRE over network port • Context engine: • Student project (David Vismans) • “reasons” about VRE state and provides context feedback

  11. Vtk • Vtk: • Visualization toolkit we know so well • VRE requires version Vtk 3.2 • current Vtk version is 4.x • the changes are minor but haven’t been done in all of VRE yet (only vtk2CAVE is ready for Vtk 4.x) • See also textbook and user’s guide • See http://public.kitware.com/VTK/

  12. vtk2CAVE • vtk2CAVE: • Allows Vtk to be rendered in CAVElib applications • CAVElib versions < 3.1 need shared memory to access structures from other processes • Originally from Matthew Hall, loads of changes by us and others • CVS module: vtk2CAVENote: modules vtk2CAVE and SCAVI may soon be replaced by Denis’ work.

  13. SCAVI • SCAVI: • Speech, CAVE and Vtk interaction • Allows interaction with Vtk actors using voice, wand, joystick and buttons • Uses CAVETalk: • Speech recognition server with support for dynamic vocabularies • Requires ViaVoice: speech recognition engine from IBM • See also http://www.science.uva.nl/~robbel/SCAVI/ • CVS module: scavi

  14. NT • NT: • Network Transfer facility • Communication with lattice Boltzmann simulation code (LBE) using CAVERNUS • Provides geometry and parameters to LB simulation • Provides velocity, pressure, shear stress fields to VRE • Number of techniques to increase network performance • CVS module: NT

  15. Flow Fish • FFVis: • Interactive flow field visualization • Glyphs, streamlines • Student project (Hans Ragas) • CVS module: ffvis

  16. CAVElib • CAVElib: • VR output devices support (displays) • VR input device support (trackers, manipulators) • Versions prior to 3.1 used fork(), version 3.1 and later use threads • Commercial, licensed: see http://www.vrco.com/ • We currently have one “full” and one “simulator” license; if someone is using a license, no one else can! • See also CVS module: cruz • See /usr/local/CAVE on Linux systems

  17. OpenGL, X windows • OpenGL: • (accelerated) 3D graphics rendering • On the Linux PCs, we use ASUS graphics cards and hardware accelerated OpenGL drivers from nVidia (http://www.nvidia.com/) • See http://www.opengl.org/ • See also paper: “VR on commodity hardware” • See also CVS module: cruz • X Windows: • Windowing support

  18. Understanding VRE How to find your way through the sources

  19. Understanding VRE • Complexity increased over time • VRE’s design isn’t pretty (understatement) • Take it one step at a time, don’t panic • Use the source: • Main.C usually a good place to start (init and exit) • MainLoop.C contains application main loop • Many components execute in different threads; see Threads.C

  20. Multithreaded design • Most “independent” components execute in separate threads • this increases responsiveness; very important in immersive virtual environments • communication between threads through shared memory and semaphores

  21. Components in VRE • Most components come from separate CVS modules, others are in subdirectories • See the sheets on “Building VRE” for more info on the CVS modules • For more info on CVS, see CVS module: scssoft (catch-22?). On a Unix system, type:cvs -d /home/robbel/.cvsroot checkout scssoft

  22. Extending/changing VRE • The following applies to the VRE sources only • the ones in VRE/src and below • Check the README files in the CVS modules for other components • In general: • rebuild and install the module from the VRE/module-name directory (“make; make install” should suffice) • type “make install“ in the VRE directory

  23. Extending/changing VRE • When you even consider changing something in VRE: • first type “make depend” in the VRE directory; if you don’t, your changes may not be included in the new binary • After each change, go to the VRE directory and type “make install” • This rebuilds what is necessary and installs the new binary

  24. Adding a new source file • Add the name of the source file to VRE/src/Makefile.in • reconfigure:cd VRE ./config.status • rebuild and installmake depend make install

  25. Committing your changes • If you fixed something/added a new feature, make the change available to others: commit it into CVS!!! • Go to the VRE directory • If you added new files, type “cvs add filename” • Type “cvs commit” • please follow the instructions; add a description on why you committed the change - this will be emailed to others working on VRE

  26. Including changes by others • If anyone commits changes into the VRE CVS module, you will get an email with a description • To include these changes in your own sources: • Go to the VRE directory • Typecvs update ./config.status ; make depend ; make install

More Related