# supplemental code for procedural volumes

as used in the paper

```
  Florian Simon, Johannes Hanika, Tobias Zirr, and Carsten Dachsbacher. Line
  integration for rendering heterogeneous emissive volumes. Computer Graphics
  Forum (Proceedings of Eurographics Symposium on Rendering), 36(4), 2017.
```

## compilation

type `make` to build the two binaries `fireball` and `sun`. these will create
the two vdb files used in figs. 2 (left), 9, 10 and 2 (in the supplemental
material), the fireball; as well as figs. 13 and 4 (in the supplemental
material), the sun loops.

you should edit the `Makefile` and replace the definition of `VDPPATH` at the
top to point to your installation of openvdb.

## constructing the volumes

just run `./fireball` or `./sun` to create the vdb files. by default, the
resolution is chosen very conservatively. to create the resolution of
the sun used in the paper, use 

```
  #define VOXEL_SIZE (1./64.)
```

near the top of `vdb_sun.cc`. note that we used a custom voxel format
that includes non-linear motion blur information but requires slightly less
storage than the openvdb files written by the `sun` program. hence the 
paper mentions 30GB whereas the vdb will turn out to be around 40GB.

## licence

since some may require this to be present, we release our part of the code
as WTFPL (see wtfpl.net). this does not apply to openvdb and the portions
of perlin noise included in the code samples.
