The density_file pattern is a 3-D bitmap pattern that occupies a unit cube from location <0,0,0>
to <1,1,1>. The data file is a raw binary file format created for POV-Ray called df3 format. The
syntax provides for the possibility of implementing other formats in the future. This pattern was originally created
for use with halo or media but it may be used anywhere any pattern may be used. The syntax
is:
pigment
{
density_file df3 "filename.df3"
[interpolate Type] [PIGMENT_MODIFIERS...]
}
where "filename.df3" is a file name of the data file.
As a normal pattern, the syntax is
normal
{
density_file df3 "filename.df3" [, Bump_Size]
[interpolate Type]
[NORMAL_MODIFIERS...]
}
The optional float Bump_Size should follow the file name and any other modifiers follow that.
The density pattern occupies the unit cube regardless of the dimensions in voxels. It remains at 0.0 for all areas
beyond the unit cube. The data in the range of 0 to 255, in case of 8 bit resolution, are scaled into a float value in
the range 0.0 to 1.0.
The interpolate keyword may be specified to add interpolation of the data. The default value of zero
specifies no interpolation. A value of one specifies tri-linear interpolation, a value of two specifies tri-cubic
interpolation
See the sample scenes for data file include\spiral.df3 ,and the scenes which use it: scenes\textures\patterns\densfile.pov ,
scenes\interior\media\galaxy.pov for examples.
-
Header:
-
The
df3 format consists of a 6 byte header of three 16-bit integers with high order byte first.
These three values give the x,y,z size of the data in pixels (or more appropriately called voxels ).
-
Data:
-
The header is followed by x*y*z unsigned integer bytes of data with a resolution of 8, 16 or 32 bit. The data are
written with high order byte first (big-endian). The resolution of the data is determined by the size of the
df3-file. That is, if the file is twice (minus header, of course) as long as an 8 bit file then it is assumed to
contain 16 bit ints and if it is four times as long 32 bit ints.
|