Multi-Texture Volume Visualization Demo (c) 2000 Klaus Engel URL: http://wwwvis.informatik.uni-stuttgart.de/~engel/ System Requirements: Pentium I/II/III, Linux XFree 4.x, NVidia 3D drivers 0.9.x, NVidia GForce 256,MX,GTS,ULTRA Pentium I/II/III, Win95/98/ME/NT/2000, NVidia drivers>=5.3, NVidia GForce 256,MX,GTS,ULTRA This demo shows the use of 2D textures, multi-textures and register combiners of NVidia GForce graphics adapters for interactive high-quality volume rendering. The demo is not intended to be used in a real application environment. It is mainly a testplatform for new visualization algorithms. Transfer function: Press 't' or "Transfer function"-button to display the transfer function control. The transfer function maps scalar values of the volume data to RGBA colors. The "Red", "Green", "Blue" and "Alpha" buttons are used to enable and disable manipulation of the color channels. The transfer function can be manipulated by drawing into the transfer function display. Simple transfer function manipulation: F1,F2,F3,F4: change position and pitch of red channel gradient F5,F6,F7,F8: change position and pitch of green channel gradient F9,F10,F11,F12: change position and pitch of blue channel gradient PageUp,PageDown,Home,End: change position and pitch of alpha channel gradient Rendering Modes: - Speedup: This mode renders two slices of the volume onto a slices polygon in a single pass, thus increasing the framerate. By projecting the texture slices onto the slice polygon perspective displacement is compensated. - Clipping: Uses multi-textures for clipping using arbitrary clipping volumes. A second "stencil"-texture is created that determines where the volume is rendered. The position of the clipping volume can be changed by adaption of texture coordinates. The stencil geometry can be changed to a cube, cylinder or sphere using key 'o' or one of the buttons "Cube", "Cylinder" or "Sphere". Invert the clipping volume using the key "i". Move clipping volume: Numerical keys (switch on Num-Lock) - 4: move left 6: move right 8: move up 2: move down 7: move back 9: move forward - Slaps: One of the main disadvantages of using 2D textures is that we have to build three stacks of textures thus increasing memory requirements by a factor of 3. By using slaps similar to the SGI/Volumizer approach we can prevent using three stacks and use one stack for all directions. This mode has no (and is inteded to have no) effect on the visualization result, but requires less memory. Due to the large amount of rendered slaps the rendering speed decreases for certain views. - Interp.: Performs tri-linear interpolation during rendering, thus increasing rendering quality. The number of rendered slices can be increased and decreased using the "Overinterpolation" slices or keys "1" and "3". Buttons "C-Slices" renders a constant number of slices for each direction (for volumes with unequal resolution in X, Y and Z direction) thus suppressing stack switching effects. Button "V-Slices" adapts the number of rendered slices to the view direction so that the distance in between adjacent slices remains constant independently to the viewing direction. - Isosurf.: Renders a iso-surfaces without extracting polygons using rastrization hardware. Slider "Isovalue" or keys '[' and ']' can be used to change the iso value. Use the color sliders to change the color of the light sources and button "specular" to toggle specular lighting. In specular lighting mode the intensity of the light source is changed using the "Intensity" slider. Time-dependent volumes: An additional tag "TimeSteps:" in the .dat file is used to determine the number of time steps. Each time step is stored in a .raw file. The first time step is determined by the "ObjectFileName:" tag. Each additional time step is loaded from a file . Buttons: - Play: Play animation - Step >: Step one timestep forward - Step <: Step one timestep backward - Interp.: Interpolates in time (experimental) Slider: - Animation progress: show progress in animation and can be used to jump to individual time step. Changelog: Version 1.5: - Added support for USHORT and FLOAT datasets - Changed perspective Version 1.4: - Added specular lighting mode - Added slider for specular lighting intensity manipulation - Added sliders for color manipulation Version 1.3: - improved GUI - improved color table editor - loading of palette from file supported - support for visualization of time-dependent data Version 1.2: - Added Isosurface mode Version 1.1: - Added support for volume clipping Version 1.0: - first released version References: C.Resk-Salama, K.Engel, M.Bauer, G.Greiner, T.Ertl Interactive Volume Rendering on Standard PC Graphics Hardware Using Multi-Textures and Multi-Stage-Rasterization (PDF) in Proc. Eurographics/SIGGRAPH Workshop on Graphics Hardware 2000 (HWWS00) URL: http://wwwvis.informatik.uni-stuttgart.de/~engel/Publ_2000_5.pdf