Blender 3d: Render 1 Image Simultaneously On 2 Computers
Thursday, December 18, 2008
You might have heard of a 3d render farm. It is when 2 or more computers are pit together to render a 3d animation. If there are 2 computers for a 200 frame animation, computer A will render frames 1-100, and computer B will render frames 101-200. Then, the frames are all put together to form a single animation.
Blender 3d Render Farm, Budget mini 3d Render Farm, Blender Tricks and Hacks, parallel processing, parallel rendering, blender multi core benifits
Recently, Blender 3d has allowed parallel rendering on a multi core computer. This has greatly improved render times among many users out there. But sometimes, even one bad-ass, ultra overclocked quad core computer many not be enough! This is especially so for some detailed models with lots of polygons and ray-tracing materials. So, why not 2 or more?
However, blender doesn't have a function that allows users to split up the workload easily. Most users out there are trapped with a single computer. Luckily, there IS a way out. Here, I will teach you the trick that many Blender users have overlooked.
The Concept: Spliting Renders Then Combining Them Back
Blender renders images pixel by pixel. For every pixel, it calculates the color of the point in the 3d model that is represented by it. When functions like ray tracing is used, complex calculations to are needed trace the path of light rays to find the exact color.
The main idea of this tutorial is to fill up some of these pixels with pixels that take negligible time to render, then make a few copies with different parts blanked out. All these copies are rendered in separate machines then combined back together to form 1 render.
For this tutorial, I will be using a 3d file that I've made sometime ago. Because it heavily utilizes ray tracing, it took my computer about 34 minutes to render it alone. For this tutorial, I will be using 2 computers to render. The first one will be my own Q6600 quad core machine, and the 2nd one will be my friend's machine with the same processor.
Firstly, open up the .blend file you really want to render on two computers. You should see the stage of your design. Of course, it will be different from the picture below.
Press number pad 7 to go to top view.
Zoom in onto the active camera. (You can use the Ctrl+numberpad arrows and your mouse's scroller to shift your view and zoom in into there) Then, click on somewhere, very near the front of the camera and in the middle of the camera's view. (Similar to the picture above)
Your crosshair will go to the spot you click. This is so that any mesh we create will spawn from that spot.
Next, go to side view by click on 3. Click on somewhere in the middle of the camera's view to set the crosshair there.
Next, go to the camera view. View -> Camera.
We have to make something to block the camera's view. With the crosshair intact, create a new plane. Press "Space" on your keyboard, then go to Add -> Mesh -> Plane.
There should be a new plane in your 3d view. You may want to resize it a bit smaller or bigger, so that it is easier to handle and drag. To resize, press "R" on your keyboard.
But, no matter what size it is, one of the sides of the plane must be longer than one of the sides of the camera. For this case, since it is a horizontal image, the height of the plane should be longer than the height of the camera's view.
Drag the plane to the left, so that one of the sides almost meet the vertical line of the crosshair. Since it is being dragged left, the right edge should not cross over the vertical line. A bit to the right is ok, but not to the left where it crosses over.
Then we have to give the plane a good material that won't be calculated in the blender render, yet effective to block half of the image when rendering. Firstly, make it black. The darkest Black.
Then, we have to make the material have no reflections, no shadow, no shade and completely unaffecting the surroundings. It is just to block the view Drag the "Ref", "Spec", "Hard", "Amb", "Emit", "SBias" to the lowest setting.
Deselect "Radio", "Traceable", "Shadbuf", "Shadow", "TraShadow".
Save your file. (Ctrl+W) Don't worry if you want to revert things back to the original again. You just have to delete the plane in front of the camera to do that.
Make a copy of the .blend file. Then, transfer this copy to another computer which you want to use for rendering simultaneously.
Open up the copy in the other computer. While still in the camera view, drag the plane to the right, so that its left edge is just.. a bit to the right of the crosshair. You are almost ready to render. But hold on... its always better to save this copy before you do that, as blender may hang while rendering.
Ready, set, go! Render!
With two similar computers, it took a total of 19 minutes to render. Slightly more than 1/2 of the original time (34 minutes with my computer alone). But definitely a huge improvement!
Once you have finished, you can save the renders (F3 for shortcut). Then, you can combine them together using your any image editor!
Labels: Blender 3d