Digital artists spend much of their time manipulating real-valued GUI sliders in computer animation software. Each slider corresponds to some parameter of an analytical model that determines the appearance of a virtual object. For a given object, we call the set of all parameters controlling its visual appearance a parameter space. Shaders are a common tool in computer graphics to model the visual characteristics of a virtual object. Shaders are small programs which determine the color of each pixel on an object. The resulting image of a shader is driven by a parameter space controlled by an artist. The goal of the artist is to search the high dimensional parameter space of a shader until the desired look is achieved. Searching this parameter space my be very time consuming due to its high dimensionality. Furthermore, shaders are not always parameterized in a way that is meaningful to the artist. For example, shaders are often written by engineers with a background vastly different than the artists who will use them. An engineer might think it is natural to parameterize a noise shader in terms of “noise frequency” whereas an artist might prefer this parameter to be called “smoothness.” We present a system and an analysis of the problem of shader reparameterization. Our system allows users to add their own, personally meaningful parameters to shader and then be able to modify the result based on their own parameterization. This has the benefits of allowing uses to specify meaningful parameter names, as well as potentially reducing the dimensionality of the parameter space. In our system we implement and analyze a new novel technique called linear shader reparameterization. We also discuss(but do not implement) perceptually uniform shader reparameterization and non-linear shader reparameterization. Source code for our system can be checked out from SVN via https://subversion.assembla.com/svn/ezshade/. ∗e-mail: cab6fh@virginia.edu
With large scientific and medical datasets, visualization tools have trouble maintaining a high enough frame-rate to remain interactive. In this paper, we present a novel GPU based system that permits visualization of isosurfaces in large data sets in real time. In particular, we present a novel use of a depth buffer to speed up the operation of rotating around a volume data set. As the user rotates the viewpoint around the 3D volume data, there is much coherence between depth buffers from two sequential renderings. We utilize this coherence in our novel prediction buffer approach, and achieve a marked increase in speed during rotation. The authors of [Klein et al. 2005] used a depth buffer based approach, but they did not alter their traversal based on the prediction value. Our prediction buffer is a 2D array in which we store a single floating point value for each pixel. If a particular pixel pij has some positive depth value dij, this indicates that the ray Rij, which was cast through pij on the previous render, intersected an isosurface at depth dij. The prediction buffer also handles three special cases. When the ray Rij misses the isosurface, but hits the bounding box containing the volume data, we store a negative flag value, dhitBoxMissSurf in pij. When Rij misses the bounding box, we store the value dmissBox. Lastly, when we have no prediction stored in the buffer, we store the value dnoInfo.
The ever increasing size of data sets for scientific and medical visualization demands new isosurface volume rendering techniques to provide interactivity for the large datasets. The main obstacle to achieving interactivity is the computational bottleneck due to the dataset traversal and the corresponding amount of data transfer. We propose a novel GPU based dataset traversal technique that uses a prediction buffer to reduce the traversal time during dataset rotation. The reduction in the traversal time improves interactivity and consequently provides better insight into the dataset characteristics. We use a highly parallelized ray-casting algorithm and the proposed traversal technique to double the rendering speed. The factors which influence the rendering speed include block size, shared memory usage, and texture versus global memory. These factors were carefully considered to efficiently map the ray-casting volume rendering algorithm and the traversal technique to the GPU providing a high performance implementation. CR Categories: I.3.1 [Computing Methodologies]: Computer Graphics—Hardware ArchitectureI.3.7 [Computing Methodologies]: Computer Graphics—Three-Dimensional Graphics and Realism
Isosurface volume rendering is an effective technique used to visualize and interact with three-dimensional datasets in scientific and medical applications. This algorithm has several steps that utilize numerical methods, including calculation of ray-isosurface intersections and surface normals. When choosing a specific technique for these steps, crucial factors for consideration include the computational expense, visual quality, and accuracy in representing the original data. Furthermore, the optimal method in our case must create real-time visualizations by executing effectively on the GPU in parallel. This paper presents several techniques used in volume rendering, the advantages and disadvantages of each, and presents possibilities for future work and improvements.