VIDI-SVR

Very Large Sparse Volume Renderer

Introduction

VIDI Very Sparse Large Volume Renderer was built to render large but sparse datasets.

VIDI-SVR was initially conceived as a way to view the data sets collected from the Kalypso project. The data sets for each time stamp were 127GB each, and they did not have a way to view them interactively as an entire volume. To do so, we developed tools to chop the data up into smaller more managable chunks, and them compress them on a chunk-by-chunk basis. This allows us to load only the data that's to be rendered, and choose different schemes of compression for different chunks (chunks with relatively little in them, for example, would be compressed with lossy compression while blocks with a high dynamic range could be compressed losslessly).

Loading Data

After you've converted the data into a format that the program can read, you load it by going to the File menu and selecting Load Data. If you want to load another data set to compare it with, simply select Load Comparison instead (note, Load Comparison will only be active after you've loaded some initial data).

The Load Data Dialog

The File menu.

The Load Data Dialog

Typically, you'll browse to a header file (*.blh) like this. It will be in the destination directory after you've converted the data.

The Transfer Function Editor

This is the Transfer Function Editor. The first of the three panels is the Histogram, followed by the actual transfer function editor, and the color picker. Any of the sections can be hidden by clicking on the arrow on the left.

Histogram

This is the histogram of the currently loaded data set. Right clicking will show the options menu for the histogram.

Note: There is currently no way to show the histogram for the comparison data set.

Color Map

The bar between the the histogram and the transfer function editor shows how the current color map (generated from your transfer function) looks against the currently selected background. To change the background, right click and select what you'd like to change it to.

Transfer Function

There are two ways to change the transfer function. The first, and the easiest, is simply to left-click and draw. Right-clicking will force the drawn values at that spot (if any) to zero. The second way to modify the transfer function is to click the F button on the left side. This will drop a small gaussian function in the middle of the screen. Right-clicking on the red square will remove it. Left-clicking and dragging on the green box in the gaussian function will change the height of the guassian function only, while left-clicking and dragging on the red box will allow you to change its width.

Clicking on the triangles at the bottom of the this panel will allow you to change the color. If you'd like to insert a new color spot, simply click where you'd like to insert it, then change its color. To remove a tick, right-click on it.

The S button allows you to change the settings for how the final transfer function is calculated, as well as loading and saving transfer functions that you like.

Note: Toggling on Instant Updates is not recommended if you have the quality of your renderer set to high, as there may be considerable lag between frames.

Color Picker

This is a simple color picker. Just select the color you want, and the sliders will show the relevant data. The pallete square at the bottom-right of the wheel shows the currently selected color. You can also save colors you like by double-clicking on one of the slots at the bottom-left of the color wheel.

 

Navigation

The main VIDI-VSLVR window is split into three parts: the renderer, the navigator, and the slicer.

Window Parts

Renderer

The Renderer is a raycaster. It uses a block-based rendering scheme to render the data in 3-D.

Simply left-click and drag to pan the camera around your current focus point. To change your focus point, right click and drag. If you'd like to move close to or further from your focus point, use the mousewheel. Use the slicer to focus on an interesting feature in your data set.

Navigator

The Navigator is actually another raycaster, with the quality hardset very low and some other settings to make the data visible by the current transfer function pop.

The red and white dots and the line connecting them represent the camera that you're viewing from in the main render window. The red dot is the camera, and the white dot is the focus. The yellow square in the navigator indicates the position of the currently selected slice within the volume. If you're zoomed into an interesting point and you find that the camera pans way too fast when you try to move it, try setting the focus to what you're looking at via the slicer.

Controls for the navigator are the same as the controls for the renderer, except that there's no way for you to change the navigator's focus (it will always be the center of the volume).

Slicer

This pane shows an slice in the XY plane of the data set.

Use the bar on the bottom to select which slice you'd like to view, and the slice position in the volume will be indicated in the navigator by a yellow square. The yellow dot in this window represents your focus (though it doesn't neccesarily lie in this plane). If you'd like to move it to this plane (say there's some interesting feature) simply double-left-click, and the focus will be moved onto this plane at that point. Zooming is also done with the mouse wheel.

View Modes

While the normal view is nice, there are other views to consider. To switch between them, use the Options Menu.

The Options Menu

Comparison View

After loading up a comparison data set, the view will switch this view mode (the Navigator has been hidden by me):

The Comparison View

After loading some comparison data, the view will look like this.

The left side is the original data set, the right side is the comparison data set. The thick outline determines which data set is currently being displayed in the Navigator and the Slicer.

Average View

The average view takes samples from both data sets at the same point, averages them, then displays them to the screen.

The Average View

Average View of the same location

Additive View

The additive view takes samples from both data sets at the same point and sets them to different channels, then adds them together. Intersections are where the colors change. Channels can be set in the More Options menu, under Additive Options.

The Additive View

Additive View of the same location

Technical Details

This section mostly covers the More Options section. I may add more details about how this program works in the future.

More Options

This is the More Options dialog. On it are options for the Raycaster's shader program. There's Ambient lighting, Diffuse lighting, Specular Lighting, Quality, and Shininess.

Ambient Lighting

Ambient lighting controls the color and intensity of the ambient light in the scene. The R, G, B, and A sliders represent the four channels that the computer uses to represent color. If you'd like to tint your scene a specific color, simply set the RGB color to what you'd like. To brighten or darken the entire scene, use the A slider.

Diffuse Lighting

Diffuse lighting controls the light from the 'light source.' The light source in this case is permanently behind and slightly above and to the left of the camera (as if it were coming in over your left shoulder). The scene is shaded this way in respect to the diffuse light, if you were to turn it off everything would look flat and it'd be much harder to determine the shapes of the objects rendered. The channels are the same for Ambient light.

Specular Lighting and Shine

The specular lighting options control the color and intensity of the shine. If you want the object to be shiny, turn the specular's A value all the way up and turn the Shine all the way up. The Shine variable controls how fast an object will look like it's directly reflecting the light source, giving it its 'shine.'

Quality

Quality only has one field: steps. This is the number of steps the raycaster will take through the volume, and determines the step size. Turning up the steps will lead to better quality renderings, but will make the program run much slower. Note that when panning moving the camera, the quality will drop to 2048 steps until the movement is finished, and then will jump back up to the high quality settings.