Here is an example input file for hvr_cl Anot: 0 0.000000 Anot: 95 0.000000 Anot: 114 0.407843 Anot: 255 1.000000 Cnot: 0 0.000000 0.000000 0.000000 Cnot: 77 0.000000 0.000000 0.000000 Cnot: 128 1.000000 0.000000 0.000000 Cnot: 192 1.000000 1.000000 0.000000 Cnot: 255 1.000000 1.000000 1.000000 opacity 1.000000 hvfile test.hv imagesize 1280, 1024 imagefile RHO_full_angle.raw fov 35.308399 eye -3.512593, 0.150125, -2.480027 center 0.000000, 0.150125, 0.000000 up 0.000000, 1.000000, 0.000000 clipping 0.429987, 14.299866 nplanes 1.000000, 1.000000 softdistance 0.000000 tolerance 0 0.0002 1.000000 timer render timer These files are organized in a keyword-value format. Keywords are the first string in each line Value(s) are in the remainder of the line. Keywords and values (if needed by a keyword) are space or comma delimited. Keyword-Value Synopses: ------------------------------------------------------------------------------- Anot: INDEX ALPHA INDEX = index of alpha map tie point (alpha-knot). ALPHA = Opacity (or alpha) value associated with These lines specify a map between the singe-byte voxel fields and an alpha (i.e., opacity) value used in alpha-blending. ALPHA = 0.0 implies that the voxel is transparent. ALPHA = 1.0 implies that the voxel is opaque. Valid ranges: INDEX [0, 255] ALPHA [0.0, 1.0] Other constraints 1) There need to be at least two alpha "knots" specified, one at INDEX 0, and one at INDEX 255. 2) INDEXs should be monotone increasing in the file ------------------------------------------------------------------------------- Cnot: INDEX RED GREEN BLUE INDEX = index of color map tie point (color-knot). RED = red color value associated with GREEN = green color value associated with BLUE = blue color value associated with These lines specify a map between the singe-byte voxel fields and an RGB color value used in alpha-blending. RED, GREEN, or BLUE = 0.0 implies zero intensity for that color channel. RED, GREEN, or BLUE = 1.0 implies maximum intensity for that color channel. Valid ranges: INDEX [0, 255] RED, GREEN, or BLUE [0.0, 1.0] Other constraints 1) There need to be at least two color "knots" specified, one at INDEX 0, and one at INDEX 255. 2) INDEXs should be monotone increasing in the file ------------------------------------------------------------------------------- opacity OPACITY_SCALING OPACITY_SCALING = global scaling of opacities This parameter linearly scales the alphas used in alpha-blending to increase or decrease the effective optical depth of the data. If OPACITY_SCALING=1.0 and all voxels are mapped to full maximum alpha (1.0), then one unit of distance (in the users model view space) will have an optical depth of unity. Valid range: a positive 32-bit floating point number ------------------------------------------------------------------------------- hvfile FILE_NAME FILE_NAME = name of disk file containing block-tree formatted volume data This file name can be local to the current working directory (test.hv), a relative path (../otherdir/test.hv), or a full path (/mnt/data/test.hv). ------------------------------------------------------------------------------- imagesize NX NY NX = Horizontal image pixel resolution NY = Vertical image pixel resolution Valid ranges: limited by size of X-window ------------------------------------------------------------------------------- imagefile FILE_NAME FILE_NAME = name of image file produced A full, relative or local path may be used here. ------------------------------------------------------------------------------- fov ANGLE ANGLE = vertical field of view opening angle of rendering frustum. Images are rendered in perspective geometry. ANGLE specifies the full vertical penning angle (in degrees). Larger opening angles imply stronger perspective. The ratio of horizontal to vertical opening angles is determined by the ratio of horizontal to vertical pixels of the image size: pixels are assumed to be square. Valid range: (0.0, 180) Values large than 60 give you a "fish-eye" view. You see behind your head with values larger than 90 . ------------------------------------------------------------------------------- eye X Y Z (X,Y,Z) = Cartesian coordinates of view point in model view space. Valid Range: 3 floating point numbers. The size and location of the volume data in "model view" coordinates are specified as XYZ limits of a bounding box, which are usually included included in the HV file (specified in the hvfile line). This bounding box is determined when the HV file is created, and should reflect units of size relevant to the user's data. ------------------------------------------------------------------------------- center X Y Z (X,Y,Z) = Cartesian coordinates of "look-at" point in model view space. Valid Range: 3 floating point numbers. ------------------------------------------------------------------------------- up X Y Z (X,Y,Z) = components of "up-vector" in model view space. Valid Range: 3 floating point numbers. ------------------------------------------------------------------------------- clipping NEAR FAR NEAR = distance to near clipping plane from the eye point in model view space. FAR = distance to far clipping plane from the eye point in model view space. Valid range: two floating point numbers, with: 0.0 < NEAR < FAR. ------------------------------------------------------------------------------- nplanes N_PANES_PER_VOXEL MAX_PANES_PER_VOXEL N_PANES_PER_VOXEL = number of rendering planes used per voxel layer MAX_PANES_PER_VOXEL = maximum number of rendering planes used per voxel layer Increasing N_PANES_PER_VOXEL (from 1) will sometimes reduce rendering artifacts, but increase rending time. Most useful when zoomed in and the point when individual rendering planes can be seen. MAX_PANES_PER_VOXEL is currently implemented., and should = N_PANES_PER_VOXEL valid ranges: two positive integers ------------------------------------------------------------------------------- softdistance DISTANCE DISTANCE = thickness of near and far clipping planes. Not currently implemented. This line is ignored and can be omitted. ------------------------------------------------------------------------------- tolerance VALUE_TOLERANCE ANGLE_TOLERANCE SIZE_TOLERANCE VALUE_TOLERANCE = acceptable value error. ANGLE_TOLERANCE = acceptable angle error. SIZE_TOLERANCE = acceptable voxel size. These three parameters are used to control the trade off between quality and speed of rendering by limiting how deeply hvr digs into block-tree data. Starting with the root block of the tree, hvr asks if this block is "good enough" for the current rendering: if yes, then this block is use and none of the sub-blocks (within it) are used; if no, then the hierarchical tree scan continues to the next level of refinement within this block. A block is considered "good enough" is any of three conditions (based on value, angle, and voxel size) are satisfied. Valid ranges and explanations: VALUE_TOLERANCE [0, 255] limits the maximum index value error incurred by using a given block. A value of 0 will allow high quality renderings (depending on the other two tolerances). Note if the data is constant on the finest level everywhere in the spatial domain of the block, then lower resolution blocks will still be used. ANGLE_TOLERANCE (a positive floating point number) limits the maximum angular size in Radians (subtended by the eye point) of any voxel in the block. Large values of ANGLE_TOLERANCE (like 0.02) will force fast but poor quality renderings. Very small values allow high quality renderings (depending on the other tolerances). Optimal values of ANGLE_TOLERANCE are near the angle subtended by an individual pixel, which is determined by the vertical field of view (see keyword: fov) and image size (see keyword: imagesize). SIZE_TOLERANCE (a floating point number >= 1.0) limits the voxel size relative to the finest level of refinement. A value of 8.0 or more for always produce very quick (interactive speed) and usually poor quality renderings. A value of 1.0 allows full quality, depending on the other tolerances. ------------------------------------------------------------------------------- render (no arguments) Causes hvr to produce an image with the settings specified in the file so far. Multiple rendering can be specified in a single file. For example, two renderings from different point of view can be specified by ... center 0.0 0.0 0.0 eye 1.0 0.0 0.0 up 0.0 0.0 1.0 imagefile view100.raw render eye 0.0 1.0 0.0 imagefile view010.raw render ------------------------------------------------------------------------------- timer (no arguments) Reports timings and rendering speeds. The 1st occurrenceof timer generates a report of the current clock time on the host. Subsequent occurrences of timer generate reports of clock time and the time (in seconds) since the last occurrenceof timer. for example, ... timer render timer will give you the time to render the image.