I have a fairly complex scene that I would like to render in cycles. However, it is taking forever (as I expected). I have two computers (a laptop and a desktop-both are Windows 10, neither has a graphics card, and from within the last 3 years.) Is it possible to somehow take advantage of both computer's power to render the scene more efficiently?
If you are rendering a single image
Since you are using Cycles, you can render the same scene on the two computers using half the number of Render samples on each one, then compositing them (in GIMP or in Blender), superimposing one onto the other with 50% opacity.
The two computers must use two different values (like, 0 and 1) for "Seed", otherwise you'll only get the same exact image, with half the shading quality, twice.
Grant Davis in a comment suggests that each instance of blender should output an OpenEXR image, which allows for a finer memory representation of color, so that less information is lost on the way to the final image.
Once the two computers have created their renders and saved as .exr, open a new blender instance and set the render size to the same it was in your scene. Then create your compositing nodes: two image inputs and a mix node.
Here, each image was rendered with full global illumination at 128 samples. You can see the top one when I mute (M) the Mix node. The mixed version has a quality comparable to a 256 samples render.
For animations, Tooniis' solution works fine.
If you are rendering an animation:
Render some frames on the laptop and some on the desktop, then combine the result files. Make sure you are rendering individual images not video. Render more frames on the faster machine and leave less for the slower one.
If you are rendering a single image:
Split your scene into 2 (or more) render layers, then render one/some layers on the laptop and the remaining one(s) on the desktop. After rendering you can combine the result rendered layers into 1 image using Blender itself or some image editing tool (like GIMP). Again, render the more complicated render layer(s) on the faster machine and leave the less complicated one(s) for the slower machine.
If you are willing to invest time into setting it up, Blender DOES have a network rendering solution for multiple machine rendering (render farms/servers).
This way you can hook up both of your machines and split the render load between them.
A variation on the solutions mention here is one I've just started using: Note this is for animations only, not stills.
Go to the render tab, under output and UN-check "Overwrite" and check "Placeholders". The default is the opposite to this. Choose an output location that ALL computers can access. Then simply click the animation button. Repeat on all computers you have.
The first computer will render frame 1. the second will see there is a placeholder for frame 1 and start rendering frame 2 (making a placeholder too), the third will start to render frame 3. And so on..
This way all computers will co-operate with each other, rendering whatever frame needs rendering next.
For an animation you make each machine render a different range of frames, as rendering an animation to a sequence of images is normally recommended it is similar to a normal render. Once finished you can add the image sequence to the vse and render to a movie file.
For a still image you can split the image up using the render border settings, like shown here so that each machine renders different parts of the final image, these can then be combined. With the crop to border disabled, and saved to an image format that supports alpha, such as png, you can open the images in gimp using open as layers and get each piece in place so you can then save the combined image. Having multiple images from the above script, you can use
convert which is part of imagemagick to combine the images with
convert chunk_* -layers flatten final.png
Crowdrender do a network render-farm addon. Pay attention to the setup instructions and it works a treat.