README for Vol-a-Tile --------------------- Shalini Venkataraman, Luc Renambot Sep 2003 Usage ----- Please run the .bat files in this dir for the different datasets or type ./volvis -f filename fileX fileY fileZ -v volName dataServerFile -d volX volY volZ -g gradientFileName -o offsetX offsetY offsetZ -s stereoType -w width height -h -n netConfigFile where -f filename fileX fileY fileZ filename : file containing the raw volume fileX : columns in the file(x) fileY : rows in the file(y) fileZ : no of slices in file(z) This is used when data is locally acceses -v volName dataServerFile For remote date access. volName is the symbolic name of the volume as specified in the optistore servers config. dataServerFile is the name of the file that associates the render nodes to optistore server nodes. Something like this for each render node:- rank# serverIP -d volX volY volZ dimesions of the volume that will actually be rendered. If volX, volY and volZ are not powers of 2, they are EXPANDED to the nearest power of 2. so a volume with dimensions 440x290x198 becomes 512x512x256. -g gradFilename : file containing the gradient volume. If this file is not specified, the gradient volume is computed on the fly -o offsetX offsetY offsetZ This can be used to skip or specify an offset from where the volume the read in offsetX : X offset to start reading from offsetY : Y offset to start reading from offsetZ : Z offset to start reading from -s stereoType stereoType : 0 for no stereo/default 1 for AGAVE stereo 2 forCross-Eye Stereo -w width height width: width of window height: height of window -n netConfigFile used for distributed rendering in a cluster. The cluster configuration is specified by the netConfigFile (in our case machines.dat). For file specs, see under "cluster rendering" Interaction ----------- Keyboard B : toggle display of bounding box C : Switch between moving clip plane and object F : Rotate about z (-ve), roam in Z F : Toggle printing FPS G : Save the gradient volume to a file H : Print usage help N : Toggle printing number of slices O : Write the volume to a file (like out256x256x256.raw) Q : Rotate about z (+ve), roam in Z R : Toggle Roam mode + : Increase sample rate - : Decrease sample rate UP: Rotate about x (-ve), roam up in roam mode DOWN: Rotate about x (+ve),roam down in roam mode LEFT : Rotate about y (-ve), roam left in roam mode RIGHT: Rotate about y (+ve), roam right in roam mode PAGE UP : Increase Eye Separation for stereo PAGE DOWN : Decrease Eye Separation for stereo ESC : Quit Mouse Left : Click and drag to rotate volume or clipPlane whichever is active Middle : Click and drag to translate volume Right : Click and drag to zoom volume or clipPlane whichever is active Cluster Rendering ----------------- For the machines.dat file, the view frustums are calculated as percentages Scylla ------ Width - 14.0' Height - 11.2' mullionX = 0.6' mullionY = 0.58' So, for the perspectile with resolution 1280x1024 mullionX = (0.6/14.0)*1280 = 55 mullionY = (0.58/11.2)*1024 = 53 total resolution is X: 55 + 1280 + 2(55) + 1280 + 2(55) + 1280 + 2(55) + 1280 + 2(55) + 1280 = 6895 Y: 53 + 1024 + 2(53) + 1024 + 2(53) + 1024 = 3337 aspect = 2.066 mullion-X = 55/6895 = 0.8 2*mullion-X = 1.6 mullion-Y = 53/3337 = 1.59 2*mullion-y = 3.18 resolution-X = 1280/6895 = 18.56 resolution-Y = 1024/3337 = 30.68 so for each tile from bottom -left onwards 3 0.80 19.36 1.59 32.27 6 20.96 39.52 1.59 32.27 9 41.12 59.68 1.59 32.27 12 61.28 79.84 1.59 32.27 15 81.44 100.0 1.59 32.27 2 0.8 19.36 35.45 66.13 5 20.96 39.52 35.45 66.13 8 41.12 59.68 35.45 66.13 11 61.28 79.84 35.45 66.13 14 81.44 100.0 35.45 66.13 1 0.8 19.36 69.31 99.9 4 20.96 39.52 69.31 99.9 7 41.12 59.68 69.31 99.9 10 61.28 79.84 69.31 99.9 13 81.44 100.0 69.31 99.9 Cluster Config on XINDI ----------------------- Width - 15.95' Height - 12.05' mullionX = 0.725' mullionY = 0.65' Each tile in XINDI has resolution 1600x1200 with mullionX = 72.73 mullionY = 64.73 total resolution is X: 72.73 + 1600 + 2(72.73) + 1600 + 2(72.73) + 1600 + 2(72.73) + 1600 + 2(72.73) + 1600 = 8654.57 Y: 64.73 + 1200 + 2(64.73) + 1200 + 2(64.73) + 1200 = 3923.65 aspect = 8654.57/3923.65 = 2.2 as percentages mullion-X = 72.73/8654.57 = 0.84 2*mullion-X = 1.68 mullion-Y = 64.73/3923.65 = 1.65 2*mullion-y = 3.3 resolution-X = 1600/8654.57 = 18.48 resolution-Y = 1200/3923.65 = 30.6 so for each tile from bottom -left onwards 3 0.84 19.32 1.65 32.25 6 21.0 39.48 1.65 32.25 9 41.16 59.64 1.65 32.25 12 61.32 79.8 1.65 32.25 15 81.48 99.96 1.65 32.25 2 0.84 19.32 35.55 66.15 5 21.0 39.48 35.55 66.15 8 41.16 59.64 35.55 66.15 11 61.32 79.8 35.55 66.15 14 81.48 99.96 35.55 66.15 1 0.84 19.32 69.45 100.0 4 21.0 39.48 69.45 100.0 7 41.16 59.64 69.45 100.0 10 61.32 79.8 69.45 100.0 13 81.48 99.96 69.45 100.0