Cycles speedup

Hi @nathanletwory and others,

I would like to know a little about what affects the render speed of Cycles.
Or better:

  • What settings to use for the fastest results
  • Does it help to reduce polygoncount?

I ask because for a current project I’m simulating shadows on a translucent material
(Already available due to Nathans quick support)
But the render times are long and I can use all the time saving as we are trying out different setups.
Is there a way to reduce graininess in some way?

Thanks
-Willem

Hi Willem,

Faster results will be achieved by decreasing the amount of calculations the renderer has to do. In general the rules are:

  1. less geometry
  2. smaller textures
  3. fewer light sources
  4. simpler shaders
  5. fewer bounces

For 1. both reduced poly-count and fewer objects will help. If you have objects in your scene that won’t affect the end-result of the render hide them

To handle 2. use the smallest possible texture that yields the result you can accept. This is more of a memory usage thing, but will decrease render start-up time.

The fewer light sources, the less work the renderer has to do to find out shadow intersections for objects. If possible don’t use skylighting, but well placed directional light primitives

The last point, 4., is a bit tricky currently, because you don’t have control over those. In an ideal world where you are a render wrangler and know how to build shaders you’d optimise each shader (material) as much as you can. To simulate Rhino basic materials that have much of the features in use the resulting shader is quite complex. If you have many objects using such materials you’ll see what I mean. Compare to renders of your same scene where all objects have a simple basic material with only diffuse solid color set. This was the simplest case to create the simplest possible shader for. Creating optimised versions of the basic material for different combinations of settings (diffuse, specular, reflection, transparency, diffuse texture with and without alpha, transparency texture, bump map, and so on) is possible, but quite time consuming. I have done already some, but this is far from complete. Also, the world shader (combination of background, reflection and skylight env) is currently quite complex, so this also impacts render times somewhat.

Lastly there are some render settings to play with that can change render times quite dramatically. They are currently found under RhinoCycles_SetRenderOptions. What you’ll want to do is play with the amount of bounces done. By default currently diffuse bounces is on 0, so that should be already pretty fast, but there’s still transmission, transparent and glossy (reflection) bounces that you probably can turn down. I think aa_samples you also could turn down, but the other sample versions (diffuse and glossy) are in use only if BranchedPath integrator method is used (Path is default). So, in short, set max bounces for all types available to as low as you can get a good render result with.

Regarding graininess it generally means you’ll have to let the render run long enough for it to converge. If you can, please send me (see pm) files from your project to be able to investigate what you’re working with and how you have set up your scene.

I hope this information helps you in finding better setups for your work.

/Nathan

1 Like

Hi Nathan,

A late reply, but I want to thank you with the pointers for the speedup. I got caught up in the project so I could not give some feedback earlier.

Reducing polygons and objects made a difference, Still the graininess was an issue but than again I had to deal with detailed/narrow shadows on the inside of a translucent material and it simply took a while before they appeared through the grains:

I have discovered that part of the speed issue was that I used multiple area lights on the same spot to intensify them. It was only later I remembered that it is possible to set light intensity to a value above 100 only by typing it or via the spinners and not via the use of the slider:

This should be corrected, maybe @andy knows who this should be addressed to.
I found this related closed issue: http://mcneel.myjetbrains.com/youtrack/issue/RH-28510
However It is still not obvious that a value can be set above 100. Most users will jag the slider up at max(100) and leave it at that. There is nothing to indicate there is a higher value possible. I resorted to stacking lights in order to achieve what effectively could be done by upping the value above 100.

Nathan, again thank you for the support on this!
-Willem

Indeed adding lights means longer render times. I’ll have to check if I’m not inadvertently capping the maximum value for lights during data conversion, this indeed would be a useful way to get very strong lights with no added overhead.

/Nathan