A simple viewer for visualizing volumetric datasets. It supports color mapping using transfer functions to map specific values of data to a scalar color. The view camera is fully interactive, and it works on multiple systems (Windows and Linux). This tool is fully integrated with MinVR, a software that facilitates the data visualization on multiple displays devices (desktop, VR HMDs,cave-systems). Nowadays it works as simple tool to visualize data for the Rhode Island Discovery Center. Currently it works on multiple platforms:
- Windows (Desktop and VR)
- Macos (Desktop)
- LInux (Desktop)
- Clone the VolumeViewer repo
- In a temrinal go to
VolumeViewer/superbuild
folder - For
debug
build type:cmake -S . -B .
Forrelease
build type:cmake -S . -B . -DCMAKE_BUILD_TYPE=Release
RelWithDebInfo
can be used on Windows. - Once all the dependencies have been downloaded and installed:
On Windows go to the
superbuild
folder and open the Visual studioVR-VolumeViewer.sln
solution. Right click on the VR-VolumeViewer project and selectbuild
On Macos and Linix typemake
You should find inside the fodler superbuild/bin
the VR-VolumeViewer
executable.
If you want to run the application from Visual Studio:
- Open the
VR-VolumeViewer.sln
solution - Right click on the VR-VolumeViewer project and select
properties
- On the output folder section delete the last trail of the path so it points to the
bin
folder. i.e: ChangeVR-Volumeviewer\bin\Debug
toVR-Volumeviewer\bin
- Right click on the VR-VolumeViewer project and select
Set as Startup project
- You can run the application from the Visual Studio debugger.
Using the UI, click on load file, and in the next window navigate to the folder where your data is located. Select a file with nrrd or obj extension and click on "ok".
To display more complex scenes, you must create a description file that contains line by line all the elements to be loaded. The following is an example on how a discription file looks like:
mesh OSOM_with_texture.obj 1
label Providence 282.3593 480.8620 57.0000 170 15 1
label Narragansett 222.3225 293.5203 71.3028 170 15 1
label Block_Island 172.3455 178.6527 60.9086 170 15 1
label New_London 48.6138 236.5409 85.3028 170 15 1
label New_Bedford 422.4869 326.0600 56.0115 170 15 1
You can insert meshes, volumes, 3d labels (billboard labels), and camera space labes (2d On screen text).
To load meshes and volumes, add a line indicating the type of data to load (mesh | volume) and the path to the location of the file.
mesh OSOM_with_texture.obj 1
volume temp_ocean_his_data/temp_ocean.nrrd 1 1 1 0 0 0 raycast 1
RayCasting indicates the algorithm the program uses to render volumes. The meshes and volumes are rendered on the same space indicated in the data files.
label Providence 282.3593 480.8620 57.0000 170 15 1
To load labels, add a line starting with the word label, the text you want on to display, the size of the text (height & width), and the world coordinates where the text will be located.
Volume Viewer uses Dear-Imgui as UI to control and manipulate data. The basic controllers give you the options to load meshes, clear the scene and clip the data on different axis. Also, it has support for color mapping.
To load a description file, do click on the load file button, a new ui window will be displayed with the local file system. Navigate to the description file's folder, select the .txt file and click ok