Terragen 4.5.56 Change Log

    Build 4.5.56 (Release)

    Released January 1, 2021
    Included in Maintenance up to July 1, 2020


    On Windows: Terragen is now built with Visual Studio 2019, and the installer has changed. Let us know if you run into any problems.

    Terragen 4.5 is not compatible with third party plugins that were built for Terragen 4.4 and earlier. Contact plugin developers to download updates that are compatible with Terragen 4.5.

    Lots of changes were made to the renderer and shaders behind the scenes, allowing us to improve the plugin SDK.

    RTP uses fewer threads so the UI can be more responsive without affecting rendering speed too much. The new formula is: RTPThreads = (PreferencesThreads + 1) / 2

    On Windows: Using OpenEXR version 2.4.1.

    Shaders and Materials

    Default Shader has been improved with PBR materials in mind:

    • Metalness controls
    • Diffuse colour is renamed to “Base colour” and affects the colour of the specular reflection when metalness is 1
    • Reflectivity is renamed to “Fresnel reflectivity” and defaults to 0.75
    • Roughness defaults to 0.8
    • Remap ^2 option for roughness image
    • GGX and updated Beckmann specular roughness models

    Default Shader and Reflective Shader have two new specular roughness models: “GGX” and “Beckmann TG 4.5”. “Beckmann TG 2” is also available for backward compatibility.

    Changed the path tracer’s distribution of glossy reflection rays to correct an incorrect sharpness at high roughness settings. It now biases microfacets towards the ray origin using a formula based on roughness and viewing angle, to approximate the view-dependent distribution. This visibly shifts reflections at high roughness and glancing angles, but some shift should occur naturally anyway.

    Glass Shader and Default Shader force a minimum specular roughness of 0.005 for direct lights (but not other rays) so that highlights are more likely to be visible when the shader’s roughness is smaller than that.

    The renderer no longer supports per-channel (RGB) roughness which was previously allowed for direct highlights.

    UI changes related to specular roughness:

    • Roughness sliders go up to 1.0 on Reflective Shader, Glass Shader and Default Shader
    • IOR slider goes from 1 to 5 on Default Shader
    • Removed “specular” from the display name of “Unpremultiply specular roughness”.

    Simple Shape Shader blends with non-Lambertian shaders more correctly.

    Simple Shape Shader, Contour Shader and Constant Shader now output the correct colour when used as a utility (mask, modulator, input to colour adjustment shaders, etc.)

    Visualise Normal and Visualise Tex Coords now output the utility colour you would expect (for masks etc.), regardless of whether you’re using the diffuse option or the luminous option.


    Professional Edition only: OpenColorIO (OCIO) integration. Documentation is here: https://planetside.co.uk/wiki/index.php?title=OpenColorIO

    Any changes to the Render node’s tonemap and gamma settings cause an update to the Render View immediately. This works on finished renders. It also works on in-progress renders, but we’re not completely sure that it’s thread safe yet. Behaviour might be strange when used with multiple render nodes, because they update the Render View even if they aren’t responsible for the image.

    Improved motion blur sampling.

    Changed behaviour of motion blur: When the motion blur checkbox is off, the image is rendered exactly on the camera values for that frame without any interpolation. It also causes motion vector elements (tgSurf2dMotion and tgCloud2dMotion) to be empty/black. To output motion vectors and get the same camera interpolation as v4.4, you now need to enable motion blur and set the motion blur method to “Vectors only, for post”.

    World space coordinates are set correctly when evaluating opacity shaders/functions applied to instanced objects (populations). This means you can now apply Transform shaders with “Use world space” downstream from opacity functions.

    The weird red-orange-yellow triangles that are seen during rendering (temporary deferred shading data) are now held in the alpha image rather than the main image.

    Fixed a bug in “Smooth polygons at terminator” that failed to distinguish separate objects.

    A partial fix for holdouts not working in deferred shading. It’s only a partial fix because the alpha channel may retain some of the info buffer when there’s adaptive sampling.

    Ray detail region defaults to “Detail in camera”.

    Atmosphere, Clouds and Lighting

    Cloud GI for Easy Cloud and Cloud Layer V3 can be cached in GI cache files. When reading GI cache files the names of the cloud layers must be the same as when the cache files were written, otherwise the caches will be ignored and the GI will be calculated on the fly as normal.

    Known issue: aborting renders is sometimes not possible when generating cloud GI caches, and may hang the program.

    “Rayleigh phase function” is a new option on the Lighting tab of Planet Atmosphere to produce a more realistic, physically based atmosphere. It is enabled in the default scene and newly created atmosphere nodes. When enabled, the “Bluesky glow” settings are ignored; they’re replaced by the Rayleigh phase function. It brightens the “Bluesky” component of the atmosphere by 50% in directions towards the sun and opposite the sun, and darkens it by 25% in directions that are 90 degrees away from the sun (halfway between the two bright lobes).

    Planet Atmosphere has a new option called “Better cache radius” which is enabled by default. This improves the resolution and accuracy of enviro light (GI) in the atmosphere. Some scenes will be affected more than others. It can make a big difference at twilight.

    A minor change to the sampling of enviro light in Planet Atmosphere and Cloud Layer V2.

    Atmosphere’s “Haze glow” is now called “Haze sun glow”. Using the word ‘sun’ is consistent with the equivalent parameters on cloud layers.

    Other UI tweaks related to Rayleigh phase function, haze sun glow and bluesky glow.

    “Voxel scattering quality” slider goes up to 400. You can still enter higher values by hand.

    Spotlight’s “shape” parameter has a dropdown to choose between Circle and Square. Previously you had to enter either 0 or 1.


    Fixed a bug in using the Library to add populations to the scene.

    MDD files: Object readers have the option to “Read MDD file (motion)”. This is on the Mesh Modifiers tab.

    Objects have options for recalculating normals when reading MDD files or applying mesh displacement.

    New object: Poly Sphere. This is in the category of populatable but non-displaceable objects. It has a mesh (vertex) displacement input.

    “Save Object File…” in the context menu of the Network View now works with certain Object Generators (e.g. Card, Grass Clump, Poly Sphere, Rock), not just Object Readers. Also removed the restriction on saving objects that are members of a population.

    “Add Object” submenus renamed from “Object” and “Displaceable Object” to “Displaceable Object” and “Populatable Object”.

    UI and Miscellaneous

    When Heightfield Generate is aborted, “Generate on load” is unchecked so that it doesn’t get stuck in a loop, and the partially generated terrain is cleared.

    On Windows: “Choose folder” dialogs use Windows’ IFileDialog instead of the ancient SHChooseFolder. This improves the Gather Project window, Library window, and Preferences.

    Changed the text that’s displayed on the Render View during rendering to indicate the pass and percentage of pass completed.

    Measure Window displays length in miles in parentheses and height in feet in parentheses (in addition to the usual metric displays).

    Help button on Project Settings goes to Wiki entry for Project_Settings rather than UNREGISTERED_CLASS.

    Nicer formatting of metadata in clip files. Solved some problems with the Library’s handling of clip files.

    Fixed a crash that would occur with image file paths longer than 1024 characters.

    Uses a safer method to insert frame numbers into filenames.

    Fixed a crash that could occur after selecting an object part in the Objects Node List.


    Planetside Software

    All stories by: Planetside Software