Difference between revisions of "ImagePipeline"
(Created page with "= Overview = The image pipeline is LuxCore's built-in mini-compositor.<br> It is plugin-based. The plugins are evaluated one after the other, each one taking the output of th...") |
|||
(4 intermediate revisions by the same user not shown) | |||
Line 11: | Line 11: | ||
=== Linear Tonemapper === | === Linear Tonemapper === | ||
Simply multiplies all pixels in the image with the scale value. | Simply multiplies all pixels in the image with the scale value.<br> | ||
Not automatic (does not adapt to the image brightness, the scale value has to be set manually). | |||
=== Autolinear Tonemapper === | === Autolinear Tonemapper === | ||
Similar to the linear tonemapper, but estimates the average brightness in the scene to compute the scale value automatically. | Similar to the linear tonemapper, but estimates the average brightness in the scene to compute the scale value automatically.<br> | ||
Automatic (adapts to the image brightness. This can lead to [https://wiki.luxcorerender.org/BlendLuxCore_FAQ#When_I_change_the_brightness_of_my_lamp.2C_nothing_happens confusing effects]). | |||
=== Reinhard02 Tonemapper === | === Reinhard02 Tonemapper === | ||
An implementation of the reinhard tonemapper: http://www.cmap.polytechnique.fr/~peyre/cours/x2005signal/hdr_photographic.pdf | An implementation of the reinhard tonemapper: http://www.cmap.polytechnique.fr/~peyre/cours/x2005signal/hdr_photographic.pdf<br> | ||
Automatic. | |||
=== LuxLinear Tonemapper === | === LuxLinear Tonemapper === | ||
Similar to the linear tonemapper, but the scale value is derived from ISO sensitivity, exposure time and aperture. | Similar to the linear tonemapper, but the scale value is derived from ISO sensitivity, exposure time and aperture. | ||
Can be used to match footage taken with a real camera. | Can be used to match footage taken with a real camera.<br> | ||
Not automatic. | |||
== Effects == | == Effects == | ||
Line 61: | Line 65: | ||
Creates contour lines for the IRRADIANCE AOV. | Creates contour lines for the IRRADIANCE AOV. | ||
== | == Bayesian Collaborative Denoiser == | ||
This plugin exposes the [https://github.com/superboubek/bcd Bayesian Collaborative Denoiser (BCD)] in LuxCore (since version v2.1). | |||
= Special Plugins = | = Special Plugins = | ||
Line 70: | Line 74: | ||
The end-user will probably not come into contact with them. | The end-user will probably not come into contact with them. | ||
== NOP == | === NOP === | ||
Does not modify the input, simply pipes it to the output. | Does not modify the input, simply pipes it to the output. | ||
Can be used to define an empty imagepipeline. | Can be used to define an empty imagepipeline. | ||
== Gamma Correction == | === Gamma Correction === | ||
Performs [https://en.wikipedia.org/wiki/Gamma_correction gamma correction]. | Performs [https://en.wikipedia.org/wiki/Gamma_correction gamma correction]. | ||
== Gaussian Filter 3x3 == | === Gaussian Filter 3x3 === | ||
Blurs the image. | Blurs the image. | ||
== Output Switcher == | === Output Switcher === | ||
Can be used to get any film channel as input of the image pipeline, for example the MATERIAL_ID channel if you want to perform tonemapping steps on it. | Can be used to get any film channel as input of the image pipeline, for example the MATERIAL_ID channel if you want to perform tonemapping steps on it. | ||
=== Radiance Group (aka Light Group) === | |||
Shows only the contribution of lights with the ID of the radiance group. | |||
= For Developers = | = For Developers = | ||
Line 91: | Line 99: | ||
For details on how to define an imagepipeline with properties, see [[LuxCore_SDL_Reference_Manual_v2.0#Image_pipeline the SDL manual]]. | For details on how to define an imagepipeline with properties, see [[LuxCore_SDL_Reference_Manual_v2.0#Image_pipeline the SDL manual]]. | ||
== Creating new Plugins == | === Creating new Plugins === | ||
Plugins are written in C++ and can optionally be accelerated with OpenCL.<br> | Plugins are written in C++ and can optionally be accelerated with OpenCL.<br> | ||
[[Writing_an_Imagepipeline_Plugin | Here]] is a tutorial on how to write a plugin. | [[Writing_an_Imagepipeline_Plugin | Here]] is a tutorial on how to write a plugin. |
Latest revision as of 12:42, 9 August 2018
Overview
The image pipeline is LuxCore's built-in mini-compositor.
It is plugin-based. The plugins are evaluated one after the other, each one taking the output of the previous plugin as its input.
The end result is available in form of the RGB(A)_IMAGEPIPLINE AOV.
Available Plugins
Tonemappers
Linear Tonemapper
Simply multiplies all pixels in the image with the scale value.
Not automatic (does not adapt to the image brightness, the scale value has to be set manually).
Autolinear Tonemapper
Similar to the linear tonemapper, but estimates the average brightness in the scene to compute the scale value automatically.
Automatic (adapts to the image brightness. This can lead to confusing effects).
Reinhard02 Tonemapper
An implementation of the reinhard tonemapper: http://www.cmap.polytechnique.fr/~peyre/cours/x2005signal/hdr_photographic.pdf
Automatic.
LuxLinear Tonemapper
Similar to the linear tonemapper, but the scale value is derived from ISO sensitivity, exposure time and aperture.
Can be used to match footage taken with a real camera.
Not automatic.
Effects
Camera Response Function
Simulates analog films.
Background Image
Shows the specified image on pixels that have alpha < 1.
Note: When the size of the background image differs from the film size, it will be stretched to fit the film size.
Bloom
Blurs the input and blends the result over the input.
Can be used to simulate real-world camera sensor imperfections.
Vignetting
Darkens the corners of the image. Used to simulate real-world camera lens imperfections.
Color Aberration
Creates color fringes on pixels with high contrast. The effect is stronger in the image corners.
Used to simulate real-world camera lens imperfections.
Mist
Similar to simple OpenGL mist/fog. Uses the depth channel to fake mist.
Should be used with a small amount setting to simulate aerial perspective on geometry that is far away from the camera.
Note that since the depth channel is not anti-aliased, it will create jagged edges when the effect is too strong.
Contour lines
Creates contour lines for the IRRADIANCE AOV.
Bayesian Collaborative Denoiser
This plugin exposes the Bayesian Collaborative Denoiser (BCD) in LuxCore (since version v2.1).
Special Plugins
These plugins are for internal use by exporters/addons/plugins that use the LuxCore API. The end-user will probably not come into contact with them.
NOP
Does not modify the input, simply pipes it to the output. Can be used to define an empty imagepipeline.
Gamma Correction
Performs gamma correction.
Gaussian Filter 3x3
Blurs the image.
Output Switcher
Can be used to get any film channel as input of the image pipeline, for example the MATERIAL_ID channel if you want to perform tonemapping steps on it.
Radiance Group (aka Light Group)
Shows only the contribution of lights with the ID of the radiance group.
For Developers
For details on how to define an imagepipeline with properties, see LuxCore_SDL_Reference_Manual_v2.0#Image_pipeline the SDL manual.
Creating new Plugins
Plugins are written in C++ and can optionally be accelerated with OpenCL.
Here is a tutorial on how to write a plugin.