Computational Visualization Center University of Texas at Austin   
   
COMPUTATIONAL VISUALIZATION CENTER

  PROJECTS  
Infrastructure | Applications | Remote Visualization
ShastraVisualEyesDiDiAngstromImaging-to-ModellingX-Tierra

3D Texture Mapping Based Parallel Volume Rendering

1. Introduction

    Among several rendering techniques, direct volume rendering has become an invaluable visualization technique for a wide variety of applications. Visualization of medical data such as the Visible Human, seismic data from oil or gas exploration, and computed finite element models are common examples. While direct volume rendering is very popular, software approaches are usually limited and far from interactive due to the large amount of data, expensive computations, and tremendous bandwidth requirements. As an alternative to software rendering, the use of 3D texture mapping hardware has been recognized as a very efficient acceleration technique to achieve real-time frame rates or interactive frame rate for volume rendering. Recently, large static and time-varying volume data, which consists of a sequence of 3D volume data, have been generated in various fields such as oceanography, astronomy, and computational fluid dynamics. This data is often much more difficult to visualize and accelerate because of its huge size even if 3D texture mapping hardware is available. In this project, we are going to develope hardware accelerated algorithm to render the large size data and time dependent data in real time.



2. Parallel Algorithm and Multipipe of Onyx2

    Algorithm


    • In parallel algorithm, it is important to determine how to effectively subdivide given tasks into a number of small jobs. Image-space and object-space subdivision are the most popular methods in parallel volume rendering. In image-space subdivision, various optimization techniques, such as the early ray termination and hierarchical data structure proposed for enhancing rendering speed, can be used. But, the data access pattern during parallel rendering is very irregular, which results in swapping texture memory quite often. The method is better suited for parallel rendering of volume data smaller than texture memory size. While object-space subdivision is more amenable to parallellization and can expolit the data coherence very easily, it is difficult to apply the early ray termination technique.
    • The above figure illustrates the overview of our algorithm based upon the object-space division method to minimize texture swapping. The master pipe P0 plays an important role in controlling the slave pipes P1, P2, P3, P4, P5 and compositing sub-images. The slave pipes render assigned bricks and write sub-images on shared memory space under the control of the master pipe. And the polygonization process as a separate thread process continues to generate the sequences of polygons perpendicular to the viewing direction until the program is finished.
    • As soon as the current view is set, a rendering order of bricks is determined. Each pipe starts creating sub-images for the assigned bricks and then the master pipe composes the sub-images according to the order. Our algorithm needs synchronization for every frame between master and slave pipes. Because the master pipe has to wait until all slave pipes write sub-images in shared memory space, the actual frame rate is affected by the slowest pipe. We tried to solve this problem using the proportional brick assignment. The same multipipe rendering scheme can be applied to not only static but also time-varying data with little modification. It is natural that the rendering of time-varying data should require much more texture swapping. To reduce the cost of texture loading, the algorithm routinely checks whether the current brick to be rendered is already stored in texture memory. We can control the rendering speed and playing direction for each timestep of time-varying data. Since our texture-based parallel algorithm is based on rendering sampling planes intersected with bricks, volume data is also considered a geometric object. So, it is easy to combine volume data with common geometric objects in an image.



    3. Results and Images

      Visible human female MRI data
      Shaded head with skin
      Data Resolution : 256x512x512
      Visible human male CT data
      Shaded head with skin
      Data Resolution : 512x512x256
      Visible human male CT data
      Shaded head with bone
      Data Resolution : 512x512x256
           
      Visible human male CT data
      Shaded whole body with skin
      Data Resolution : 512x512x1294
      Visible human male CT data
      Shaded whole body with muscle and bone
      Data Resolution : 512x512x1294
      Visible human male CT data
      Shaded whole body with bone
      Data Resolution : 512x512x1294



      Barbados data
      Barbados only
      Data Resolution : 512x256x2048
      Barbados data
      Barbados with wells
      Data Resolution : 512x256x2048
           
      Barbados data
      Barbados with wells
      Data Resolution : 512x256x2048
      Barbados data
      Barbados
      Data Resolution : 512x256x2048


      The above 10 images was genereated by SGI Onyx2 system which has 24 R12000 processors, 25 giga bytes of main memory, six InfiniteReality2 graphics pipes with multiple 64 mega bytes of raster managers, and RM9 Raster Managers.

      The following 12 images was generated by PC which has NVIDIA's GeForce3 GPU graphics card. The hardware accelerated rendering techniques are used to make the following images. To use the GeForce3 hardware, we have to use the OpenGL extensions like GL_NV_texture_shader2, GL_NV_register_combiners, GL_EXT_texture3D, GL_EXT_paletted_texture, GL_ARB_multitexture and so on. Since the GeForce3 card allows the 3D texture shading, the image quality is better than the pixel of frame buffer based shading in showing two materials at the same time.



      Visible human female CT data
      Data Resolution : 256x256x128
      Visible human male CT data
      Data Resolution : 256x256x128
      Visible human male CT data
      Data Resolution : 256x256x128
           

      Visible human female CT data
      Skin only
      Data Resolution : 256x256x128
      Visible human male CT data
      Skin only
      Data Resolution : 256x256x128
      Visible human male CT data
      Skin only
      Data Resolution : 256x256x128
           

      Visible human female CT data
      Bone only
      Data Resolution : 256x256x128
      Visible human male CT data
      Bone only
      Data Resolution : 256x256x128
      Visible human male CT data
      Bone only
      Data Resolution : 256x256x128
           

      Visible human female CT data
      Skin and Bone
      Data Resolution : 256x256x128
      Visible human male CT data
      Skin and Bone
      Data Resolution : 256x256x128
      Visible human male CT data
      Skin and Bone
      Data Resolution : 256x256x128
           

      4. Others

      1. Technical Report Download
      2. Texture Based Methods vs. Traditional Methods






         Computational Visualization Center University of Texas at Austin