Java Based Volume Rendering 2007 Poster
Java Based Volume Rendering 2007 Poster
Ruida Cheng1, Alexandra Bokinsky3, Paul F. Hemler2, McCreedy Evan1, Matthew J. McAuliffe1
1. Center for Information Technology, National Institutes of Health, Bethesda, MD.
2. Hampden-Sydney College, Hampden-Sydney, VA.
3. Geometric Tools, Inc. Chapel Hill, NC
INTRODUCTION Jogl Multi-histogram based Volume Rendering Pseudo code of a fragment based volume raycaster is shown in Fig.5.
Fragments are processed independently PERFORMANCE MEASURE
In recent years the number and utility of 3D rendering frameworks has
grown substantially. A quantitative and qualitative evaluation of the of each other. The Jogl GPU based method
Using the Jogl ( Java binding for OpenGL ) library, we implement a multi- All performance measurements were conducted on a PC with the NVIDIA
capabilities of a subset of these systems is important to determine the improves performance using the parallel
histogram volume rendering method [1]. The multi-histogram method is based GeForce 6800 GS based graphics card. For each rendering method, we
applicability of these methods to specific medical visualization tasks. processing power of the graphics card.
on data values, gradient magnitude, and second directional derivatives that capture the average frame rate and memory usage.
Libraries evaluated in this paper include the Java3D API, Jogl (Java Fig.6 shows the Jogl GPU based volume
enable better discrimination between different material properties and boundaries..
OpenGL API), a multi-histogram based rendering method, and the rendering results.
WildMagic visualization libraries. Volume renderer implementations using Fig.3 illustrates the relationship Fig.5 Fragment Raycasting
each of these frameworks were developed using the platform-independent between data value and it‟s derivatives.
Java programming language. In addition, all four frameworks were At the center of the boundary, the gradient
implemented or ported to the Java language thereby allowing a complete magnitude ( f „) is high and the second
Java based solution. Quantitative performance measurements (frames per derivatives ( f “) is zero. Thus, boundary
second, memory usage) were used to evaluate the strengths and weaknesses is enhanced from the materials. The Multi- DISCUSSION AND CONCLUSION
of each renderer implementation. histogram method allows interactive volumetric
METHODS shading and shadowing to the traditional
3D texture based volume rendering
Pros:
Fig.3 Multi-
Multi-dimensional Transfer Function.
• Java3D can render with high quality.
pipeline. Fig.4 shows some
Java3D based Volume Rendering • Multi-histogram method has an intuitive user-interface for transfer
multi-histogram volume rendering results.
Fig.6 Jogl (GLSL shader ) based Volume Rendering function manipulation and has good rendering quality.
Java3D renders 3D volumes with an image scene graph approach (Fig.1) . • Jogl GPU (GLSL) renderers the volume quickly with low memory
Texture and raycast volume rendering WildMagic GPU (Cg) based Volume Rendering usage.
have been implemented. 3D texture • WildMagic has the best rendering quality and also allows the users
volume rendering uses view texture Volume rendering in MIPAV is currently implemented using the WildMagic greater freedom to control the shader parameters.
aligned slicing with tri-linear Shader library. The WildMagic Shader (Jogl based) library dynamically loads
interpolation. Raycast volume rendering and compiles shaders written in the Cg shading language. The WildMagic
uses the classical ray cast sampling and Shader library implements single pass or multipass rendering with one or more Cons:
compositing. High quality rendering vertex and pixel shaders. Blending modes can be specified for multi-pass • Java3D library has internal memory management issues.
results are shown in Fig.2. shaders which accumulate color results between passes. Users can change the • Multi-histogram method is CPU based, performance can be slow
Fig.1 Java3D Image SceneGraph shader input parameters (material properties, lighting, and viewing transform) when exposing more detailed volume information.
on the fly while the application is running. Fig.7 shows the WildMagic GPU • Jogl GPU (GLSL) shader assembly module is difficult to extend.
based volume rendering results.
• WildMagic memory management requires improvement.
Fig.4 Multi-
Multi-histogram Volume Rendering REFERENCES
Jogl GPU (GLSL) based Volume Rendering • [1]. J. Kniss, G. Kindlmann, and C. Hansen, “Interactive Volume Rendering
Using Multi-Dimensional Transfer Functions and Direct Manipulation
Widgets,” Proc. IEEE Visualization Conf. '01, pp. 255-562, 2001.
We used the Stegmaier[2] method of single pass volume raycasting to • [2]. S. Stegmaier, M. Strengert, T. Klein, and T. Ertl, “A Simple and Flexible
implement Jogl GPU (GLSL,NV_fragemnt_program2) based volume Volume Rendering Framework for Graphics Hardware based Raycasting,”
rendering in Java. 3D texture data values are transferred to the graphics card, Proceedings of Volume Graphics 2005, Stony Brook, New York, USA, pp.187-
and single pass volume rendering on per pixel basis is performed. For each 195, 2005
Fig.2 Java3D texture-
texture-based volume rendering pixel of the final image a single ray is traced independently through the Fig.7 WildMagic GPU based Volume Rendering
• [3]. L. Mroz and H. Hauser. RTVR - a flexible java library for interactive
volume. On each fragment, sampling along the ray path and accumulating the volume rendering. In IEEE Visualization 2001.
intensity and opacity are performed. http://citeseer.ist.psu.edu/mroz01rtvr.html