What is Rayshade?
How did using EnFuzion help image rending with Rayshade?
How was EnFuzion used?
EnFuzion and Rayshade had to be installed on all participating computers. The installations were accomplished easily with the EnFuzion installation program.
Rayshade produces an image from a description in a text file. To distribute the rendering of an image over a network of computers, a single line to the Rayshade input text file was added. This line in the text file specifies the line in the image to be rendered. For example, with the screen size:
screen 1280 960
the developers added the following line to the input text file:
window 0 1279 $line $line
At runtime, EnFuzion replaces $line with successive line numbers so that each image line is rendered separately.
The plan file for EnFuzion specifies parameters, execution of the user program and its input and output files. The following plan was used to distribute the rendering of Aquarium over a network of computers:
parameter line integer range from 0 to 959 step 1; task nodestart copy aquarium.ray node:. copy granite.map node:. endtask task main node:substitute aquarium.ray myaquarium.ray node:execute rayshade myaquarium.ray aquarium.$line.rle copy node:aquarium.$line.rle . endtask
The parameter statement specifies that image lines range from 0 to 959, therefore 960 jobs are generated at runtime to render the image. The value of $line is different for each job, causing Rayshade to render a different line for each job. The nodestart task specifies files that are required to render the image. These files are copied at runtime to all the computers once, at the beginning of the computation.
The main task substitutes $line in aquarium.ray with the actual line number to obtain myaquarium.ray. myaquarium.ray is different for each job. Next, Rayshade is executed, which produces a single image line. The last statement in task main copies the resulting image back to the main computer.
The task of joining all the line images into a single image is straightforward with the rlecomp command and not shown here. You can obtain rlecomp as part of the Utah Raster Toolkit.
|Copyright © 2002 Axceleon Inc. All Rights Reserved|