Blender Cycles:Lighting and Rendering Cookbook
上QQ阅读APP看书,第一时间看更新

A look at the hardware

As said before, Cycles is a pretty heavy render engine and needs the appropriate hardware to work correctly. Moreover, it gives us the possibility to use the power of modern graphic cards to speed up render time. Not every card will work with Cycles, so I thought it'd be worth it to say a couple of words about this topic.

Cycles can render on both CPU and GPU, even if at the moment it cannot use them at the same time. That being said, GPU render is faster than CPU (at least for the same amount of money spent on these two items), but the first one presents some limitations.

First of all, GPU rendering with Cycles works only with CUDA at the moment. CUDA is a proprietary technology of NVIDIA. This means that at the current state of its development, GPU rendering with Cycles only works with cards equipped with an NVIDIA chip, such as GeForce, Quadro, or Tesla cards. A similar technology that will allow Cycles to take advantage of video cards is OpenCL. This is an open source technology, which is supported also by AMD (and others, but AMD is the main NVIDIA competitor) cards, but unfortunately at the time of writing, developers have still not managed to implement these libraries in a usable way mainly due to the fact that OpenCL is still under heavy development.

So, to summarize, it is good to repeat it once again. At the time of writing these lines if you want to use a GPU to render in Cycles you need an NVIDIA card, and it looks like things are not going to change any time soon.

Now, what video card should we buy to get the best out of Cycles? I guess you are not new to computer graphics, so you may already have guessed the answer. The more you are willing to pay, the better the performance you will get. There are, however, some important points to keep in mind.

First of all, Cycles will load up all the information needed to render the scenes onto the video card memory. When the VRAM (video RAM) is full, your render will fail. This should make you understand the first important point—Performance is really important, but if you cannot render a scene at all, it is quite useless.

The second important point is that developing features for the GPU is much more difficult than developing them for the CPU. As I am writing these lines for example, new Cycles features such as strand rendering and SSS are available only for the CPU.

The third important point is that new Cycles releases often brought two things, among others, until now—Faster CPU rendering and slower GPU rendering. At the moment, GPU rendering still has the best performance/price ratio, but it's important to keep in mind the preceding three points while choosing the right hardware.

Choosing the CPU for Cycles is pretty straightforward. Any CPU will work fine, and the faster the CPU, the faster the render time will be. Keep in mind that there are fairly big differences between operating systems here as well. Both Linux and OS X are much faster than Windows while rendering on the CPU. The only way to get similar performances in Windows is by using a MinGW (Minimalist GNU for Windows) or the Visual Basic 2012 build of Blender. These are Blender versions built using a different compiler from the default one used, and they provide similar render times to Linux and OS X while using the CPU. The problem is that the stability of this version is not guaranteed.

Speaking of video cards, performances among operating systems is quite similar. Here is a brief list of some of the best video cards to use with Cycles in the order of performance. I will not list professional video cards such as Quadro or Tesla as they would require a more in-depth analysis. In my humble opinion, most Cycles users will not benefit from their usage:

  • GTX TITAN 6 GB
  • GTX 590 3GB
  • GTX 690 4GB
  • GTX 580 1.5/3 GB
  • GTX 680 2/4 GB
  • GTX 670 2/4 GB
  • GTX 570 1.2/2.5 GB
  • GTX 660 Ti 1.5/3 GB
  • GTX 560 Ti 1/2 GB

As you can see, apart from TITAN, the fastest single chip video card is still a 580 GTX. Despite the fact that the 6xx is newer, the rendering performance remains the same, or in some cases even got worse than the older 5xx. However, the 6xx comes with a higher amount of memory on board, which is an advantage on its side.

It is important to notice that the GTX x90 models are double chip versions of the x80 cards. They are faster, but the real amount of memory is half of how much is written. This is because the total amount has to be divided between the two chips, so Cycles will only be able to use half of the memory.

Some less powerful video cards than the ones listed here will usually still be faster than many CPUs, so in case you don't want to change the whole computer, it can still be a good deal to buy a cheap video card if you have an old CPU. Anyway, I advise you to always check benchmarks for the specific CPU or video card you are looking for. Keep in mind however, that a new high-end CPU (such as the Intel i7-4770K) under Linux will perform almost as fast as any lower-level card, other than the ones listed before.

Before moving on to the first chapter of this book, I would like to provide you with a useful link where Blender users upload their performance results with Cycles:

http://blenderartists.org/forum/showthread.php?239480-2.61-Cycles-render-benchmark

In the first post you will find a link to the benchmark used, another one where you can upload your results, and a last link that will open up a page with a result summary.