IVR

NAME
OVERVIEW
FORMAT
EXAMPLE

NAME

ivr − description of Intermediate Volume Rendering format

OVERVIEW

The Intermediate Volume Rendering (IVR) format is a volume data format intended to allow very fast transfer-function previewing of a dataset from a predetermined viewpoint.
Essentially, an IVR dataset is a volume that has been pre-transformed into screen space (with depth) and stored in a simple and cache-efficient volume format.

This man page describes version 0 of the format.

FORMAT

IVR is a binary file format, and rather simplistic. All data are either 32-bit integers or 32 bit floats, and are stored in little-endian format.
There is a header which consists of two integers, the width and height. The header is followed by exactly width*height sample rays. The sample rays are stored in column-major order.

A sample ray is a variable-length record consisting of an integer N representing the number of samples in the ray, followed by exactly N samples. The samples are stored in back-to-front order
And finally, a sample represents an interval along the ray, and consists of two floating point numbers: the width of the interval followed by the value of the scalar field on that interval.

EXAMPLE

In this example, we show an initial segment of an ivr file. For purposes of text formatting, we use angle brackets to denote the binary representation of a value.
The image here has 640 columns and 480 rows. The top-left pixel represents a ray with two samples. Its neighbor to the right represents a ray with 3 samples.

<640> <480>
<2> <0.5><21.0> <0.5><23.1>
<3> <0.25><21.0> <0.5><22.05> <0.25><24.09>
...