Short Contents

7.16 Optimizing Renderings

3Delight is heavily optimized: only "state of the art" algorithms are used in every area and continuous re-evaluation of every functionality against the most recent techniques ensures that every release is a step forward in terms of speed and memory consumption. This doesn't mean that no user guidance is required, to the contrary, carefully chosen options and scene layouts can speed up renderings enormously. The following sections give some important advices to that matter.

Rendering Options Tuning

Be careful to select the right options the render: the fastest option settings without a quality tradeoff.

Format (image resolution)
Image size is directly proportional to rendering time, that is why it is very important to select the right resolution for the render: lower resolution means less used memory and faster renders.
PixelSamples and PixelFilter
More pixel samples means slower renders. A "PixelSamples 6 6" is more than enough for final renders, even with motion blur. Using the high quality "sinc" filter requires a wider support ("PixelFilter "sinc" 4 4" or more) that is why it is generally slower.
ShadingRate
Test renders should specify "ShadingRate 4" or more. Final renders should use "ShadingRate 1". Smaller shading rates are rarely needed and are often used by shaders that produce high frequencies(62).
Bucket and Grid size
In our experience, a bucket size of 16x16 and a grid size of 256 is a very good general setup for 3Delight. This can be bettered by doing experiments on a particular scene. Also, a given grid should cover approximately one bucket in raster space: so for a shading rate of 1 and a bucket size of 32x32 the grid size should be 1024.
Horizontal or Vertical ?
By default, the renderer issues buckets row per row. This is not the optimal bucket order if the image contains objects that are thin and horizontal. Use "Option "render" "string bucketorder" "vertical"" to specify a vertical bucket issuing strategy (column by column). This trick is likely to save memory only, impact on speed is negligible in general.

Multithreading

Use multithreading or multiprocessing when possible. Depending on the nature of the rendered scene, performance improvements could be linear with the number of processes used. Refer to Performance and Implementation Notes for details.

Ray Tracing

Avoid ray tracing, if possible! Ray tracing is inheritantly slow since it implies some intensive number crunching. Most importantly, it forces 3Delight to retain geometry for the entire render, meaning higher memory usage. An exception to the above is ray traced shadows in small to medium sized scenes, which in our experience render very fast. Here is a few advices concerning ray tracing:

Textures

It is well known that texture access eats up a significant amount of rendering time. Textures are also known to be great resource hogs.

Geometry

Shaders

The "trend" is toward sophisticated looks, complex illumination models, anti-aliased shaders and volume shaders. This is why shading can eat up a non negligible slice of the total rendering time. It is really worth the effort to carefully optimize shaders.

3Delight 10.0. Copyright 2000-2011 The 3Delight Team. All Rights Reserved.