Indirect illumination (GI) |
Global Illumination is getting more and more standard today, VRAYforC4D is built from ground up to not only support it, but to be built directly for using the best GI algorithms around.
But what is GI, and what is it for?
In real world all what we see is possible due to light that travels from the light source to objects and being reflected by these objects traveling to the next objects etc.
So the light is almost endless reflected from surface to surface. each object has a certain amount of reflection (only absolute black bodies do not reflect, like a black whole in space). Through reflection we see colors and light intensity, so basically what we see is all about light.
Classic render engines without GI do not consider the reflection of light, they only calculate the light between the source and the first surface the light hits - this obviously very unrealistic and can only be partly compensated by good and skilled artists.
Also the render engines today do not replace the need for an artist of course, but they give a much more powerful tool to play with light and surface properties, light in CG now behaves very close to how we see it in nature, and it became much more predictable.
It is reflected between the objects in many bounces, so a room p.e. that has only one window is automaticly filled with light, also in the parts where the sun beams do not directly hit a surface. Also luminance in objects or HDRI images add real light to the scene, the VRAYforC4D lights also have a physical size in space and a physical correct intensity (in real world units) and falloff.
The VRAYforC4D material again is the counterpart to a good GI engine, VRAYforC4D has a highly advanced BRDF material model that has physical properties for all kind of reflections (mirror and glossy) and refraction (when light travels through a volume body), both: reflections and refractions can use an IOR (index of refraction) like most real world materials, and anisotropy like materials with directional microstructure. The refraction takes volume, depth and surface structure into account and therefore also can scatter light for things like sandblasted glass, wax, translucent leaves, skin, plastics etc.
The combination of VRAYforC4D lights, VRAYforC4D brdf materials, and different high end GI algorithms all together gives the unsurfaced image - and light quality famous in VRAYforC4D.
The human eye is capable of seeing the most fine nuances of color and light, and therefore it is just good to use the best tools available, VRAYforC4D is one of them, delivering ultra highend quality, combined with great speed, and still being highly adaptive and versatile, to give the artist the choice to break the laws of physics where he wants to.
Examples for an image calculation with GI or without GI to see the main difference:
Approaches to indirect illumination
VRAYforC4D implements several approaches for computing indirect illumination with different trade-offs between quality and speed:
- Brute force - this is the simplest approach; indirect illumination is computed independently for each shaded surface point by tracing a number of rays in different directions on the hemisphere above that point.
Advantages:Disadvantages:
- this approach preserves all the detail (e.g. small and sharp shadows) in the indirect lighting;
- it is free from defects like flickering in animations;
- no additional memory is required;
- indirect illumination in the case of motion-blurred moving objects is computed correctly.
- the approach is very slow for complex images (e.g. interior lighting);
- it tends to produce noise in the images, which can be avoided only by shooting a larger number of rays, thus slowing it even more.
- Irradiance map - this approach is based on irradiance caching; the basic idea is to compute the indirect illumination only at some points in the scene, and interpolate for the rest of the points.
Advantages:Disadvantages:
- the irradiance map is very fast compared to direct computation, especially for scenes with large flat areas;
- the noise inherent to direct computation is greatly reduced;
- the irradiance map can be saved an re-used to speed up calculations of different views for the same scene and of fly-through animations;
- the irradiance map can also be used to accelerate direct diffuse lighting from area light sources.
- some details in indirect lighting can be lost or blurred due to the interpolation;
- if low settings are used, flickering may occur when rendering animations;
- the irradiance map requires additional memory;
- indirect illumination with motion-blurred moving objects is not entirely correct and may lead to noise (although in most cases this is not noticeable).
- Photon map - this approach is based on tracing particles starting from the light sources and bouncing around the scene. This is useful for interior or semi-interior scenes with lots of lights or small windows. The photon map usually does not produce good enough results to be used directly; however it can be used as a rough approximation to the lighting in the scene to speed the calculation of GI through direct computation or irradiance map.
Advantages:Disadvantages:
- the photon map can produce a rough approximation of the lighting in the scene very quickly;
- the photon map can be saved an re-used to speed up calculation of different views for the same scene and of fly-through animations;
- the photon map is view-independent.
- the photon map usually is not suitable for direct visualization;
- requires additional memory;
- in VRAYforC4D's implementation, illumination involving motion-blurred moving objects is not entirely correct (although this is not a problem in most cases).
- the photon map needs actual lights in order to work; it cannot be used to produce indirect illumination caused by environment lights (skylight).
Light cache - light caching is a technique for approximating the global illumination in a scene. It is very similar to photon mapping, but without many of its limitations. The light map is built by tracing many many eye paths from the camera. Each of the bounces in the path stores the illumination from the rest of the path into a 3d structure, very similar to the photon map. The light map is a universal GI solution that can be used for both interior or exterior scenes, either directly or as a secondary bounce approximation when used with the irradiance map or the brute force GI method.
Advantages:
- the light cache is easy to set up. We only have the camera to trace rays from, as opposed to the photon map, which must process each light in the scene and usually requires separate setup for each light.
- the light-caching approach works efficiently with any lights - including skylight, self-illuminated objects, non-physical lights, photometric lights etc. In contrast, the photon map is limited in the lighting effects it can reproduce - for example, the photon map cannot reproduce the illumination from skylight or from standard omni lights without inverse-square falloff.
- the light cache produces correct results in corners and around small objects. The photon map, on the other hand, relies on tricky density estimation schemes, which often produce wrong results in these cases, either darkening or brightening those areas.
- in many cases the light cache can be visualized directly for very fast and smooth previews of the lighting in the scene.
Disadvantages:
- like the irradiance map, the light cache is view-dependent and is generated for a particular position of the camera. However, it generates an approximation for indirectly visible parts of the scene as well - for example, one light cache can approximate completely the GI in a closed room;
- currently the light cache works only with VRAYforC4D materials;
- like the photon map, the light cache is not adaptive. The irradiance is computed at a fixed resolution, which is determined by the user;
- the light cache does not work very well with bump maps; use the irradiance map or brute force GI if you want to achieve better results with bump maps.
- lighting involving motion-blurred moving objects is not entirely correct, but is very smooth since the light cache blurs GI in time as well (as opposed to the irradiance map, where each sample is computed at a particular instant of time).
Which method to use? That depends on the task at hand. The Examples section can help you in choosing a suitable method for your scene.
Primary and secondary bounces
The indirect illumination controls in VRAYforC4D are divided into two large sections: controls concerning primary diffuse bounces and controls concerning secondary diffuse bounces. A primary bounce occurs when a shaded point is directly visible by the camera, or through specular reflective or refractive surfaces. A secondary bounce occurs when a shaded point is used in GI calculations.
It often is very efficient to mix to different engines: one for the primary and one for the secondary bounces, to have the advantages from both. One engine can be faster for one thing and the other for another aspect. If you select one or two GI methods you will see that the corresponding GI setting tabs will be visible, the non chosen GI methods will be hidden for more visible clearness.
VRAYforC4D can combine them in an intelligent way to give you high speed with very high quality at the same time, also for certain animation types it makes sense to mix fast smooth solutions with physical accurate ones p.e. Combining 2 engines for primary and secondary GI is actually the standard way to work in VRAYforC4D.
GI on - turn indirect illumination on and off.
Save Gi Settings - you can save yours GI settings.
Load Gi Settings - you can load previously saved yours GI settings.
Presets - this dropdown list allows you to choose from several presets for some of the irradiance map parameters. You can use these to quickly set the color, normal and distance thresholds, as well as the min/max rates. The following presets are available:
- Custom - defines by you.
- Very low Quality - this preset is only useful for preview purposes to show the general lighting in the scene.
- Low Quality - a low-quality preset for preview purposes.
- Medium Quality - a medium quality preset; works fine in many situations in scenes which have don't small details.
- Medium animation Quality - a medium quality preset targeted at reducing flickering in animations - the Distance threshold of Irradiance map is higher.
- High Quality - a high-quality preset that works in most situations, even for scenes with small details as well as for most animations.
- High animation Quality - a high-quality preset that can be used if the High preset produces flickering in animations - the Distance threshold of Irradiance map is higher.
- Very high Quality - a very high quality preset; can be used for scenes with extremely small and intricate details.
- Unbiased - outstanding quality and outstanding time.
Note that the presets are targeted for a typical 640x480 image. Larger images usually can do with lower Min/Max rates than those specified in the presets.
GI Caustics
GI caustics represent light that has gone through one diffuse, and one or several specular reflections (or refractions). GI caustics can can be generated by skylight, or self-illuminated objects, for example. However, caustics caused by direct lights cannot be simulated in this way. You must use the separate Caustics section to control direct light caustics. Note that GI caustics are usually hard to sample and may introduce noise in the GI solution.
Reflective - this allows indirect light to be reflected from specular objects (mirrors etc). Note that this is not the same as Caustics, which represent direct light going through specular surfaces. This is off by default, because reflective GI caustics usually contribute little to the final illumination, while often they produce undesired subtle noise.
Refractive - this allows indirect lighting to pass through transparent objects (glass etc). Note that this is not the same as Caustics, which represent direct light going through transparent objects. You need refractive GI caustics to get skylight through windows, for example.
Post-Processing
These controls allow additional modification of the indirect illumination, before it is added to the final rendering. The default values ensure a physically accurate result; however the user may want to modify the way GI looks for artistic purposes.
Saturation - controls the saturation of the GI; a value of 0.0 means that all color will be removed from the GI solution and will be in shades of gray only. The default value of 1.0 means the GI solution remains unmodified. Values above 1.0 boost the colors in the GI solution.
Contrast - this parameter works together with Contrast base to boost the contrast of the GI solution. When Contrast is 0.0, the GI solution becomes completely uniform with the value defined by Contrast base. A value of 1.0 means the solution remains unmodified. Values higher that 1.0 boost the contrast.
Contrast base - this parameter determines the base for the contrast boost. It defines the GI values that remain unchanged during the contrast calculations.
Save Maps per Frame - when this option is on, VRAYforC4D will save all GI maps (irradiance map, photon map, caustic, light maps) if in options they set to Auto-Save.
Primary bounces
Multiplier - this value determines how much primary diffuse bounces contribute to the final image illumination. Note that the default value of 1.0 produces a physically accurate image. Other values are possible, but not physically plausible.
GI engine - the list box specifies the method to be used for primary diffuse bounces.
Irradiance map - selecting this will cause VRAYforC4D to use an irradiance map for primary diffuse bounces. See the Irradiance map section for more information.
Photon map - selecting this option will cause VRAYforC4D to use a photon map for primary diffuse bounces. This mode is useful when setting up the parameters of the global photon map. Usually it does not produce good enough results for final renderings when used as a primary GI engine. See the Photon map section for more information.
Brute force - selecting this method will cause VRAYforC4D to use direct computation for primary diffuse bounces. See the brute force section for more information.
Light cache - this chooses the light cache as the primary GI engine. See the Light cache section for more information.
Secondary bounces
Multiplier - this determines the effect of secondary diffuse bounces on the scene illumination. Values close to 1.0 may tend to wash out the scene, while values around 0.0 may produce a dark image. Note that the default value of 1.0 produces physically accurate results. While other values are possible, they are not physically plausible.
GI engine - this parameter determines how VRAYforC4D will calculate secondary diffuse bounces.
None - no secondary bounces will be computed. Use this option to produce skylight iimages without indirect color bleeding.
Photon map - selecting this option will cause VRAYforC4D to use a photon map for primary diffuse bounces. This mode is useful when setting up the parameters of the global photon map. Usually it does not produce good enough results for final renderings when used as a primary GI engine. See the Photon map section for more information.
Brute force - selecting this method will cause VRAYforC4D to use direct computation for primary diffuse bounces. See the Brute force section for more information.
Light cache - this chooses the light cache as the primary GI engine. See the Light cache section for more information.
| Previous | Content | Next |