Please note that while this tutorial advocates the use of many instances of AccuRender, installed on many workstations, it in no way implies that multiple copies should be installed without proper licensing. Make sure you read your licensing agreement properly before reading on.
Although the majority of users of AccuRender use the program on a standalone basis, AccuRender can be set up to work on a local area network (LAN) very effectively. There are a number of advantages to this, from the ability to load the same model on any computer with AccuRender installed and expect the same materials, plants and lights to be defined, to the nirvana of distributed processing for animations and panorama networks. Even multiple stills production can be speeded up this way through sharing of tasks among different workstations, or nodes, on the LAN.
As discussed elsewhere at AccuStudio, real distributed processing as seen in high end rendering packages such as 3DStudioMAX is still not available in AccuRender. However, this doesn’t mean that we can’t simulate the process to some degree. For animations especially, the gain in rendering speeds will be at least as good as real network rendering. It does take a little bit longer to set up, but in general the result is more stable than some other more advanced implementations.
The first job is to assign the role of "Library Server" to one of the workstations on the network, this will be called the Server. The Server holds the definitions for all of the materials, plants and lights on your network. Generally this will be the main server, but on a peer network it will be the machine that is most often left on, or is considered the most stable. If the Server is not available, the other machines will not have access to the materials, plants and lights that they need. These "Library Clients" will take a slight performance hit if the network does not have the capacity to sling large bitmaps about, so if you have a 10Mbit network it will be best to use the most used AccuRender workstation as the Server.
Sorting out your Libraries and Setting Up the Library Server
If you have previously used AccuRender as a stand-alone program on several machines, you may have to combine the libraries so that everyone’s materials are available to the network. There is no easy way to do this other than to copy the relevant files out of the \accuren3\common\support folders on the individual machines and into the server machine’s \accuren3\common\support folder. Remember to rename the files so that they don’t overwrite each other. The files you need to copy over are: user.mlib, user.plib and user.llib. You should also include any other user-defined libraries for example project.mlib files. You can generally ignore the contents of the \internal folder unless you have customised some of the materials associated with the AccuRender plant libraries.
It may be a good idea to the combine the user libraries into one, so it can more easily be updated over time. You can also begin to sort out the locations of bitmap files associated with the materials, which should also be in a central location on the Server. You will need to set up a folder structure on the server that can contain all of the bitmaps used with AccuRender. It might look something like this on the Server:
Assign a share to this folder. Let’s call the share "Maps". You should also share the \accuren3\support\common\ folder and the \accuren3\support\common\internal folders on the server. If you have the AccuStudio libraries installed, share this as well. You will now have 4 shares:
Using the Tools\Options dialog in AccuRender, add a path to the new AccuRender Maps folder under "General Search". You now have the Library server ready, so we will move onto the client machines.
Setting Up the Library Clients
Using Network Neighborhood, select the server and identify the four shares. You will need to assign network drives to each of these shares, so you should pick 4 drive letters which you can stick to on each Client machine. Assign each share a driver letter, and make sure that each is set to be reconnected at logon. You may find it useful to write a batch file to make these connections to save time on the other machines, or to reconnect the drives if the connection fails. It will look something like this:
Now, on the Client machines, it is best to remove any libraries that you have stored locally. This will stop possible incorrect material assignments. Make sure you back up all of the files first, and then remove the folders: (including their subfolders)
You may need to close AutoCAD in order to delete all of the files. You are now ready to configure AccuRender on the client machines to look for those files on the Server.
Using the Tools\Options dialog, completely clear out any paths that are currently set up. Then add the following paths under the correct headings:
You will need to carry out this process on each Client. Test that the libraries are available by starting up AutoCAD and AccuRender and looking under the Tools\Material libraries from the pulldown menu. If the Server’s materials libraries do not appear, you have the paths, shares, or network drivers set up incorrectly, so check each in turn and correct the problem.
Using AccuRender on the Network
When all of the libraries are shared between the machines, creating a new material, light or plant will automatically place the definition in the shared USER library on the Server. Given that there will now be more than one person controlling the placement of new material – and there are no "permissions" settings, you will have to make sure that your folder arrangement in the custom libraries is logical. It might be a good idea to set up your USER libraries using the AccuStudio libraries as a model. This will also make it easier to submit your custom materials to AccuStudio.
Now that any model will load on any Client, the possibility of network rendering is open to you. The following sections describe the best way to distribute rendering across the network.
Rendering Animations on a Network
When rendering an animation, there are generally two output file types: individual frames, or a single animation file. You will need to create individual frames rather than an animation file to make this work, and this is a common output format anyway. For more information on creating individual frame animations, take a look at the AccuStudio tips and tricks page. Rendering an animation over a network is simply a case of choosing which frames will be rendered by which Client. The first thing to sort out, however, is where the file output will be. Usually, AccuRender places the animation output files in the same folder as the model DWG file. Use the "Output" path in the AccuRender Tools\Options dialog to override this. However, it is usually easier to make a copy of the model file in a folder specially created for the animation frames, probably located on the server.
Set up the model completely ready for rendering on one machine and save the model. Once you have all of the Client machines set up with the model loaded, and radiosity either loaded from a file or calculated on each machine, you are ready to distribute the frames. This is the best way to calculate it, assuming that each machine has enough memory to render the model.
Let’s say your network has the following Clients on it.
1 300A Celeron
1 Dual Pentium II 333Mhz
1 Dual Celeron 433Mhz
Add all of the Client’s processor speeds together. For our example: 300+333+333+433+433=1832Mhz
For each machine, divide the speed of the machine by the total.
300A Celeron 300/1832=0.16
Dual PII 333 666/1832 = 0.36
Dual Celeron 433 866/1832=0.47
Now multiply the number of frames in the animation by the value for each Client to estimate how many frames each machine should render. For a 2000 frame animation:
300A Celeron 2000x0.16=320frames
Dual PII 333Mhz 2000x0.36=720frames
Dual Celeron 433Mhz 2000x0.47=940frames
Next, set up each Client to render the relevant frames. Add a few frames to each machine just to make sure as overwriting the frames produced by another machine won’t do any harm. As you can see, the inaccuracy of the calculations above would leave 20 frames unrendered (320+720+940=1980), so it is best to overestimate.
In the "Render Frames" dialog, set each Client to render the proper range of frames.
300A Celeron Render frames 0-330
Dual PII 333Mhz Render frames 325-1045
Dual Celeron 433Mhz Render frames 1040-2000
Finally, there is the auto-exposure "bogey" to sort out. If you have set up the animation to "re-calibrate every frame" then you will have no trouble. However, it you prefer to leave this unchecked – which results in an animation with less flickering, but can look very over-exposed or under-exposed in parts, then you will need to sort this problem out.
On each machine except the one that is rendering from frame 0, you will have to render frame 0 first. You only have to complete the first pass, so it shouldn’t take long. After it has appeared on the screen, go to "Adjust Exposure" in the raytrace dialog and tick the "Lock Exposure Setting" check box. After that you can set the machines up to render the required frames safe in the knowledge that there will be no change in exposure at the junction of the different sections.
Rendering a Panorama Network over a Network
Distributed processing is more time efficient because of the sheer amount of frames involved in an animation. With a Panorama Network, however, each machine will have to render one node at a time, so the efficiency will be reduced. This doesn’t mean that it is a pointless operation though. Once you have the network in place, rendering with many computers is easy and can result in extremely fast rendering times for Panorama Networks.
As with animations, your first task is to set up the Panorama Network. I won’t go into this in too much detail because it is all in the help files, but you will obviously need to set up multiple nodes or viewpoints. Once you have done this, save the AutoCAD file to each Client machine, and open that file on each Client that will participate in the rendering.
From the Raytrace tab, change the rendering Type to Panorama Network to open the Panorama dialog. Now you must select the nodes that each Client will render. This is more difficult than with an animation, because some nodes may be significantly more complex than others. You will have to estimate how many nodes each machine can render, and which ones it will do using a similar method to that outlined above.
Now select the relevant nodes on each Client, and set them rendering. When they have finished, all of the files will be in the same place, and all nodes will be available for viewing, and they will be linked to each other.
Rendering Single Frames over a Network
Due to the limitations of this process, single frames gain least from this process. In fact, unless you go to a lot of trouble with selecting Windows to render on each client rather than the Entire Display, distributed processing for a single frame is impossible in AccuRender.
More often than not, though, we need more than one image and this is where AccuRender’s invaluable Batch Processor comes in. Normally, if you need more than one image, you will use the Batch Processor to define the views and so on. On a network, you can load the same model on all of the machines and run different jobs on each one. Consequently, you can get many more images out of a single model than usual.
These techniques will seem like mere workarounds to some, and to others they are a dream come true. In reality, they are neither, and while this kind of thing can be extremely effective in some situations, they are no match for true server-controlled network rendering.
One of the major advances in AR3 over AR2 was the support for multi-processor systems, and support for distributed processing over a network is really an extension of this. We have it from the highest authority that true network rendering will be seriously considered for the next major release of AccuRender, as you can read in an interview with Roy Hirshkowitz in the AccuStudio spotlight area.
The ability to properly share libraries over a network is a very important one and should be used whenever you have more than one AccuRender workstation. With or without network rendering proper, this will remain an important issue, whether you have fifty AccuRender workstations, or just two.