Distributed Rendering
The distributed rendering system of Realsoft 3D subdivides an image to a number of sub images and uses available rendering servers to render them.
Rendering on a multi processor workstation
If you have a multi processor system, you probably want to use all the processors to speed up photorealistic rendering.
To prepare the program to take advantage of multiple processors:
1.Go to the Rendering Settings tab in the Select window and double click the desired rendering settings object to open the property window.

Double click the desired rendering settings object
2. In the 'Distrib' tab set the 'Threads' field to a suitable value. For example, set 'Threads' to 2 in order to use two processors.

Set 'Threads' to 2 to use two processors
3. Make sure that 'Box Rendering' is checked and that the number of boxes exceeds the number of processors. ('Box Count X' times 'Box Count Y' >= Number of processors)
4. Drag & drop the rendering settings object from the select window into the view window. Click 'Render'. Notice how several render boxes become rendered simultaneously.
You can also select a suitable rendering settings object for the view using the view property window.

A view window uses 'distributed rendering' settings object for rendering.
The file render window contains a similar rendering settings selector allowing you to use multiple processors to render images and animations to a file.
Configuring distributed network rendering
Distributed network rendering means using several workstations connected through a network for rendering.
Before you can use other workstations for rendering, the distributed network rendering system must be configured. The following things must be prepared for every workstation in the rendering network:
1. TCP/IP protocol must be installed and running. Unfortunately, this is something Realsoft 3D can't set up
automatically for you. Consult your network administrator if necessary.
2. There must be a 'r3rendd' rendering daemon running on every workstation that you want to use for rendering.
You can install Realsoft 3D using the 'Network' option to obtain a minimal render server configuration.
The full program setup naturally contains all required components as well.
'R3Rendd' is a very light and small program which just listens to incoming rendering requests and spawns the actual
rendering server to get the requested image rendered. It may be a good idea to insert 'R3Rendd'
into the startup folders of render servers. Then the rendering service is automatically activated when a server machine is
turned on.
3. You might also want to check the 'hosts' file to make sure the file contains the host names and IP addresses of all other workstations you want to use from that particular workstation. In Windows NT systems, this file can be found in the 'winnt\system32\drivers\etc' directory. Unix systems keep this file in the '/etc' directory. It is your network administrator's responsibility to maintain appropriate IP addresses and names.
Using network rendering
Once you have prepared the workstations for network rendering, you can ask Realsoft 3D to use one or more of them for rendering.
1. Define the host names you want to use for rendering in the 'Rendering Settings/Distrib' tab. If you have not defined the machines as "host" names then use the IP addresses instead. For example: a machine is called 'sun' and sun's IP address is 10.0.0.5. You can use either the host name 'sun' (if setup in the Hosts file described in step 4 above) or the IP address of 10.0.0.5.

Network rendering activated. In addition to one local rendering thread, three servers are used for rendering: moon, mars and sun.
2. Set the desired box count using the 'Box Count X/Y' sliders. The number of boxes should be higher than the sum of threads and servers so that a single image can be divided to all threads.
Optimal box count depends on several things, like the speed of the network, available memory, size of the image to be rendered and performance of the rendering servers. If all the systems are equally fast, the optimal speed might be achieved by setting the box count to a multiple of the sum of threads and servers. In the example image above, such box counts are 4, 8, 12, etc. A high box count adapts better to speed differences, but requires slightly more managing work from the program. Finding the optimal configuration may require some experimentation. Generally, smaller box counts yield faster results.
3. Drag & drop the desired rendering settings object into the view window and render. You should now see several boxes being rendered simultaneously in the View window.
Symmetric multiprocessing and network rendering can be used simultaneously. In other words, you can use the processors of your local workstation as well as processors in other workstations of the TCP/IP network.
Rendering over internet
When using rendering servers over an internet connection, data transfering often becomes the bottleneck.
The performance can be optimized by configuring a hierarchical rendering distribution tree. For example, consider a
situation where you want to use your local rendering network and another remote network. The actual computers
(their symbolic host names) may be as follows:
- local_dp_1: local dual processor system, the workstation you are working on
- local_sp_2: local single processor system, a render server
- local_sp_3: local single processor system, a render server
- remote_sp_1: remote single processor system, a render server
- remote_dp_2: remote dual processor system, a render server
- remote_dp_3: remote dual processor system, a render server
1. The remote network should be configured as follows:
- remote_sp_1: start 'r3rendd' just with the default parameters
- remote_dp_2: start 'r3rendd -threads 2'
- remote_dp_3: start 'r3rendd -threads 2 remote_sp_1 remote_dp_2'
In above, the dual server (preferably the fastest of the remote servers) is started so that uses its both
processors and also connects to the two other computers on the remote LAN.
2. The local render servers are started as follows:
- local_sp_2: start 'r3rendd' with the default parameters
- local_sp_3: start 'r3rendd' with the default parameters
3. The 'Distr' tab render settings of the actual rendering client 'local_dp_1' are the following:
- 'Threads'=2 because there are two processors in the client itself to utilize
- The 'Hosts' list is remote_dp_3, local_sp_2, local_sp_3
Now the rendering client uses 5 render engines (2 threads + 3 network servers), so the render box count should
be at least 5. However, since the remote network with several processors is probably much faster than
the local single processor render engines, it is best to use high box count that adapts to the speed differences.
Multiplying the thread count by 3 might give a good result:
- Box Count X = 5
- Box Count Y = 3

Now, if the internet connection works fast enough, the remote network may render 6-8 boxes and the
local network the remaining half of the boxes. The following diagram illustrates the structure of the
rendering distribution:
