This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
A volume visualization is a three dimensional concept with data addressed in the three dimensional location of space. Volume rendering is most challenging part in computer graphics and visualization as it deals with very large quantity of data for computation directly before rendering to graphics primitive. There should be a minimum frame rate to achieve interactivity with the rendered volume. Volume rendering helps in visualizing internal structure without loss of information. There are many techniques developed to render volume on to screen and this survey report is all about the efficient techniques used to render volume data accurately and interactively.
Volume rendering is very popular in medical visualization. It is done using dedicated graphics processors to visualize complicated data sets. The medical data sets are available in the format of MRI, CT composed of structural information of patientâ€™s body in three dimensional spaces. The visualization of three dimensional volume data can be done in two ways. The first approach is generating isosurface from data using polygonal features as intermediate representation of visualizing elements this method is also called as surface rendering as it projects the surface or outlined structure on to the two dimensional screens . This type of rendering is pretty fast and the accuracy of projection is directly proportional to the number of polygons involved in rendering. The surface rendering draws the outline structure hiding the internal details as it deals with only visible part of structure. This method is not a true volume rendering as it mimics the volumetric projection on to a two dimensional screen. The second approach is to directly render the data through projection on to two dimensional screens without any polygonal feature development. This is a true volume rendering as there are no intermediate polygons involved in visualization. This rendering requires huge computation as it deals with internal structure before projecting onto the screens. In order to have interactivity there should be a
Minimum frame rate to be achieved to get smooth animation. The latest graphics processor supports volume rendering of the order of 128x128x128x2 bytes [2, 3]. With the high parallel rendering using multiprocessors can achieve rendering size of 256x256x256x2 bytes .
Volume rendering can be exploited in software and hardware level. The optimization for software and hardware collectively gives high rendering speeds with full of accuracy to maintain the information intact. This paper gives brief description about software and hardware level rendering techniques. Each technique has its own features and drawbacks.
Software level Rendering techniques
Texture based volume rendering
In this method three dimensional texture mapping algorithm is used . The algorithm plays important role in mapping texture coordinates. The volume data is re-sampled and sliced into numerous two dimensional textures. These textures are the two dimensional images, the data with similar values are assigned a particular color values using color table. These textures are mapped to graphics memory then they are grouped to a single unit according to corresponding alpha values associated to particular texture. The resolution of final image corresponds to number of slices of textures involved in grouping. Slice to slice the data value is mapped using trilinear interpolation method  to obtain continuity in final rendering. The interpolation between the slices reduces the accuracy of final image as the data is not present in between slices. Some of interpolation may give abrupt change in color and intensity values which lead to poor rendering quality.
Paper  describes about TRex pipeline architecture which is build using texture mapping volume rendering method. It comprises of four stages including sub-volume reading, rendering, compositing and user interface. All stages are connected as a pipeline to render large data sets. Texture based rendering increases the speed of rendering as the number of samples are inversely proportional to the speed of rendering. There is a trade-off between number of samples and speed of rendering as the texture based uses interpolation method to populate data in between the slices of volume this leads to the information loss. Thus the accuracy of projection diminishes with the enhancement of speed of projection. This method of rendering is well used for real time rendering as it is very fast comparatively.
Figure1. Volume rendering using
Figure2. Volume rendering using
Figure1 and Figure2 are the examples of using texture mapping algorithm on human head sequence data set. VTK tool kit  an open source classes are used to generate the volume rendering. Figure1 is rendered using vtkVolumeTextureMapper3D class with a sampling distance of 0.1 and figure2 is rendered using a sampling distance of 30 between two dimensional textures.
Ray-casting volume rendering
In this method Ray-casting algorithm  is used. The resample data is represented using voxels, where a voxel is a smallest three dimensional unit to represent the color and intensity values at a particular location in three dimension space. These voxels are classified into two regions foreground and back ground . It uses classic ray tracing method in order to distinguish foreground voxels and background voxels. The viewpoint, projection distance from view point and angle of source of light are the main attributes in determining the voxel intensity value at a particular location . The method differentiates the back ground from foreground providing the internal structure of data by using slightly transparent foreground. The amount of transparency can be controlled by using opacity values to the group of voxels having similar data values. Ray-casting algorithm clusters the voxels into respective groups according to the data values and these groups are represented using different colors. Ray-casting produces accurate rendering compared to all algorithms since it renders all information without loss of information. It has to deal with each voxel associated with data and thus lags the rendering speed. This algorithm is successfully implemented on a computer by using 512x512x482x2 bytes of data resulting 2.5 frames per second .
Figure3. Volume rendering using
Figure3 is the output generated using vtk tool kit  vtkVolumeRayCastMapper class. Volume ray-casting algorithm is used to render human head data. The volume rendered using this algorithm is smooth and continuous without loss of information. Figure1, Fugure2 and Figure3 are quiet self explanatory by the output quality. Figure1 and Figure2 output are rendered with great speed but low quality and Figure3 is rendered with less speed comparatively.
Hardware level Rendering techniques
Using multiple processors
Hardware plays vital role in visualization. The performance achieved from multiple processors is much better than a single processor. The processing power is dramatically increased as there is increase of number of processors. Very large data sets can be visualized using multiple processors. High frame rate can be achieved which is necessary in real time visualization. The dedicated graphics processors are coordinated with each other to do a single task. In paper  Parallel Shear-Warp algorithm is used to render volume data using shared memory multiprocessor architecture. In this architecture each component reduces the computation delays when rendering huge data sets. The Shear-Warp algorithm, the load balancing among multiple processors and shared memory are efficiently utilized to achieve high performance . This architecture is well used in real time rendering of volume data.
The real time rendering requires high frame rate to get high interactivity, any change in the data has to be rendered with in a fraction of seconds to the graphics primitive. There is a tradeoff between accuracy of projection and rendering speed. The real time volume rendering systems are tolerable to low accuracy but not to the low response time. The multiprocessor architecture system helps in real time volume rendering.
The volume visualization requires huge computation on large quantities of three dimensional data. The volume visualization is a direct visualization it deals with data without any intermediate form of representation. This visualization is well supported by graphics hardware and software algorithms. The hard ware is specially designed to exploit the maximum parallelism to render three dimensional data. The software algorithms are designed to achieve minimum frame rate in order to support interactivity. Each technique has its own unique features and implementation style. Some of the techniques are designed to produce accurate results and some are to render fast with loss of information. The volume rendering choice has a tradeoff between speed and accuracy.
I sincerely thank Dr. Liszka for giving opportunity to do a survey on visualization field in computer science and support in writing a small survey report on the volume rendering techniques.