Glossary of rendering terms
Unbiased rendering means that during rendering, no shortcuts are used to speedup rendering which can influcence the rendering result. e.g. many renderers use irradiance mapping to speed up the indirect lighting calculation. This can lead to faster rendering, but also to blurry indirect illumination. This is the case in mentalray finalgather maps. First the direct lighting is calculated and recorded in a map which is later used to interpolate indirect illumination. That's a great method to do fast calculations, but it leads to blurry indirect illumination. This is often not a problem e.g. in outdoor scenes. The advantage here with biased rendering is that parts of the illumination can be recoreded and reused in later frames, unbiased renderers calculate everything from scratch was takes longer.
In fact almost all renderers on the market are biased because they use some tricks to speedup rendering. Even if they only suppress bright light paths which would cause fireflies, they take a shortcut. If you really want unbiased rendering, prepare for really long rendertimes.
Cryptomatte is a shader based solution for storing material, object or asset ids in exr files developed by Psyop and genersously made open source at github. The usual workflow with object ids is to give all objects their own ids by hand and use these information during rendering to write infos into different channels. One obvious problem is that if you use one channel for every id, you can get a lot of channels, even if you find a smart way to color code these ids. Another problem are semi transparent areas like antialiased areas on object borders where two objects are mixed by the pixel filter. In these areas you can get problems in compositing. Cryptomatte has a solution for this, it saves objects names with ids and transparencies. The nuke plugin lets you easily select all ids by name or by clicking in the image.
Osl stands for Open Shading Language a language definition developed by SPI.
The OSL project includes a complete language specification, a compiler from OSL to an intermediate assembly-like bytecode, a runtime library interpreter that executes the shaders (including just-in-time machine code generation using LLVM), and extensive standard shader function library. These all exist as libraries with straightforward C++ APIs, and so may be easily integrated into existing renderers, compositing packages, image processing tools, or other applications. Additionally, the source code can be easily customized to allow for renderer-specific extensions or alterations, or custom back-ends to translate to GPUs or other special hardware.
OpenExr is an image format developed by ILM to store data more efficient. There are two mayor advantages of OpenExr. First you can store an arbitrary amount of layers in an more or less arbitrary format. Since version 2.0 OpenExr is able to save deep data. Deep data store not only one data information for one pixel but multiple informations. This way you can compose objects behind motion blurred elements or into diffuse clouds. The other advantage is that is can use half float values to store data. Half float is a way to store float values in less bits than usual. Until the availablility of half float, images were stored in 16bit integer or 32 bit float format. Both are limited or simply needed too much diskspace. Since 16bit half float is sufficient for medium range data, it is great to store color informations. It is not the best solution if you have to store tiny numbers or very large ones. But everything else is fine. So you can reduce the amount of needed data by half without sacrifying quality.
OpenExr/id is an extension of the popular OpenExr format from ILM. It offers a way to store object ids in deep channels. It is an alternative to the Cryptomatte approach, but as much as I understand it, it has the disadvantage that the renderer itself needs a output driver which supports the format. Of course this is an advantage as well, simply because the user does not have to care about the ids any more and does not need a shader which supports Cryptomatte. Similiar to Cryptomatte OpenExr/Id is made open source by MercenariesEngeneering.
Pathtracing defines a way to calculate the the indirect illumination at a point by tracing a ray into the scene and evaluate the light reflected at all intersections. Due to the fact that at every intersection at least one ray is more or less randomly shot into the scene depending on the used materials, all pathtracers tend to create noise. Unidirectional pathtracers usually have problems to render effects which are effects of directly reflected or refracted light like bright and sharp caustics.
Bidirectional pathtracing is based on the idea that in some cases it can be useful to follow a path from the lightsource to the camera instead of the usual way from the camera into the scene. This can be quite complicated because a lot of rays which goes from the light into the scene are normally not visible at all in the final image. Even if it can result in less noisy images and it can handle caustics , it heavier to implement. For that reason e.g. Arnold is still (4.x) a unidirectional path tracer. Bidirectional pathtracers can easily handle caustics and can often improve sampling of lights.
Some renderers use a semi-bidirectional approach and do some tasks from the light, e.g. to render caustics.
Out-of-core appears in most cases together with GPU rendering. To maximize the speed of the GPU caluclation, it is recommended to have all necessary data available in the GPU memory. Until now 12-24 GByte memory can be used. In larger production scenes, the textures alone exceed this limit. So only a part of the data fit into GPU ram, everything else is "out-of-core". GPU rendrers which can do out-of-core rendering are able to render scenes which need more memory than the GPU has onboard.
Light is not made out of rgb colors but is composed by multiple light wavelengths. Some renderers can use wavelenghts to define a light color what results in truly realistic lighting calculations. e.g. you can simulate diffraction of white light through a prisma and get these nice rainbow colors. Renderers which can use spectra for lights are Appleseed, Thea Render, FluidRay or mentalray and others.
VCM means Vertex Connecting and Merging. Published by Iliyan Georgiev and others the technique describes a way to calculate photohs and bidirectional path tracing in an elegant way to produce higher quality indirect illumination and caustics. Renderman supports VCM in it's RIS as well as Corona or SmallVCM.
Last update: 01.2021