Faster results will be achieved by decreasing the amount of calculations the renderer has to do. In general the rules are:
- less geometry
- smaller textures
- fewer light sources
- simpler shaders
- 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.