OpenSplat Public Release Page

Copyright (c) 2000 The Regents of the Ohio State University.
All rights reserved.


Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1.  Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2.  Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the Ohio State University and its contributors.
  4. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.


THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


OpenSplat: Software Package for Optimized Splatting on Rectilinear Grids

Author : Jian Huang

Others Involved: Dr. Klaus Mueller, Naeem Shareef, Dr. Roger Crawfis
Version : 2.0.2
Date : August 17, 2000

 

 


Introduction

This is the second major release of this package. Splatting was proposed by Lee Westover around 1990. Since then, many conference and journal papers contributed to the development of splatting. The state-of-the-art of splatting is the image-aligned sheet-based splatting approach. The recently published FastSplats work enabled fast and high-quality splatting implementation in pure software, which is portable to virtually all platforms and easily extendable to parallel implementations. In sum, the major publications over the years in the splatting area include:

Description of the Package

Strict implementation of the image-aligned sheet-based splatting algorithm both in pre-classified and post-classified mode, on rectilinear grids, and in both perspective and orthogonal projection, with z-depth anti-aliasing, as presented in [Mueller 98, 99, 99-2] and [Huang 2000]. Also included in the release are pre-integrated Gaussian kernel section files at 1.0 and 0.5 thickness.

Download: OpenSplat.2.0.3.tar.gz (404KB, new release on December 12, 2000)

Binaries

ohiosplat, dataloader

ohiosplat is the executable for rendering. dataloader is the executable to convert raw data format (*.vox) into the data format (*.seq) that ohiosplat needs. Essentially, *.seq is a file containing a linear list of the partitioned bricks of the total volume, an octree is also built from the leave bricks and linearly appended to the end of the leave bricks array. For each voxel, a pre-computed gradient is stored with it. In pre-classified rendering, this is necessary to allow rendering just from the sparse voxels loaded in the range of interest of the user. However, in post-classified rendering, these per-voxel gradient is not necessary and is never read into memory. Because, in post-classified splatting, gradient is computed on a per-pixel basis, which supports high-quality true per-pixel shading. All shading computation can be either directly computed or sped-up with a reflection-type of method. Please consult the 'makefile' to see how to use either way of lighting calculation.

Makefile for ohiosplat

A 'makefile' is included with the package. This makefile is used on Irix platforms. Please consult the makefile itself to build the
executable for different purpose. This package has been tested on Sun Solaris 5.6, too. The corresponding makefile is 'sunmakefile'. You can easily modify the makefile to run on linux platforms.

Makefile for dataloader

Two makefiles, 'datamakefile' and 'sundatamakefile', are provided, for Irix and SunOS, respectively.

Usage:

ohiosplat takes one input parameters, in the following format:

% ohiosplat dataset2

dataset2 is the root name of the data set file. ohiosplat takes data files in *.seq format, which is defined by Jian Huang. Please note, currently, ohiosplat suppose the *.seq would be under /tmp directory, which is usually local to the workstation. This reduces run-time loading time by avoiding the NFS accessing time.

ohiosplat would then also prompt for whether to use z-depth super sampling or not. answer either (1) or (2). If you choose not to perform z-depth super sampling, ohiosplat will use the Gaussian kernel sections that are 1.0 thick, otherwise, it will be using the 0.5 thick pre-integrated kernel sections. ohiosplat assumes the footprint files to be under the same directory as itself. 

Three other files, defining the transfer function, viewing parameter and the lighting conditions. The transfer function file defines a 256 entry LUT which defines R, G, B, A, Ks, Kd, Ka for each gray-level. In total, 8 point light sources are supported in our code. The three files shall be named:

For details concerning these three files, consult the header file: volume_data.h. As a side note, these definition file formats are devised by Michael Meissner at GRIS, University of Tuebingen, Germany. He kindly let us use his format and we owe him our deep appreciation. Michael is also releasing all related stuff at www.volvis.org, shortly.

dataloader expects no direct command line input parameters, but will prompt for input. One sample run is captured as below:

% dataloader
Tagged volume 0: non-tag 1: 0
Data Set Name (root) dataset1
Z-Depth aspect ratio 1
working on dataset1.vox dataset1.txt
loading a volume of size 64 64 64
aspect ratio = 1 1 1
iso_vox_count = 4548
Expanded to Size 64
Partitioning:
InputSize = 64 64 64
Expanded to Size 64
Create Octree Starts
stride=16 seg =64 run=4 idx=(0,512)
stride=32 seg =8 run=2 idx=(512,576)
stride=64 seg =1 run=1 idx=(576,584)
total number of nodes :89
num_iso_voxels :5196
total_time spent = 55
Create Octree Ends
The length of the list of leave nodes = 512

The actual input is the '0', 'dataset1' and '1' at the end of each of the first three lines. '0' signifies that this is not a segmented dataset. 'dataset1' tells dataloader that the root name of the dataset is dataset1. dataloader then expect two files to be under the same directory, dataset1.txt and dataset1.vox. dataset1.txt is an ascii format two-line file containing info about the data set. dataset1.vox is the binary raw volume arranged in the following manner:

for each z
   for each y
      for each x
         one-byte gray value
      endfor
   endfor
endfor

Sample Datasets and Transfer Functions

We use the data format and transfer functions that are being released from www.volvis.org. However, for convenience reasons, 4 sample data sets (in *.seq format) and the corresponding setup files are provided here, as well. They are included in a tar'ed format:

dataset 1, 3, 4 are provided by GRIS, University of Tuebingen to us. The raw data files (the provided *.seq's are for workstation machines. If you want to render on a PC running Linux or NT, you would have to re-run the dataloader to generate *.seq's for Intel based machines) are provided as a single gziped tar:

Sample Images and Other Links

On this year's ACM/IEEE Symposium on Volume Visualization, Salt Lake City, Utah, there was a paper comparing the four most popular volume rendering approaches, "A Practical Evaluation of Popular Volume Rendering Algorithms", by Meissner, M., Huang, J., Bartz, D., Mueller, K., Crawfis, R. The splatting algorithm/implementation that the authors used was OpenSplat release 2.0.0. 

A detailed release of the data sets, transfer functions used in the comparison paper is underway via www.volvis.org. But if you want to take a peek at the full results of the comparison right now, please visit: http://condor.cis.ohio-state.edu/~huangj/Fab4/fab4.html, which is a site mirrored from the site at Gris, University of Tuebingen, Germany. I suppose www.volvis.org will be sitting in Tuebingen, Germany, too.

To-do List

Last updated on Friday, October 20, 2000 .