Immersive 4D Volume Visualization in CAVE
Yuki Yamaura1 , Youhei Masada1 , Akira Kageyama1 , and Kouhei Yamada111

Graduate School of System Informatics, Kobe University, JapanIntroduction

CAVE is a room-sized immersive virtual reality systemdeveloped by Electronic Visualization Laboratory at University of Illinois, Chicago [1]. A viewer in CAVE room,
which is surrounded by screens on which stereo images
are projected, can observe virtual 3 dimensional (3D) objects from any position, angle and direction through headtracking technology. The viewer can interact, in addition,with the objects using a potable controller, called wand,which is also under the tracking control. Not only forthe demonstration of virtual 3D objects, it has also grownin its importance as a tool for visualization of simulation
data aimed at the scientists, and has been used in various
research fields [2]The amount of simulation data generated on supercomputers becomes larger year by year with increasing supercomputer specifications, such as processing power andstorage capacity. As scientists gain access to more powerful computers, they attempt to tackle larger, more complexproblems. Progressive approaches are then required for thevisualization of such huge and complex simulation data inCAVE. For the more efficient data analysis and visualization, it is reported in this paper that we had developed a
4D volume rendering library especially for displaying timeevolving, sequential, 3D scalar data in CAVE.
23D Texture Slicing

Among some visualization methods for time-evolving
3D scalar data [3], we choose 3D texture slicing techniquewhich is one of volume rendering methods. A standard
algorithm of 3D texture slicing is summarize as follows:
1. conversion of 3D scalar data into 3D texture data with
RGB and Alpha using a transfer function we definedin preprocess.
2. generation of a number of slice planes perpendicular
to the viewer’s line of sight.
3. mapping of 3D texture onto the planes and drawing
it in back-to-front order.
There exists two procedures to transfer time-evolving
3D scalar data processed by 3D texture slicing methodfrom CPU RAM to GPU memory. It would be the simplest that all the time-sequential 3D data is transferredat first to GPU memory and then is cached for the visualization. Since all the data must be stored in GPU, alarge size of memory is required for this procedure. In contrast, we can take an another approach in which 3D dataat each time step is transferred one after the other whenneeded. The latter one is adopted in our 4D volume rendering library because it can save GPU memory and thenbe applicable to huge times-sequential data generated on
massive supercomputers.

Fig. 1. Comparision between VSVR algorithm and ournew algorithm.

3

Implementation: 4D Volume Rendering

A Very Simple Volume Rendering code, VSVR, which
is developed by Thomas Lewiner on the basis of basic
OpenGL features for the efficient visualization of 3D scalardata [4], is adopted as a reference source code to implement
our fast volume rendering library.
Two new codes are installed into VSVR to make it workwith CAVE systems and to get faster rendering of 3D
scalar data.
3.1

Immersion

The original VSVR is specified to commonly-used 2D
displays, and thus supposes at all times a situation inwhich viewer’s line of sight is perpendicular to the display.
The slice plane is then set consistently to be parallel tothe screen. However in CAVE, it is not the case. Since theangle between viewer’s line of sight and a normal vectorof screens is changed at every moment, we should makethe slice plane being always perpendicular to the line ofsight, not to the screen, in CAVE systems. By taking inreal time the information of viewer’s line of sight using
the head tracking system, the direction of slice planes isregulated incessantly in our rendering procedures.
We use CAVELib to display volume data in CAVE systems. Since a program with CAVELib (CAVE application)is generally multi-processed or multi-threaded, we have tosynchronize visualization data generated by multiple processes/threads. For an instantaneous synchronization, weuse a double buffering technique.
3.2

Pixel Buffer Object and Rendering Algorithm

VSVR uses glTexture3D function not only for transferring data from CPU to GPU, but also for converting
scalar data to texture data with RGB, and Alpha. Thisfunction is easy to use, but takes a long time to transfer
data. We thus take an alternative approach using PixelBuffer Object (PBO), instead of this function, to accelerate rendering speed. Since PBO stores pixel data into thebuffer object, we can transfer 3D data faster to and from agraphics card through direct memory access. When adopting PBO, we have to convert scalar data to texture data,
in other word, to apply a “transfer function” by ourselves.
The scalar data is transformed at first into initialization
block in our library to reduce rendering time.
The new algorithm we proposed for realizing a fast 3D
volume rendering of time-sequential data in CAVE is organized as follows:
1. conversion of 3D scalar data into 3D texture datawith RGB and Alpha using a transfer function byourselves.
2. transfer of 3D texture data from CPU RAM toOpenGL memory as PBO and generation of 3D texture from PBO.
3. generation of a number of slice planes perpendicular
to the viewer’s line of sight.
4. mapping 3D texture to the planes and drawing it inback-to-front order.
5. forwarding a time step to the next.
(This cycle is repeated at every time step).
A schematic picture in Fig. 1 presents a new algorithm
we proposed for the fast 3D volume rendering in CAVE incomparison with the algorithm adopted in VSVR.
4

Volume Rendering Applications in CAVE

Using our 4D volume rendering library, we have developed an application framework for CAVE, called Multiverse [5][6]. Muliteverse is itself a CAVE application andcan launch several visualization programs. In Multiverse,
we have employed our new volume rendering library in twovisualization programs: SeismicWave program visualizes
a simulation data of propagating seismic-wave, and CellDivision program is for a 3D time-sequential microscopic
images of mouse embryo.
Fig. 2. The demonstrates of a CAVE application “SeismicWave” in which time sequential simulation data ofseismic-wave propagation is displayed in VR space. Thesimulation data adopted in this application is defined on
256×512×160 grids and has a total size of about 100Mbyte
for each time [7]. Note that, in the SeismicWave program,hundreds of time-sequential data are continuously loaded
and is smoothly exhibited in CAVE system using our fast
volume rendering library.

Fig. 2. Time sequence of snapshots of seismic-wave propagation simulation.

5[4] T. Lewiner, VSVR: a very simple volume rendering
implementation with 3D textures, http://zeus.mat.pucrio.br/tomlew/tomlew uk.php

Conclusion

We have developed a volume rendering library based on
3D texture slicing method for CAVE systems. This libraryhas utilized several techniques for accelerating rendering
speed, such as using the transfer function in preprocess
and adopting PBO for data transfer. To verify the effectiveness of the new algorithm we employed in our volume
rendering library, we have designed two applications to visualize large scale 3D scalar data in CAVE systems, that is
SeismicWave and CellDivision. Our 4D volume rendering
library is applicable to all the CAVE application developed on the basis of OpenGL. We believe that it would be
helpful for efficient and effective data analysis in various
research fields, and might boost scientific findings by using
CAVE.

Acknowledgement
The seismic wave simulation data shown in Fig. 2 wasprovide by Prof. T. Furumura at University of Tokyo.
References[1] C. Cruz-Neira, D. J. Sandin, and T. A. DeFanti, Surroundscreen projection-based virtual reality: the design and implementation of the CAVE, Proc. SIGGRAPH ’93, 135142, 1993
[2] Kageyama, A., Miyagoshi, T., & Sato, T., Formation ofcurrent coils in geodynamo simulations, Nature, vol.454,1106-1109, 2008
[3] A. C. Telea, Data Visualization, A K Peters, Ltd., Florida,
2007[5] A. Kageyama, Y. Yamaura, D. Meno, Y. Masada, K.
Yoshizaki, and K. Yamada, Application Launcher forCAVEs, International Conference on Modeling and Simulation Technology (JSST2011), Tokai Univ., Takanawa,Japan, 2011[6] Y. Yamaura, D. Meno, A. Kageyama, Y. Masada, K.
Yoshizaki, and K. Yamada, Development of an application launcher for CAVE systems, VRSJ the 16th Annual
Conference, 69-72, 2011[7] Furumura, T., B.L.N. Kennett and K. Koketsu, Visualization of 3-D wave propagation from the 2000 Tottori-ken
Seibu, Japan earthquake: Observation and numerical simulation, Bull. Seism. Soc. Am., 91, 4, 667-682, 2003