Progressive Isosurface Compression Application: Instructions

Creating a volume data for this version

Volume data can come from various 3D scanning, scientific simulations, or distance transformation from 3D meshes; You may need to preprocess your volume data for this version. We used .iso as an extension for the input volume data which has scalar values (floating-point type) on a regular 3D grid, ranging from -1 to 1. The isovalue is defined as being 0. If the given volume is not defined on a regular grid with power-of-two size (2^n + 1), virtual padding (i.e., fill up -1 for empty space) should be applied.

Preprocess raw volume data or sets of 2D image files to a binary output file with an extension .iso in the following order:

for (i = 0; i < resolution; i++)
for (j = 0; j < resolution; j++)
for (k = 0; k < resolution; k++)
fwrite(&scalar, sizeof(float), 1, output);
Opening a volume data and extracting an isosurface



The isosurface Eight from a volume in a 257*257*257 grid.
 


Progressive Encoding

Press Ctrl+D, then the following dialog pops up:

Once the options are chosen, press the button "Ok".

In the above example of result for Eight, bitrates as bit per vertex(b/v), compressed file sizes for sign bitstream, leaf bitstream, geometry bitstream and the total as byte are shown. To show bytes transferred progressively, connectivity bits (sign + leaf) upto octree level 8 (i.e., 257*257*257 grid) are listed.


Progressive Decoding


Decoding options:

Here is examples of decoding Buddha and Bonsai in 257*257*257 grids.