Author: Bjorn Andersson, www.linova.com, 8 June 2004, updated 30 dec 2004
SUMMARY: LinoGrid Renderer is a plugin for the 3D rendering application
Art of Illusion. LinoGrid Renderer uses the
LinoGrid framework to render images. This framework makes it possible to
achieve parallel rendering on several computers, which will in turn speed up the rendering process.
This project was a part of Bjorn Andersson's master thesis at Linova.
Rendering a 3D image can often be a heavy computation, which takes both time and power. While Linova developed the LinoGrid framework, Art of Illusion became one of the applications it was first tested on.
The LinoGrid Renderer works in the same way as the traditional ray tracing plugin that follows Art of Illusion, with one big difference. The rendering is computed on a LinoGrid, which means that many machines help out to render the image. This saves the user time and demonstrates the usability of the LinoGrid as a grid-computing tool.
A LinoGrid is a simple computational grid consisting of a set of LinoGrid Engines running on computers connected with a standard computer network.
For more information see the LinoGrid page.
The LinoGrid Renderer software comes in one distribution: linogrid_rendererX.Y.zip, where X.Y is the version number of the distribution. The file can be downloaded from the Linova homepage. LinoGrid Renderer is developed and works with Art of Illusion 1.7.1 and LinoGrid 2.2 (and future releases).
This distribution contains everything one needs to use the LinoGrid Renderer as a plugin for Art of Illusion and for further development of the plugin. The different parts are:
To use LinoGrid Renderer as a plugin, just extract the zip file and place the linogridrendererX.Y.jar in Art of Illusion's Plugin directory.
For developers there is an ANT build script that can be used. See the section for developers
If linogridrendererX.Y.jar is placed in Art of Illusion's Plugin directory, LinoGrid Renderer will show up as a Renderer choice.
When one chooses LinoGrid Renderer one will perform a parallel ray-trace rendering.
A notification of the version number is shown and in addition to all the normal settings option for ray tracing, there is a button named Engines, which will open the Engine Option Window.
If the Use engines on the intranet checkbox is activated the Renderer will search for LinoGrid Engines on the intranet. It will search through 256 IP-addresses where the 3 first bytes are the same as the user's IP-address.
The New engine IP text field is used to type in IP-addresses of machines you want to use in the grid rendering. When an address is typed in, a click on the Add engine IP button will add that address to the search-list and the address will appear in the white field in the middle.
If an address in the white field is marked and the Delete engine IP button is pressed, that address will be deleted from the search-list and the white field.
All the addresses in the white field can be saved in text files using the Save engines button. These text files can later be loaded using the Load engines button.
The Use resource button is used to choose a resource file that will be loaded to every LinoGrid Engine found. This file should be a compressed archive file with Java class files. These classes will be loaded directly when a new Engine is found and will minimise future class loading. The LinoGrid Renderer distribution includes a file called resource.jar, which contains a lot of classes that will be used in every render. The user can of course use its own resource files.
MARK! LinoGrid Renderer will NOT work if the following classes are included in the resource file:
The reason is that these classes in original form will perform forbidden operations on the Engines. Therefore are these classes loaded from the linogridrenderer package.
The rendering resolution is specified in the # rows in one task field. A high resolution will use the total computational power more, but will also increase the scheduling time and network workload.
Every machine participating in the LinoGrid must have a LinoGrid Engine running. To have LinoGrid Renderer work properly with the Engines you have to start the Engines with the allowGraphics flag. Since the rendering also demands a certain amount of memory, the allowed memory for the Engine will be needed with the java Xmx flag.
the LinoGrid Engine can be started in one of three modes:
So if X.Y is the LinoGrid Engine version number and we will run the engine with 256 Mb memory the syntax would be:
java -Xmx256m -jar linogrid_engineX.Y.jar <mode> -allowGraphics
This section contains information for the LinoGrid Renderer developer, that is, someone who modifies or extends the functionality of LinoGrid Renderer.
The LinoGrid Renderer is based on the ray tracer plugin that follows the Art of Illusion 1.7.1 distribution. Most of the source code is intact and the only class that has major modification is the Raytracer class, which has been split up into three classes: LinoGridRaytracer, SetupTask and TraceTask. The main class is the LinoGridRaytracer, which creates the setup task, divides the rendering into trace tasks and finally gathers the results from finished trace tasks to an image.
There are three types of tasks sent to the LinoGrid Engines. These are:
The following flags can be used in the prompt with the ant command.
An example is: