Programming
Fundamentals
Setting Up Development Environment
UnigineScript
High-Level Systems
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
GUI
Double Precision Coordinates
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
Rendering-Related Classes

post_filter_reflection

This postprocess allows to create image-based reflections. (See how to assign this postprocess material to make the selected materials reflective.) The technique works by tracing rays at each pixel of the material you set to reflect and rendering an approximate version of the scene at each tracing step (that is, a sample).
Being rough and inaccurate, this approach is performance-friendly and has the following advantages (if compared a standard reflective material):

  • A mesh does not have to be planar in order to create 2D reflection. It can have an arbitrary curved shape.
  • The rendering load does not depend on the number of reflected objects.

Notice
It is recommended to use post_filter_reflection material on the surfaces:
  • With normal bumping
  • Limited in space, for example, a room floor
To alleviate the rendering load, you can decrease the number of samples, the step distance or lessen the number of reflective materials.

post_filter_reflection postprocess material

Reflection filter postprocess

Textures

GUI name XML name Description Channels
Vignette vignette One-channel vignette texture. It is used to disable rendering reflections along the edges of the viewport. Vignette shape and smoothness can be customized, but it should be wide enough to cover the sides of the screen. R:
  • Black sets areas without reflections
  • Red is areas with reflections

Parameters

Shading Parameters

GUI name XML name Description
Fresnel bias fresnel_bias Coefficient that allows to compensate for the Fresnel effect. It sets the minimum necessary reflectance level (i.e. restores reflections to be seen at all viewing angles).
  • By the minimum value of 0, there is no compensation for Fresnel power.
  • Increasing the value leads to more prominent reflections.
  • By the maximum value of 1, reflections are at their maximum and the Fresnel power parameter does not influence the rendered image.
Fresnel power fresnel_power Factor to scale Fresnel effect that defines the amount of reflectance depending on the viewing angle:
  • Low values provide good reflectance even at a large viewing angles.
  • High values provide the reflectance only at a small viewing angle. When looking at a large viewing angle, from above, there are no reflections rendered.
Notice
If the Fresnel bias equals 1, Fresnel power does not apply.

It is recommended to set Fresnel power high enough and the Fresnel bias close to zero. In this case, reflections will not be rendered when looking at objects from above. Otherwise, as the reflections are only approximate and calculated in steps, moire patterns will be seen.

On the images below Fresnel power = 3 and Fresnel bias = 0. When looking on the object from above, there is no reflection. Distant objects seen at the small viewing angle, are still reflected.

Small viewing angle with Fresnel Large viewing angle with Fresnel
With Fresnel power = 3 and Fresnel bias = 0 reflections are not seen from above

Reflection Parameters

GUI name XML name Description
Step reflection_step The distance in units between the tracing steps (i.e. samples).
  • By low values, reflections do not spread far from surfaces that are being reflected.
  • By high values, reflections may look discrete if the number of tracing samples is set low. Higher values also mean lower performance.
Small tracing Step Large tracing Step
Tracing Step = 0.05 units
Tracing Step = 2 units
Power reflection_power The speed of reflections fade out. The attenuation is performed relative to the surfaces that are being reflected.
  • The higher the value, the shorter reflections are and the smoother they fade out.
  • The lower the value, the less attenuated reflections are.
    Notice
    Do not set the Power to 0, because on some graphics cars it may result in black artifacts. Use a very small number instead.
Small attenuation Power Large attenuation Power
Attenuation Power = 0.5
Attenuation Power = 4
Color reflection_color Color multiplier for reflections.
  • White color means no color transformation for reflections.
  • Black color result in no reflections at all.
Reflection color
Colored reflections on the floor

States

GUI name XML name Description
Mask mask Color mask for the materials' auxiliary color. See how to use it as a mask to apply a postprocess only to the selected materials.
Samples samples The number of tracing step along the ray. At each step the reflections is rendered if the ray hits an obstacle. This setting defines how accurate the rendered reflections will be:
  • By the lower the value, reflections do not spread far from surfaces that are being reflected. If the step is not set right, they can also appear more discrete.
  • The higher the value, the lower the performance.
Last update: 2017-07-03