Research: Visualization Techniques
We have developed various software tools to assist in the visualization of datasets, traced models, and spines. See also the tools page for a list of avaialble software.
NeuroGL: Rendering Models in 3D
NeuroGL renders models generated by the NeuroZoom package using OpenGL. Visit our online repository for a comprehensive list of freely available models.
P-View: Rendering 3D Data as a Surface Mesh
Figure 1: Typical P-View rendering of a surface mesh generated for a macaque pyramidal cell dataset. The insert shows a closer view of some dendrites.
Using traditional 3D volume rendering software, large volumes can in principle be rendered and displayed. To reduce the size of the dataset to be viewed, we extract a polygonal surface from the volumetric data using a variation of the Marching Cubes algorithm. For surfacing highly curved objects such as spiny dendrites, this method produces an excellent quality result at low computational cost. Real time inspection of entire neurons in 3D is possible using a combination of object culling and level of detail routines.
Culling techniques optimize performance by rendering only those objects that contribute to the final image for a given frame. We have implemented view frustum culling to reduce the number of polygons rendered by discarding entire objects that fall outside the view frustum, or field of view. For our application to dendritic morphology, in which the entire volume can be represented as a single, connected surface, the object is subdivided into sections that are each compared with the view frustum. These intersection tests represent only a small fraction of the rendering time, resulting in significant performance increases.
Using these optimization techniques, our current version of Polygonized Viewer (P-View) allows quasi-interactive frame rates in the range of 5-15 frames per second (fps). These rates can be improved with further optimization, such as mesh simplification and decimation routines to produce faster rendering.
NeuronStudio: 3D Model and Volume Rendering
True volume rendering has been implemented in NeuronStudio using a technique involving splats. Splats are basically small textures that are combined with an alpha (transparency) value to represent a voxel. Rendering an entire dataset in this fashion produces a close approximation to the true object. Various artifical coloring techniques or palettes can also be applied to the individual splats to provide visual effects.
Of course the problem of large datasets still remains. One optimization we perform is to create splats only for those voxels that are on the boundary of the background (determined by applying an intensity threshold). In other words only the surface of the object is turned into splats. This significantly decreases the amount of rendering that must be done. In the figures it can be seen that the surface alone is both visually appealing, and provides sufficient information as to the shape of the object.
NeuronStudio also allows rendering of a model and spines similar to NeuroGL, but with more advanced functionality. The figure to the right shows a model rendered within the splats. The combination of dataset and model rendering allows for visual inspection as to the accuracy and completeness of the reconstruction.
As one would expect, NeuronStudio provides a full range of 3D movement functions, including translation, rotation, and roll.