Post processing occures after main scene rendering in order to add more realistic effects (motion blur, ambient occlusion...)
All post-processings have the same init/remove procedures:
import harfang as hg ... camera = scene.GetCurrentCamera() post_process = hg.BloomPostProcess() camera.AddComponent(post_process) ... camera.RemoveComponent(post_process) ...
In that exemple we use "BloomPostProcess", but it could be "ChromaticDispersionPostProcess", "HSLPostProcess", and so on...
You can add as much PostProcessComponent as you like to the Camera.
It will be executed in the order of appearance in the Node's stack: this is the Post Process stack.
The order of execution of the post-processes is important:
Drops a glow around enlighten areas. This effect enhances the impression of brightness.
This filter works by independently offseting the red, green and blue components of the input image.
Chromatic dispersion post-process:
Post-process component implementing a Hue/Saturation/Brightness filter.
This effect reproduce the famous cinematographic effect that blurs moving parts.
The faster the part, the blurrier it is. Motion-blur increases the realism of the rendering by softening the movements.
Motion blur post-process:
This effect blurs the pixels from a point of the screen. The further the pixels are from the point, the blurrier they are.
Unlike motion-blur, the radial-blur is independent of motion.
Radial blur post-process:
S.A.O for Screen-space Ambient Occlusion.
SAO is a fast real-time ambient occlusion rendering. It calculates pixels occlusions using the frame Z-Buffer.
It's an approximation of real ambient occlusion, but it's quite faster.
SAO is independant of scene complexity, as it works only on pixels datas (colors buffer & Z-Buffer).
This effect reinforce contrasted edges using a convolution matrice.