| |
oconv (1)
NAME
|
oconv - create an octree from a RADIANCE scene description |
SYNOPSIS
|
oconv [ -i octree | -b xmin ymin zmin
size ][ -n objlim ][ -r maxres ][
-f ][ -w ][ - ] [ input ..
] |
DESCRIPTION
|
Oconv adds each scene description input to
octree and sends the result to the standard output.
Each input can be either a file name, or a command
(enclosed in quotes and preceded by a `!'). If any of the
surfaces will not fit in octree, an error message is
printed and the program aborts. If no octree is
given, a new one is created large enough for all of the
surfaces. |
|
The -b option allows the user to give a bounding cube
for the scene, starting at xmin ymin zmin and having
a side length size. If the cube does not contain all
of the surfaces, an error results. The -b and
-i options are mutually exclusive. |
|
The -n option specifies the maximum surface set size
for each voxel. Larger numbers result in quicker octree
generation, but potentially slower rendering. Smaller values
may or may not produce faster renderings, since the default
number (5) is close to optimal for most scenes. |
|
The -r option specifies the maximum octree
resolution. This should be greater than or equal to the
ratio of the largest and smallest dimensions in the scene
(ie. surface size or distance between surfaces). The default
is 1024. |
|
The -f option produces a frozen octree containing all
the scene information. Normally, only a reference to the
scene files is stored in the octree, and changes to those
files may invalidate the result. The freeze option is useful
when the octree file's integrity and loading speed is more
important than its size, or when the octree is to be
relocated to another directory, and is especially useful for
creating library objects for the "instance"
primitive type. If the input octree is frozen, the output
will be also. |
|
The -w option suppresses warnings. |
|
A hyphen by itself ('-') tells oconv to read scene
data from its standard input. This also implies the
-f option. |
|
The only scene file changes that do not require octree
regeneration are modifications to non-surface parameters. If
the coordinates of a surface are changed, or any primitives
are added or deleted, oconv must be run again. Programs will
abort with a "stale octree" message if they detect
any dangerous inconsistencies between the octree and the
input files. |
|
Although the octree file format is binary, it is meant to be
portable between machines. The only limitation is that
machines with radically different integer sizes will not
work together. For the best results, the -f option should be
used if an octree is to be used in different
environments. |
DIAGNOSTICS
|
There are four basic error types reported by
oconv: |
|
warning - a non-fatal input-related error |
|
fatal - an unrecoverable input-related error |
|
system - a system-related error |
|
internal - a fatal error related to program
limitations |
|
consistency - a program-caused error |
|
Most errors are self-explanatory. However, the following
internal errors should be mentioned: |
|
Reduce the number of scene files by combining them or using
calls to xform(1) within files to create a
hierarchy. |
|
Set overflow in addobject (id) |
|
This error occurs when too many surfaces are close together
in a scene. Sometimes a dense scene can be accomodated by
increasing the maximum resolution (by powers of two) using
the -r option, but usually this error indicates
something is wrong. Either too many surfaces are lying right
on top of each other, or the bounding cube is inflated from
an oversized object or an improper -b specification.
Chances are, the surface "id" is near one of those
causing the problem. |
|
Hash table overflow in fullnode |
|
This error is caused by too many surfaces. If it is possible
to create an octree for the scene at all, it will have to be
done in stages using the -i option. |
EXAMPLE
|
To add book1, book2 and a transformed book3 to the octree
``scene.oct'': |
|
oconv -i scene.oct book1 book2 '!xform -rz 30 book3' >
newscene.oct |
AUTHOR
NOTES
|
In the octree, the names of the scene files are stored
rather than the scene information. This means that a new
octree must be generated whenever the scene files are
changed or moved. Also, an octree that has been moved to a
new directory will not be able to find scene files with
relative pathnames. The freeze option avoids these problems.
make(1) or rad(1) can be used to automate
octree creation and maintenance. |
SEE ALSO
|