Default Shader 4.5

From Terragen Documentation from Planetside Software
Revision as of 01:04, 6 December 2020 by Redmaw (talk | contribs) (Changed setting name from Unpremultiply specular roughness to Unpremultiply roughness on Images tab.)
Jump to: navigation, search
Default Shader GUI


Overview[edit]

The Default shader node forms the basis for object surface mapping. It can provide base colours or load external images, as well as allowing control over translucency, luminosity, specular effects, displacement and opacity. Beginning with Terragen 4.5 the Default shader has been improved for working with Physically Based Rendering (PBR) materials.

Many aspects of this node are made up of groups of related settings. For example the base colour aspect has settings for "Base colour", "Colour image" and "Colour function". All of these settings work together to control the particular aspect they relate to.

This has implications you might not expect. For example, lets say you want to map the image of a leaf onto the leaf polygons of a plant model. For the true colours of the image to come through you need to set the "Base colour" to white. If it was set to some other colour, like red, that colour would influence the colours from the leaf image, tinting them red. You can use this to your advantage. If you thought the image was too bright you could use a grey colour to make it darker.

Keep in mind that the different settings of each group aspect interact with each other. This makes the Default shader very versatile, but you might want to make step-by-step changes and render previews in order to see their effect as you learn how they work together.

Here are some tips to working with the different aspects of the Default shader:

To specify a basic colour:

  • Choose a colour with the "Base colour" setting.
  • Don't specify anything for the Image and Function settings.

To use the colours directly from an image:

  • Choose an image file with the "Colour image" setting.
  • Set the "Base colour" setting to white.
  • Don't specify anything for the "Colour function" setting.

To use the colours directly from a shader or function:

  • Assign a shader or function to the "Colour function" setting.
  • Set the "Base colour" setting to white.
  • Don't specify anything for the "Colour image" setting.

To use an image or function to control where the colour appears:

  • Specify the colour using the "Base colour" setting.
  • Specify a greyscale image in the "Colour image" setting or "Colour function". More of the specified colour will appear where the image or function is lighter. White means full colour and black means no colour.

Colour Tab[edit]

Colour Tab


Base colour

For a Metallic/Roughness workflow you can use the base colour to define the colour (albedo) of both metals and non-metals. Metallic surfaces have specular reflections that use the base colour as their main reflectivity colour. Non-metallic surfaces have a diffuse base layer that uses the base colour as its diffuse reflectivity.

For a Specular/Glossiness workflow, use the base colour to set the diffuse colour only. In this workflow the base colour should be set to 0.0 for raw metallic surfaces that have no diffuse reflectivity. For non-metal surfaces, including dirt and grime that may rest upon a raw metal surface, the colour values represent the colour of the diffuse material.

The three settings in this group define the base colour. Terragen multiplies all three settings together to determine its final value at each point on the surface.

Base colour sRGB 240,99,70 chosen via the Colour Picker pane.
Colour derived by multiplying Base colour and pixels from image map.
Colour derived by multiplying all three colour sources.
  • Base colour: This setting provides access to the Colour Picker pane in order to specify a base colour for the surface material. The adjustment slider can be used to modify the brightness of the colour value.
Base colour examples: 0, 0.25, 0.5, 0.75, 1.0, red, yellow, green, cyan, blue, magenta.
  • Colour image: This setting allows you to assign an image map to the surface material’s colour channels. The image map is projected onto the surface material as defined on the Images tab.
  • Colour function: This setting allows you to assign shader or function nodes to the surface’s materials colour channels.


Translucency

Translucency is the effect of light filtering through a surface. For example you might use translucency on a leaf texture to simulate light passing through it. It's not the same thing as opacity and is explained in more detail here. The three settings of the translucency group are multiplied together to determine the final amount of translucency of the surface material.

  • Translucency: This setting specifies the amount of translucency a surface material has, and acts as a multiplier to the "Translucency image" and "Translucency function" settings. Translucency is the effect of light filtering through a surface, and more information may be found here.
  • Translucency image: This setting allows you to assign an image map to control the amount and location of translucency on the surface material. The image map is projected onto the surface material as defined on the Images tab.
  • Translucency function: This setting allows you to assign shader or function nodes to control the amount and location of translucency on the surface material.


Translucency off.
Translucency using colour values sRGB 240,30,30.
Translucency using image map.
Translucency function using distance shader to limit effect to localized area.
Translucency off, front lit.
Translucency off, back lit.
Translucency = 0.5
Translucency = 1.0


Luminosity

Luminosity is the effect of a surface’s self illumination or glow. See the Surface Layer - Luminosity Tab page for a more detailed information about using the luminosity settings.

  • Luminosity: This setting provides access to the Colour Picker pane in order to specify a colour or amount (greyscale) of luminosity for the surface material. The adjustment slider can be used to adjust the level of luminosity.
Luminosity values 0 - 1, red, yellow, green, cyan, blue, magenta.
  • Luminosity image: This setting allows you to assign an image map to control the amount and location of luminosity on the surface material. The image map is projected onto the surface material as defined on the Images tab.
  • Luminosity function: This setting allows you to assign shader or function nodes to control the amount and location of luminosity on the surface material.


Luminosity off.
Luminosity = 1
Luminosity = 10
Luminosity = 30
Luminosity = 10, Luminosity colour = 240,30,30 sRGB
Luminosity controlled by image map.
Luminosity function = Power fractal v3 shader


Roughness Tab[edit]

Roughness Tab

Settings on this tab control the smoothness of a surface material. All the settings are multiplied together and evaluated to determine the final roughness value. When the combined values evaluate to 0 a perfectly smooth surface will result and reflections will be sharp and mirror-like. Rougher surfaces are the result of values closer to 1.0 and will make reflections appear more blurry.

Roughness settings 0 - 1.  Metal material in a Metallic/Roughness workflow.
Roughness setting 0 - 1. Non-metal material in a Metallic/Roughness workflow.
Roughness setting 0 - 1.  Non-metal black material in a Metallic/Roughness workflow.


Settings:

  • Roughness: This value should be set to 0 for perfectly smooth surface materials and up to 1.0 for rougher surfaces.
  • Roughness image: This setting allows you to specify an image file to use for roughness.
  • Invert image: When enabled, or checked, the image assigned to the “Roughness image” is inverted, i.e. black becomes white.
  • Gamma image:When enabled, or checked, assumes the image assigned to the “Roughness image” is in sRGB colour space and needs to be converted to linear colour space.
  • Roughness function: This setting allows you to assign shader or function nodes to determine the surface material’s roughness value.
  • Specular roughness model: This popup menu has two options for choosing the type of specular roughness model used on the surface material. Beckmann TG 4.5 is better at preserving energy when roughness is high. This is the default option for new projects, but existing projects will load with their own model for backwards compatibility.
    Specular roughness models


Specular Tab[edit]

Specular Tab


Metalness

Generally speaking, a surface material is either metal or it’s not. The combined (multiplied) values of the “Metalness”, “Metalness image”, “Gamma image” and “Metalness function” settings should always evaluate to 1.0 for a metal material or 0.0 for a non-metal. Note, greyscale values can be used to denote where non-metal materials, such as dirt or grime occur on the metal surface.

Settings:

  • Metalness: This value should be set to 1.0 for metal surfaces or 0 for non-metallic surfaces.
    Metalness values 0 - 1.
  • Metalness image: This setting allows you to specify an image file to use for metalness.. White pixel values (255,255,255) in sRGB colour space should be used for metal and black pixel values (0,0,0) for non-metal.
    Image map assigned to Metalness image setting.
    Image map assigned to Metalness image setting.
  • Gamma image: When enabled, or checked, assumes the image assigned to the “Metalness image” is in sRGB colour space and needs to be converted to linear colour space.
  • Metalness function: This setting allows you to assign shader or function nodes to determine the surface material’s metalness value. A value of 1.0 (sRGB 255,255,255) indicates a metal material and a value of 0 indicates a non-metal material.
    Power fractal v3 shader assigned to Metalness function.


The Fresnel effect states that the amount of light reflected from a surface depends on the viewing angle at which it is perceived. The classic example of this is the reflections on a body of water. Looking straight down towards your feet, you can see directly through the water to any terrain beneath. This would be considered zero degrees or F0. Gazing outwards towards the horizon, perpendicular to the water surface, you see the reflected sky more intensely on the surface of the water. In the PBR shading model a reflection becomes almost 100% at an incident angle of ninety degrees.

  • Fresnel reflectivity: This sets the intensity of the Fresnel effect. In Terragen 4.5 this defaults to 0.75.
Fresnel reflectivity on non-metal (Dielectric) surface with various Reflection values.
  • Reflectivity image: This setting allows you to specify an image file to use for the intensity of the Fresnel effect and where it is visible on the surface material.
  • Reflectivity function: This setting allows you to assign shader or function nodes to control the intensity of the Fresnel effect and where it is visible on the surface material.
Power fractal v3 assigned to Reflectivity function
Power fractal v3 assigned to Reflectivity function.
  • Fresnel reflection tint: This setting allows you to tint the colour of the reflected light in the area defined by the Fresnel effect.
Fresnel reflection tinted. Greyscale values 0 - 1. Colour values for red, yellow, green, cyan, blue, magenta.
  • Index of refraction: When a ray of light passes through one medium to another, such as through a glass vessel into water, it changes direction. The IOR is a way of optically measuring this phenomenon, for example water has an IOR of 1.33 and glass has an IOR of 1.52.
Index of refraction: 0 - 10

Displacement Tab[edit]

Displacement Tab

The settings found under this tab allow you to control the three dimensional displacement of the surface material. Displacement is only applied if an image is specified in the “Displacement image” setting, or shader or function nodes assigned to the “Displacement function” setting.

Settings:

    • Displacement direction: This popup menu has 5 options which let you choose the direction the displacement is applied in. Options that indicate “(requires computed normal)” require a Compute Terrain or Compute Normal node to be connected somewhere above the Default shader node in the network to work properly.
      Displacment direction options
      • Along vertical: Displacement happens along the normal of the underlying planet or 3D object.
      • Along normal: Displacement happens along the current surface normal.
      • Vertical only (requires computed normal): Displacement only happens along the normal of the underlying planet or 3D object. The displacement is scaled by the difference between the object normal and the surface normal. Displacement is reduced as the angle between the normals approaches 90°.
      • Lateral only (requires computed normal): Displacement only occurs in the lateral plane, that is perpendicular to the normal of the underlying object.
      • Lateral normalized (requires computed normal): This is the same as “Lateral only” but the normal is normalised, that is scaled so it has a length of 1.
      Displace direction: Off
      Displace direction: Along vertical
      Displace direction: Along normal
      Displace direction: Vertical only
      Displace direction: Lateral only
      Displace direction: Lateral normalized
    • Displacement multiplier: This multiplies the displacement values coming from the "Displacement function" input. A value of 1 leaves the incoming values unchanged. A value of 2 would make the incoming values twice as large. A value of 0.5 would make them half as large. Negative values will invert the displacement.
      Direction multiplier = 0.25
      Displacement multiplier = 0.5
      Displacement multiplier = 1.0
    • Displacement image: This setting allows you to specify an image file to use for displacement. The luminance of the image pixels is used to generate displacement.
      Displacement image = gems
      Displacement image = swirls
      Displacement image = Terragen
    • Gamma image:
    • Displacement function: This setting allows you to assign shader or function nodes to use as displacement for the surface material.
      Displacement function = off
      Displacement function = Power fractal
      Displacement function = Power fractal, Displacement image = Terragen
    • Displacement offset: This value is added to incoming displacement values after they are multiplied by the “Displacement multiplier” setting. This creates the effect of offsetting the displacement by a set amount along the “Displacement direction”. Positive values push the displacement out so it looks almost as if it was sitting on a plinth. Negative values will sink the displacement back into the surface. It doesn't reverse the displacement, it's more like creating a hole in the surface and then applying the displacement to the bottom of the hole.
      Displacment modifier = 0 (default)
      Displacement modifier = 1
      Displacement modifier = -1

Opacity Tab[edit]

Opacity Tab

Settings:

    • Opacity:
    • Opacity image:
    • Use alpha channel:
    • Invert opacity image:
    • Opacity function:
    • Alpha from colour:
    • Alpha key:
    • Key tolerance:

Images Tab[edit]

Images Tab

This tab contains the global settings for any image assigned to the settings of this shader. All images use the same global settings settings, in other words if an object has uv coordinates and the “Image projection” is set to “Object UV (if available)” then all images used within this shader will be projected onto the object’s uv coordinates. If further adjustments are needed, you can apply a “Transform input” shader downstream of the Default shader node.

Settings:

  • Image projection: This popup menu has seven options pertaining to how the images are projected or applied by the shader. All of the images used by the shader are projected according to this parameter.
    Image projection options
    • Plan Y (edges = XZ): Images are projected vertically along the Y axis in world space and images are tiled to 1 metre in scale. To adjust the scale of the image, add a “Transform input” shader node downstream of the Default shader node.
    • Side X (edges = YZ): Images are projected horizontally along the X axis in world space and images are tiled to 1 metre in scale. To adjust the scale of the image, add a “Transform input” shader node downstream of the Default shader node.
    • Side Z (edges = XY): Images are projected horizontally along the Z axis. in world space and images are tiled to 1 metre in scale. To adjust the scale of the image, add a “Transform input” shader node downstream of the Default shader node.
    • Through camera: Images are projected through the camera specified in the “Projection camera” setting.
    • Object UV (if available): Images are mapped using the 3D object’s UV coordinates, if they're available.
    • Cylindrical: Images are projected from a virtual cylinder around the object towards the central axis of the cylinder.
    • Spherical:
  • Projection camera: The camera assigned to this setting is used for the “Through camera” image projection. If no camera is specified the camera rendering the scene is used.

The Unpremultiply checkboxes below correspond to the image settings. For example, the Unpremultiply colour checkbox applies to the “Colour image” setting on the Colour tab. When enabled, or checked, the image is unpremultiplied. Some images use premultiplied alpha channels and may give incorrect results if they're not unpremultiplied. If an image doesn't have an alpha channel you don't need to enable these checkboxes

  • Unpremultiply colour: When enabled, or checked, the image assigned to the "Colour image" setting on the Colour tab is unpremultiplied.
  • Unpremultiply metalness: When enabled, or checked, the image assigned to the "Metalness image" setting on the Specular tab is unpremultiplied.
  • Unpremultiply translucency: When enabled, or checked, the image assigned to the "Translucency image" setting on the Colour tab is unpremultiplied.
  • Unpremultiply luminosity: When enabled, or checked, the image assigned to the "Luminosity image" setting on the Colour tab is unpremultiplied.
  • Unpremultiply reflectivity: When enabled, or checked, the image assigned to the "Reflectivity image" setting on the Specular tab is unpremultiplied.
  • Unpremultiply roughness: When enabled, or checked, the image assigned to the "Roughness image" setting on the Roughness tab is unpremultiplied.

A shader is a program or set of instructions used in 3D computer graphics to determine the final surface properties of an object or image. This can include arbitrarily complex descriptions of light absorption and diffusion, texture mapping, reflection and refraction, shadowing, surface displacement and post-processing effects. In Terragen 2 shaders are used to construct and modify almost every element of a scene.

Literally, to change the position of something. In graphics terminology to displace a surface is to modify its geometric (3D) structure using reference data of some kind. For example, a grayscale image might be taken as input, with black areas indicating no displacement of the surface, and white indicating maximum displacement. In Terragen 2 displacement is used to create all terrain by taking heightfield or procedural data as input and using it to displace the normally flat sphere of the planet.

A single element of an image which describes values for color and/or intensity, depending on the color system which the image uses. Groups of ordered pixels together form a raster image.

This is essentially the brightness of the colour. Terragen converts RGB colours to greyscale by taking the luminance of the colour.

A single object or device in the node network which generates or modifies data and may accept input data or create output data or both, depending on its function. Nodes usually have their own settings which control the data they create or how they modify data passing through them. Nodes are connected together in a network to perform work in a network-based user interface. In Terragen 2 nodes are connected together to describe a scene.

A parameter is an individual setting in a node parameter view which controls some aspect of the node.