Login - Create Account

Result

Result Component

The Result component defines the final appearance of the filter based upon the value of its Filter Type parameter and the components connected to its inputs. Here are the key facts about the Result component:

  • Result determines the filter type – Simple filter or Surface (see details below).
  • It has two different sets of inputs depending on the filter type.
  • It allows to view and adjust filter controls from within the Filter Editor.
  • In its preview, it shows the filter result after it has been masked with selection.
  • One copy of Result is always present in any filter, and it cannot be deleted, copied or pasted.
  • Only components connected to Result (directly or not) have effect on the final image.
  • Control Components that are not connected to Result don't appear on the Settings tab in Filter Controls.

Filter Types

The Filter Type parameter of the Result component defines the filter type – Simple filter or Surface. Simple filters generally have a flat, 2D appearance and are good for textures and effects that don't require realistic three-dimensional look. Surface filters, on the other hand, have realistic 3D appearance and are rendered with real-world lighting and surface properties, which makes them good for creating natural-looking textures and effects.

Simple filters generally have a flat, 2D appearance:

DogsPolygon PaintingElectricityWoodComic Book

Surface filters have realistic 3D appearance and real-world lighting:

Alien MetalOrganicsPeeling PaintCrystaDecorative Tiles

When Filter Type is set to Simple filter, the component has only one input, Source. In this mode, the output of the component connected to Source is passed unchanged through Result, forming the final appearance of the filter. No additional processing is performed except for blending with the original image. The Lighting tab in Filter Controls is not available, and only the Alpha Map is enabled in the Render Maps menu.

When Filter Type is set to Surface, the component turns into a realistic surface renderer similar to those of major 3D rendering packages. In this mode, the component has five inputs which define surface properties such as color, height and reflectivity. The lighting for the surface is controlled by the Lighting tab in Filter Controls and is based on real-world HDRI lighting environments. Surface filters can render bump, normal, diffuse and specular maps which can be used in 3D packages and game engines. Technically, Surface filters are rendered using an energy-conserving Phong shading model with non-customizable specular color, which is implicitly defined by the Metallic parameter (dielectrics are rendered with white specular color, and for metals the specular color is the same as Surface Color).

Inputs (Simple Filter Mode)

Source: Map Input, Required

Provides the image to serve as a filter result. Source is a required input – to make the filter work, this input must be connected.

Inputs (Surface Mode)

Surface Color: Map Input

Defines the surface color, technically known as diffuse color. The alpha channel of the color or image provided by this input will define the alpha channel of the final rendered image.

The R, G and B channels of Surface Color are used to generate the Diffuse Map when it is turned on in the Render Maps menu. The alpha channel of Surface Color defines the Alpha Channel Map in the same menu.

Height: Map Input, Required

Defines the surface height. The image generated by the component connected to this input serves as a height map (also known as bump map) – its bright pixels correspond to elevated areas, and dark pixels to lowered areas. The surface height is also affected by the value of the global parameter Surface Height on the Lighting tab – it serves as a master height adjustment for controlling the height of the entire surface. Here's how to choose a good subtree for the Height map:

  • Keep the Height subtree simple and fast, because it is sampled three times as often as other Result inputs.
  • Avoid using Noises with Roughness greater than 50.
  • When using Noises, keep Contrast below 25 to avoid brightness clamping.
  • Avoid Adjustments that produce color clamping (Brightness/Contrast, Levels, Threshold and Tone Curve in certain cases).
  • Avoid using Blur, Motion Blur, Sharpen and High Pass with small Radius values.
  • Avoid sharp edges between dark and light areas, use gradual transitions.
  • Using a flat-colored image won't produce anything, you need variable brightness.
  • Image, Selection or Frame with Fixed Size turned on should be used with discretion (refer to their help pages for details).
  • Avoid high-frequency images, they don't play well with HDRI lighting and anti-aliasing.
  • Always try the height map under different Lighting conditions.

Choosing correct height is essential for imitating real-world surfaces. The height map affects how light interacts with the surface, and natural-looking lighting is the key to realism. This is especially true in situations when surface lighting is rendered in real-time, for example, in a game engine that uses bump and normal maps. You should pay attention to the following:

  • Grayscale level of the height map pixels
  • The value of the Surface Height parameter on the Lighting tab
  • The value of the global parameter Size

The height is calculated as follows. The image produced by the component connected to Height is converted to grayscale by averaging its R, G and B channels (the alpha channel is ignored), and the resulting grayscale image defines the height: black image areas correspond to the height of 0, white areas correspond to the height equal to the global Size value, and the heights in-between are represented by intermediate levels of gray. Finally, the resulting height is multiplied by the value of the global Surface Height parameter taken as a number within the range of 0 to 1.

You may think of height as a value measured in the same units as the global parameter Size – in pixels. For example, if the source image has the dimensions of 600 x 600 pixels, Size is set to 200 pixels, Surface Height is 10%, and all pixels of the height map are white, the resulting surface becomes a 'slab' with the dimensions of 600 x 600 x 20 pixels.

Here's how to apply this to choose a realistic height. Suppose you're creating a surface filter imitating a stucco wall. Let's assume that your target texture is square, has the dimensions of 512 x 512 pixels and corresponds to one square meter of real-world surface. Let's also assume that your real-world stucco has the depth range (the difference between the lowest and highest points) of 5 millimeters. If the Size slider is set to its maximum (in our case 512 pixels), and the brightness of the height map ranges from fully black to fully white, you will need to set the Surface Height slider to 0.005 (5 millimeters / 1000 millimeters). Alternatively, you may leave Surface Height at 100%, but in this case you'll need to make sure that the brightness of the height map pixels lies within the range of 0 to 0.005.

Height is a required input – in order to make the filter work, this input must be connected. The output of the subtree connected to Height goes directly to the Bump Map when it is turned on in the Render Maps menu. The Normal Map in the same menu is also produced by this subtree.

Reflectivity: Map Input

Defines how reflective the surface is. Lower Reflectivity values are useful for imitating rough surfaces, such as natural stone, sand or concrete, while for a polished surface like glass, plastic or metal it's better to choose a higher value.

Reflectivity

Technically, this parameter controls the strength of the specular reflection. Reflectivity of 0 eliminates the specular reflection completely, leaving only diffuse lighting (specified by Surface Color). The value of 100 produces maximum reflection. In this case, the relative strength of diffuse and specular lighting for a particular surface area is determined by the value of the Metallic parameter and is based on the angle between the incoming light and the surface.

Since Reflectivity is a map input, its value can be controlled separately for different image areas by connecting a map component to this input. The output of the subtree connected to the Reflectivity input goes directly to the Specular Strength Map when it is turned on in the Render Maps menu. The alpha channel of this output is ignored.

Reflection Blur: Map Input

Defines the reflection sharpness. This parameter has no effect when Reflectivity is set to 0. Higher Reflection Blur values lead to soft, blurry reflections, while lower values make them sharper:

Reflection Blur

Technically, this parameter controls the spread of the specular reflection, known as Phong specular exponent. Reflection Blur of 0 corresponds to the exponent of 10000, and the value of 100 corresponds to the exponent of 1. The range of Reflection Blur (0 to 100) is mapped onto the range of the specular exponent (10000 to 1) using the following formula:

PhongExponent = 10(1 - ReflectionBlur)*4

Since Reflection Blur is a map input, its value can be controlled separately for different image areas by connecting a map component to this input. The output of the subtree connected to the Reflection Blur input goes directly to the Specular Exponent Map when it is turned on in the Render Maps menu. The alpha channel of this output is ignored.

Metallic: Map Input

Defines the type of material the surface is made of – dielectric or metallic. The Metallic parameter indirectly defines the reflection color of the surface (specular color). Dielectrics don't change the reflection color, so it is determined by the lighting environment only. Metals, on the other hand, colorize the reflection with Surface Color:

Metallic

There are only two physically correct values for this parameter: 0 (fully dielectric) and 100 (fully metallic). The intermediate values are not physically correct, but may come in useful for artistic purposes.

Technically, this parameter takes into account the fact that dielectrics and metals reflect light differently. When the angle between an incoming ray of light and the surface is 90 degrees, dielectrics reflect 5% of the light specularly and the rest is reflected diffusely, while metals reflect nearly 100% of the light specularly. For glancing angles, when the angle between the ray and the surface is close to 0 degrees, the specular reflection approaches 100% for both metals and dielectrics. The actual amounts of diffuse and specular reflection are calculated according to the Fresnel term.

Since Metallic is a map input, its value can be controlled separately for different image areas by connecting a map component to this input. The output of the subtree connected to the Metallic input goes directly to the Metallic Map when it is turned on in the Render Maps menu. The alpha channel of this output is ignored.