Cycles Considerations
Rendering Concepts
Computer graphics is essentially computing light paths of light emitted by light sources as it interacts with different kinds of surfaces.
Rendering a scene is the process of calculating light behavior for a given scene setup, from the point of view of the camera.
More complex the light behavior, more involved the rendering process is.
The path of lights has to be computed in the 3 dimension by the render engine. It takes into account the phenomena associated with light when it interacts with the geometries and their assigned material described in the scene. There may be other visual elements like fire and smoke.
Resolution and Resources
Higher the resolution of the light path computation, more defined the obtained render is.
This higher resolution of light path computation is decided by how long the light path is traced, including the new paths created by splitting by various degrees at material surfaces, bending and reflection.
How many of these behaviors is accounted for also weighs in on the resolution of computation.
Computation resources i.e. memory and processor time are used to render images in the domain of computer graphics.
Higher the resolution of the light calculation, more the computational power needed. After a certain threshold, higher resolution adds more time to the computation.
Cycles
It pays to understand the settings of the engine and its interaction with the scene elements.
Computationally, the pixel RGBA values have to be calculated to render the scene from the camera’s POV. This is a summation of all the light activity through the depth of the scene as seen by the camera’s pixel.
Cycle uses the Quasi-Monte-Carlo Integration method to do this. In this process, it uses random points in the depth to compute the light at that point and, putting it very simply, averages it into the pixel.
Until a certain threshold specific to the scene, more samples of the scene results in less noise. The way the random points are chosen as influence the noise depending on the how involved the scene is.
Trade-Off Spectrum
The more detailed the render engine has to be with the light calculations, the longer the render is going to take for a given amount of computation power.
The cost of higher resolution is computation power and time.
The cost of lower resolution is noise and loss of detail in light behavior in the scene.
Assessing a scene along the lines of all the light computing features of the package is a great skill to nurture. With this, it would be possible to consistently obtain the fastest render time without letting precious computation resources spent go to waste or sacrificing the detail in the render obtained.
Tuning Engine and Project Settings
It is important to know the goal of the render - it is usually to convey some meaningful information. Reducing render time is crucial to be able to iteratively improve renders that better depict this information.
Cycles engine settings along with mesh, material and visual component settings affect render times. Following are some considerations to be aware of.
These consideration applied to the project to be rendered may enable significantly faster renders with little to no degradation in the usability of render.
Negligible Gains
The render engine has features that compute light paths in a certain context. This includes light emission, reflection, refraction, transmission through transparent materials, diffraction and caustics.
Speed is a by-product of accuracy
Renders get faster if computational power is allocated only to the features that matter for the context of the scene. How much of the feature is used also matters.
Along each feature of light computation, for a given scene, beyond a certain threshold, no improvements in noise performance is obtained with higher computation costs.
Estimating the right amounts of each feature can help reduce render times.There is a sweet spot in the combination of all settings where you can eat the cake and still have it.
This requires a good understanding of what each setting does in the mesh, materials, light sources, and the render engine. This way, computational power can be directed to only enough amount of the necessary features to obtain the render in the shortest amount of time.
Render Engine Settings
Device
- use the GPU option if available
- GPU literally stands for Graphical Processing Unit
- dedicated hardware for processing light paths i.e. graphics
- get an appropriate tile size in the performance options
Sampling Options
Integrator
- Path Tracing:
- makes samples faster to compute
- but needs more samples to clean up the noise
- Branched Path Tracing:
- particularly useful for scenes with direct and one-bounce lighting
- reduces noise but makes each sample slower
Number of Samples
- Render Samples: 256 samples results in acceptably noise-less renders
- when the light interaction in the volumes in not intense
- caustics
- particles
- fire and smoke
- use the de-noiser in the layer passes
- the default settings might need tweaking (needs more experimentation)
- necessary to compensate for lower samples
Advanced
- Seed:
- sets the pattern of selecting random points for integration
- using a different seed for a specific scene sometimes results in a faster render
- different seeds values gives different noise
- Pattern:
- Sobol and Correlated Multi-Jitter are two available pattern options
- Both are better than random point selection for integration
- as they make educated guesses for selecting points for the integration in the succeeding sample
- how ever, it some outlier scenes with extreme refraction and low light, Correlated Multi-Jitter produces render which are less noisy, albeit with increased render time
- A generic scene will not benefit much in terms of render time by either
Light Paths Settings
Max Bounces
- more bounces means the light path has to be calculated for longer
- this means more computation and more render time
- beyond 4-5 light bounces, there is no considerable noise gains for 1080p renders
- below 4 bounces, complex phenomena like transmission through transparent substances suffers
Clamping
- reduces the max values of brightness in the whole setting
- 10 - low clamping
- 1 - high clamping
- 0 - no clamping
- conservative clamping is to be applied for direct light
- heavy clamping on indirect light produces acceptable renders in generic situations
- when the light dynamics are more involved and particularly bright, both are direct and indirect clamping maybe turned up to avoid the “fireflies” phenomenon in the final render
Caustics
- examples:
- light splitting through a prism is a great example of a caustic calculation
- light in the shadow area of a transparent glass of water is another
- subsurface scattering might also be one
- caustic are significantly expensive computation-wise
- consequently, a lot more render time
- unless there are specific light interactions that demand this feature
- turn off for generic scenes
Performance Options
Tile Size
- CPU: 16 px by 16 px
- GPU: varies for different setups and hardware
- test with varying tile sizes for reference file on blender site
- typically 64 px by 64 px tiles
Acceleration Structure and Final Render
- settings in this section are allegedly useless for anything, albeit the air of importance, sitting under a tab called ‘Performance’
- no setting here predictably or reliably reduces render times
- for the same scene with different experimental settings
- it is rumored that these settings apply only to the blender internal renderer
Other Considerations
Instancing Meshes
- if copies of objects that look very similar are needed in the scene,
- it is more efficient to make linked copies instead of actual mesh copies
- increases UI responsiveness
- reduces render times
Portals
- a check box in area lamps
- tells the render engine that the area lamp is to mimic a window, door or a hole
- significantly better noise performance
- costs more in terms of time
- but better bang-for-the-computational-buck
Unapplied Modifiers
- the primary goal of modifiers is to communicate to the render engine
- the nature of behavior of the mesh
- as per the selected modifier
- modifiers like array modifier and surface subdivision modifier, for instances, should only be enabled on the mesh
- they should NOT be applied
- if applied, the render times will increase drastically with no added benefit in the details of the final render
- learn more about each modifier
- apply only if absolutely necessary,
- if something else nullifies the cost
Volumetrics
Volume Scatter
- used for fog, mist, smoke, dust and light rays through these
- this is a major hog on computational resources
- adds greatly to computational time
- use only as much as need to get the point across
- principle of negligible gains
Homogeneous World Volume
- setting the world volume to homogeneous reduces render times drastically
- World > Settings > Volume > check Homogeneous
- scenes where this might be important
- animations with anisotropic lighting behavior in the world environment
- fog, smoke, and mist anisotropy with moving camera angles
- it rarely makes sense to have a non-homogeneous volume in a static render
- it is a very scene specific consideration
Alpha Transparencies
- do NOT use alpha transparency as substitute for modeling details
- the cost is significantly higher render times
- use modifiers or get better at modeling
- transparency is an expensive light calculation
- lower transparency dial to use only as much as needed
- look into how to turn this off altogether in the render engine
Subsurface Scattering
- a particularly expensive material behavior
- adds to render time proportional to
- how much the effect dial is turned up in the shader
Hair Particle System
- beyonds a certain point, adding more hair doesn’t add to the information presented in the final render to justify the added render time
- which usually is significantly high
Multiple Importance
- it pays to have multiple importance enabled in scenes lit with HDRI environment shaders
- this setting is more on the lines of getting more for the proverbial computational buck
- rather than negligible gains
- it takes more samples to get the same result with this turned off
- it increases render time a little
- but provides a better light distribution for the HDRI-lit scene
De-noising
- again, along the lines of more bang-for-the-computational-buck, this provides results equivalent to using more samples
- find the settings in Properties > Layers
- higher de-noising radius kills edge details while adding to render time
- find sweet spot