Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!rutgers!mit-eddie!husc6!ut-sally!utah-cs!utah-gr!peterson From: peterson@utah-gr.UUCP Newsgroups: comp.graphics Subject: Re: Ray Tracing & filter references Message-ID: <1908@utah-gr.UUCP> Date: Tue, 3-Feb-87 15:58:52 EST Article-I.D.: utah-gr.1908 Posted: Tue Feb 3 15:58:52 1987 Date-Received: Wed, 4-Feb-87 07:18:53 EST References: <179@ndmath.UUCP> Organization: University of Utah CS Dept Lines: 31 Keywords: references, ray tracing, box filters Summary: Making pictures on multiple machines > One other thing...I would appreciate comments from any graphics hackers on > the workability of splitting up complex Ray Tracing or other types of hidden > surface rendering algorithims between a number of CPU's for speed in process! > I expect to have access to an ethernet with a large number (20 or more) > of identical Unix machines and I would like to experiment with breaking a > picture up in pieces and giving each machine a chunk to work on. > If your making movies this is easy - just dole out frames to individual processors. For making a single complex still, the issue becomes much more complex. First, you will usually lose if you just hand out equal portions to various processors. In most images, some complex scanlines may take 5-10 times as long as those in simpler areas of the image, particularly if you're doing adaptive anti-aliasing. One approach I've used is to render a small (say 128x128 pixel) copy of the image, and keep track of the times required for each scanline. Then use these scanline times as guide for splitting up the work on the big picture. Another approach - if you're really into network hacking - is to make the ray tracer work on small chunks (say 1-10 scanlines) as a client process. A single server on the network then hands out chunks of the rendering work to the ray-tracing clients until the picture is finished (I think Apollo may make their SIGGRAPH movies this way). If you use the first techinique, I strongly recommend generating an alpha (matte) mask for indicating which pixels are finished. Then all you have to do to put pieces together is feed them to your compositor.