Rendering Settings

A Rendering Settings object is a collection of rendering options. Realsoft 3D's photorealistic rendering engine is extremely powerful and designed for maximum realism and image quality. Correspondingly, rendering settings include a large number of options for controlling the entire rendering process.

Rendering settings can be managed through the select window's Render Settings tab. This tab shows the current library of predefined settings, and you can freely add new ones to suit your needs.

To create a new rendering settings object, select the 'New' pop-up menu. This creates a new object into the select window. As usual, you can use the property window to modify properties of the newly created object.

The rendering engine of Realsoft 3D consists of several sub-systems, such as the ray tracer, the post processor and scan line rendering. The first three tabs of the property window reflect this subdivision. Other tabs include general rendering options. All the available controls are shortly described below.

Ray Tracing

You can control ray tracing settings through the 'Ray Tracing' tab. Ray tracing is the most important part of the rendering pipeline. Accordingly, this tab contains many controls.

The controls are:

Detect

All the options in this frame are set ON by default. The rendering engine examines the scene and switches off internally all unnecessary computations. Therefore, none of these options slow down the rendering, unless the corresponding feature is really used in the scene. These options can be temporarily switched off to speed up preview rendering, for example.

Lighting

If set, the rendering engine computes lighting information. By resetting this check box, one can disable all light sources in the scene.

Shadows

If set, the rendering engine computes shadows.

Ray tracing settings

Volume Shadows

If set, object interiors with suitable volumetric properties cast shadows. For example, a fog cloud can cast a shadow. Not the surface but the actual 'material' inside the volume casts shadows.

This is an advanced feature. The Volume Filter shader of VSL can be used for defining shadow casting volumetric materials.

Volumetric Effects

This option enables computation of fog, smoke, gas, plasma, etc. effects (except volume shadows which has a dedicated control as described above).

Lighting in Volume

If set, influence of light sources to fog like materials is computed. Some foggy materials may not be affected by light (self illuminating fog), whereas others glow in light. The latter type requires the use of this option to render.

Recursion

The basic principle of ray tracing is to follow a light source as it travels in a scene, hits a surface, becomes reflected to a new direction, hits another surface, etc. This process requires time consuming computations and must be stopped after a reasonable amount of steps. Otherwise it may happen that the program ends up following a light ray bouncing between two mirrors forever and the image never gets ready.

The settings for controlling the amount of steps are:

Depth

This value defines the amount of surface hits after which tracing of a ray stops. If the value is one, no reflections are rendered. Because the tracing stops as soon as the ray from camera (observer's eye) hits an object. A reasonable value range for photorealistic rendering is from 3 to 6. The minimal value that is required for a scene of an ordinary glass bottle is 5.

Threshold

Defines the minimal signal strength, which triggers a new ray. You can instruct the ray tracer to ignore very weak reflections or refractions not having much effect on the resulting image. This speeds up rendering. The threshold value is measured using current proportional unit. In the default per mill scale, the value 100 is 10% of pure white color. Low values improve image quality but also increase rendering time.

[Note] Note
When rendering transparent objects, this control can have a tremendous impact on the rendering speed. The ray is divided into two sub rays in each surface hit: the penetrating and reflected parts. Therefore, when recursion depth is increased, the amount of required computations grows exponentially, unless weak rays are terminated by a suitable threshold value.

Anti-aliasing

Ray tracer's anti-aliasing is a program feature for improving image quality. Without anti-aliasing, the ray tracer analyzes the contents of each pixel by computing one sample. Anti-aliasing can raise the amount of samples per pixel to ten or even more. Usually the additional samples are taken 'intelligently': the sampling rate is increased if the image data seems to vary a lot. This principle is called adaptive anti-aliasing.

Level

Controls the maximum amount of samples per pixel. The higher the value, the better the quality. Level 3 antialiasing is usually sufficient together with geometric anti-aliasing (see the modes below). Stochastic anti-aliasing may require one or two steps higher anti-aliasing level; level 4 is a good default for good quality rendering purposes.

Threshold

This value controls the adaptive nature of anti-aliasing. The ray tracer examines samples around the current sample. If the difference is higher than the threshold value, more samples are computed. Therefore, the smaller the threshold, the better the rendering quality. The value is expressed in the current proportional scale, which can be selected from the preferences window. In the default per mill scale, threshold 50 means that anti-aliasing starts if there is a color difference greater than (0.05, 0.05. 0.05) or (13, 13, 13) in 8-bit RGB scale. A good default range is between 50 and 100 per mill points.

Zero level threshold can be used in conjunction with high stochastic anti-aliasing (level 6) to force maximal antialiasing quality.

Mode

Geometric: additional samples are taken along a regular sub grid of the pixel grid. Samples are used to find the areas where changes happen. This is a good and fast way to anti-aliase images with reasonably low information density (clear geometric forms, etc.)

Stochastic: additional samples are taken randomly inside the pixel. Slower than geometric, but more reliable when the scene contains dense textures, thin objects, etc.

[Note] Note
Use stochastic mode for rendering motion blurred animations. Motion blur and stochastic anti-aliasing are designed to work well together.

Undersampling

Undersampling is quite a similar feature to anti-aliasing. It works as follows: A block of adjacent pixels is examined. If the color differences exceed a given threshold, the interior pixels are computed more accurately. Otherwise the color of the interior pixels is interpolated from the edge pixels.

This option is especially useful when rendering previews or high resolution images for printing purposes. Undersampling of 2*2 pixels is usually accurate enough to detect all details of a 2000*2000 pixel image and makes rendering 2-4 times faster.

Horizontal

The width of the pixel group. The higher the value, the faster rendering. This may reduce rendering quality, though.

Vertical

The height of the 'undersampled' pixel group.

Sampling Threshold

The minimal color difference in current proportional units (default per mill points), which triggers more accurate sampling. The smaller the value, the better image quality. A threshold value 50 is sufficient for reasonable quality.

Interpolate

Activates interpolation of pixel groups where the threshold is not exceeded. If the option is inactive, undersampling generates mosaic like effects (for example, you may try sampling threshold 100 with no interpolation).

Multi Reflection/Refraction

Using controls on this frame, you can create unusual or customized ray tracing effects. For example: some real world materials create a double refraction. A lens of such material shows two different images. You can simulate this (or triple/quad, etc. refraction if you like) in Realsoft 3D.

Use the controls in the following way:

Defining multiple reflections

The example project 'tutorprojects/rendering/blurredreflections' shows an example of this feature. Four additional rays are cast randomly around the ideal reflection direction. This simulates a rough surface, which blurs reflections. Thanks to five reflection rays, anti-aliasing of blurred reflections is quite good.

Channels

The settings on this frame define data channel usage on anti-aliasing.

Trigger Antialiasing

By default, only color channel triggers antialiasing and subsampling. Here you can add also other channels that will trigger antialiasing. Especially alpha channel should be included whenever the alpha channel is outputted.

Anti-aliasing channels

Antialiasing Operation

Antialias operation selector. By default, all channels are averaged in antialiasing. Here you can change this to 'min' or 'max' operation. For example, setting the 'Distance' channel operation to 'Min' improves image quality when fog or depth of field post effects are used.

Scanline Rendering

Scanline rendering is the first step of the rendering process. Scanline particles are rendered to an internal 'meta image', which contains the properties of particles in a form which is suitable for the ray tracer. The ray tracer then combines scanline data to other scene data. Scanline rendering takes place before ray tracing and therefore scanline particles can be seen through glass objects, etc.

Scanline is a suitable rendering method for thin and small objects. Ray tracer can miss small details because of its 'sampling' principle.

Depth

Scanline particles define useful UV coordinates. This setting defines how accurately UV coordinates are stored per pixel. The default depth is 16 bit 'Word', but even 8-bit 'Byte' is sufficient for most cases. Low depth saves memory.

Scanline rendering options

Accuracy

The accuracy of the 'meta image'. Values lower than 100 % can be used for previewing purposes or to save memory.

Visible in Reflections/Refractions/Fog

If this option is set, scanline rendered objects are considered in ray tracing computations. Clearing the option may speed up the rendering.

Post Processing

Post processing is the last step in the rendering pipeline. It has the following settings:

Dithering

A general dithering, which is applied to the accurate 64-bit/channel floating point output from the ray tracer. The human eye is so accurate that it can see banding artifacts in slowly changing color gradients when the usual 24 bit RGB image representation (= 16 million colors) is used. Dithering improves quality by removing the banding. A suitable amount of dithering for a 24-bit image is 1/256 = 0.4 % = 4 per mill points.

Note that some output targets (such as a view window) have their own internal dithering systems. In such a case, the additional dithering is unnecessary. This dithering feature is mainly used with file rendering.

Safety Area

If set, the post processing system uses a larger internal buffer to detect how 'out of camera view' effects affect the visible image. This option has significance only when post effects, which spread their effect over the image area, are being used (glow, depth of field, post particles). For example, the center of a lens flare can be outside the view, but some of the streaks can reach the view. If Safety Area is not checked, streaks would not be rendered.

If box rendering is not used and all objects fit inside the camera view (during the whole animation), the option can be switched off. The speed increase can be quite significant.

Distributed Rendering

The options of this tab control distributed rendering. Realsoft 3D can take advantage of processor power available in the workstation in question (Symmetric Multi Processing) as well as other workstations accessible through the network.

Box Rendering

This option activates distributed rendering. If checked, the rendering engine subdivides the image to a given number of sub images. If the rendered scene is complex, this may increase rendering speed. Box rendering adds some overhead and therefore rendering of very simple scenes may be slightly slower than without boxes. Box rendering saves memory (especially when scanline particles and post effects are used).

Box rendering should be set whenever multiple processors or network rendering is used to accelerate rendering.

Automatic Multi threading

Enable / disable automatic thread count detection. If checked, the distributed rendering system will use all the available processors for rendering. The higher the thread count, the higher the memory consumption.

Threads

The number of threads to be used for rendering. For example, if you have a dual processor system, set this slider to value 2. Single processor systems should use one thread. Zero threads can be used if the 'Hosts' list is not empty. The whole rendering is then performed using other computers on the network.

Automatic Subdivision

Enable / disable automatic box count detection. If checked, the distributed rendering system computes appropriate box count automatically based on the number of threads and sub servers used.

Box Count X/Y

These two sliders define the number of boxes in horizontal and vertical directions. The total number of boxes should be higher than the number of threads and hosts used for rendering. If all the systems of the network are equally fast, the box count can match the sum of hosts and threads. (e.g. 6 processors - set Box X to 1 and Y to 6). Higher box counts help the system to adapt to speed differences between processors: slow computers render only one box while fast computers render many. However, box rendering naturally involves some internal managing work, and at some point increasing box count starts decreasing the speed.

Automatic Network Rendering

Enable / disable automatic network rendering. If checked, the distributed rendering system uses all available rendering servers in your local network.

Note that this option won't use the rendering server running on the same system as the actual client program. The reason for this is that the software does not need network rendering to take advantage of the local CPUs.

Memory

If Automatic Network Rendering option is used, this field can be used for specifying minimum memory requirement for the servers to be used. Only those servers which have more memory than specified by this field will be used.

Hosts

Host names or IP addresses of machines on the network to be used for distributed rendering.

Remove/Add

These buttons allow you to add/remove hosts to the host list.

Disabled

Excludes the selected host from network rendering.

Outline Rendering

Outline rendering detects the edges (silhouettes) of objects and modifies the output accordingly. This feature can be used for technical representations, cartoon like rendering, etc. The following outline options are available:

Outline/Draw - Activates outline rendering. Edges become drawn with a given color.

Outline/Color - Draw color of outline Edges.

Background/Draw - If set, interior of objects are filled with the given color. If cleared, the usual shaded surfaces fill the outline curves.

Background/Color - Background fill color.

Output channel - Defines the channel, to which the outline rendering is written. The default is color channel, which overwrites the usual shaded output. It is possible to direct the output to another (for example a user defined) channel and blend the outline and shaded output later using a suitable post effect.

Misc

Memory usage frame:

The rendering engine of Realsoft 3D uses RAM memory to store intermediate computation results and optimization data in order to speed up rendering. When running multiple applications, this kind of memory usage may be undesirable. Also, if the scene is so complex that the operating system must use virtual memory, using low memory rendering methods can actually increase rendering speed.

You can select one of the four memory usage alternatives:

[Note] Note
Automatic memory usage is the easy and recommended choice. However, it is impossible to predict the exact memory demand in advance. Therefore, it is possible that rendering speed can be increased by forcing a particular memory mode instead of letting the render engine to estimate it. For example, if the automatic mode leaves lots of unused memory, 'Do not care' mode may be a faster solution. Or, if the automatic mode leads to intensive hard disk swapping, 'Use sparingly' mode may render faster. In a modern computer with several hundreds of megabytes of memory, this consideration is relevant only for complex scenes (50 000 surface items or more). The automatic mode is always optimal for simple scenes.

Caustics frame:

Caustics rendering system analyzes how light rays originating from light sources travel and scatter across the scene. Caustics rendering is automatically activated by geometric objects which have caustics map feature enabled. The settings of this frame control caustics rendering.

Caustics

Turns Caustics rendering on/off. It may be necessary to switch Caustics off temporarily for draft rendering purposes.

Automatic brightness scaling

If set, the brightness of caustics effect is calibrated so that the maximal point of brightness has the value defined by the 'Brightness' slider below.

Brightness

Controls the brightness of caustics effects.

Sampling

Defines how accurately caustics is computed. The higher the value, the longer caustics rendering takes, but the more accurate the result is.

Geometry Quality frame:

Many object types, such as SDS and NURBS, have adjustable render quality. The quality setting usually defines tessellation density for scanline drawing or accuracy of a numerical rayhit solving algorithm. The higher the quality, the smoother the surface appears.

The Geometry Quality option of render settings fine tunes object specific render qualities. For example, draft quality settings may use a lower accuracy to obtain faster rendering.

Medium quality renders with the actual quality value of each object. Low quality decreases object quality values and High quality increases the values. The actual amount of the relative change depends on the geometry type.