Terragen 4.7.19 (Release)

February 10, 2024

For commercial use a Terragen 4 license must be purchased (see License text for details).

Licenses for educational use are available. Please contact us for information.

Your downloads

4.7.19 for Windows 64-bit

4.7.19 for macOS

CHANGE LOG

Build 4.7.19 (Release)

Fixed a bug in the texture coordinates on populated (instanced) objects that use "Force displacement".

Build 4.7.15 (Release)

RPC is enabled in the Free Non-Commercial Edition.

Micro Exporter produces cleaner geometry and smaller files, by merging duplicate vertices, normals, UVWs and faces. It can be used with multi-threaded renders.

Ray-traced samples contributing to the tgSurfNormal render element always have their normals in the camera-facing hemisphere.

Build 4.7.11 (Frontier Build)

"Render All To Disk" button has been renamed to "Render To Disk".

Some information about what kinds of data will be output by Render To Disk is shown to the right of the button, such as "Images", "Micro export" or "Images + micro export".

The micro exporter on the Output tab works only when using "Render To Disk", "Render Sequence" or command line rendering. It does not work when using "Render Image". This makes it consistent with the other options on the Output tab.

The main image file output on the Output tab has a checkbox so it's possible to disable outputting images when using "Render To Disk". This may be useful when using the micro exporter.

Build 4.7.10 (Frontier Build)

VDB exports set a uniform voxel scale when using the "Set bounds for VDB export" feature, for greater compatibility.

If using a license server, the render node (Terragen running with -hide flag) will wait up to 45 seconds for a license (previously this was 10 seconds).

Build 4.7.08 (Frontier Build)

Radiance HDR: Images can be saved in the Radiance HDR (.hdr) format in the Professional Edition and Creative Edition.

EXR in Creative: Images and heightfields can be saved to EXR files in the Creative Edition as well as the Professional Edition.

Multi-channel EXR: You can choose to embed extra output images into the main output as a multi-channel EXR. This includes the full set of Render Elements in the Professional Edition and the tgAlpha element in the Creative Edition. Options include regular Multi-Layer EXR and Multi-Part EXR.

Added "Set all objects to hidden" to the action menu of the Objects Node List.

Build 4.7.02 (Frontier Build)

The VDB exporter leaves grid points empty wherever the density value is zero.

"Different resolution for VDB export" and "Millions of voxels for VDB" settings on the Optimisation tab of cloud layers. You can tell VDBs to be exported at a different resolution from the cloud's internal voxel buffer.

"Set bounds for VDB export" on the Optimisation tab of clouds layer. VDB Export bounds can be defined by a bounding box. This can be moved, scaled and rotated however you like. Most of the built-in objects can be used as a bounding box, but we suggest using a non-renderable object such as the new Bounding Box node. Not only can this be used to clip the cloud, you can also use it to help the exporter avoid wasting time sampling empty space if you manually shrink the box around the actual cloud.

New object type: Bounding Box. This is a non-renderable object that can be used with the VDB exporter and may be used for various purposes in future.

The Node Network draws inactive node links/connections with a faded line. Most shaders and some other nodes set connections to be inactive when there is an unchecked checkbox associated with them. This improves readability of the node graph.

Various shaders automatically enable/disable parameters widgets associated with enabled/disabled features.

Build 4.6.44 (Release)

Fixed a bug in the texture coordinates on populated (instanced) objects that use "Force displacement."

Build 4.6.43 (Release)

Fixed a bug in semi-transparent shadows that caused some other shadow contributions to be ignored.

Faster GI cache lookups, especially in atmospheres at high resolutions.

Build 4.6.36 (Frontier Build)

Mac only: Fixed some dependencies that stopped the OpenVDB plugin tgopenvdb.tgp from loading.

Mac only: Fixed the notarization of the app.

Build 4.6.32 (Frontier Build)

MacOS build of Terragen 4.6. Our build process has been updated, so we've designated this a Frontier build. Please let us know of any issues you find with this version.

Build 4.6.31 (Release)

Georeferencing for everyone: Georeferencing capabilities (which are in Heightfield Load, Geog Heightfield Load and Geog Image Map Shader) are no longer restricted to the Professional Edition; they are available in Creative and Free Non-Commercial editions as well.

Professional Edition only: RPC System version 0.9.0 (Beta). Terragen RPC is a remote procedure call system for Terragen. A running instance of Terragen on Windows or Mac can act as a server, allowing other programs to make remote procedure calls (RPCs) to query the open project and modify its state. Possible uses include productivity-enhancing tools, syncing of data with other applications in real-time, render-farm submission scripts, studio pipeline tools etc.

RPC documentation: https://planetside.co.uk/docs/terragen-rpc/

Build 4.6.23 (Frontier Build)

The FBX importer works with FBX files that use non-default coordinate systems.

Fixed a bug that caused unnecessary flicker in cloud layers. This bug was introduced in 4.6.

Windows only: Optimisations to lots of core functions used by shaders, providing a small speedup.

A small optimisation in cloud scattering engine.

Experimental: Attempting to approximate RTP GI in Cloud Layer V2 in the same way that it's done in Planet Atmosphere.

RTP threads on Windows set priority to below normal.

Fixed some bugs in the reporting of license info in "Show License Info" and in the standard output.

Build 4.6.19 (Frontier Build)

Windows only: Removed some potentially very slow network queries when the Library contains missing file references with UNC paths.

Improved upon the changes made in 4.6.11 for rendering clouds in the 3D Preview.

Made some slight changes to the multiple scattering engine for Easy Cloud and Cloud Layer V3.

Increased the max ray depth for the GI approximation used in RTP for Planet Atmosphere.

The open file dialog for population caches allows selection of .popxml as well as .pop files.

Fixed a hang that could occur on the Mac when loading heightfields (and possibly other situations).

Updated the About Box link to the Planetside forums.

Build 4.6.11 (Frontier Build)

OpenVDB export is available on Windows (previously it was only on Linux). A VDB file can be exported from the command line and from the context menu of a cloud node in the Node Network. https://planetside.co.uk/wiki/index.php?title=VDB_Export

Changed the 3D Preview's level-of-detail calculations for voxel buffers in clouds. It uses a view-dependent minimum voxel size so that clouds nearer the camera are more likely to be rendered with the highest voxel resolution provided by the cloud, while clouds further away are more likely to be approximated. There are two modes to this. The first pass of the RTP, and all passes of non-RTP previews, use a low-detail mode which is designed to be fast (fewer voxels need to be cached before you see results). Subsequent RTP passes use a higher detail mode which is closer to final renders but may take longer to cache voxels before you see the results.

Removed the "Acceleration cache" feature from cloud layers because it caused problems with consistency between image tiles.

Fixed a bug in planet atmosphere "Reset Tweaks" which set one of the colours to the wrong colour space. This only mattered if colour management was enabled, and only during the session (saved files were not affected).

Fractal Warp Shader has a seed parameter.

The Tonemap tab on Render Settings has 3 radio buttons to change the gamma correction mode: "sRGB", "sRGB with custom gamma" and "Pure gamma".
- "sRGB": The sRGB standard OETF is applied. Compared to a pure gamma of 2.2, sRGB mode produces slightly darker values near black and slightly more contrast in the low-to-mid-range.
- "sRGB with custom gamma": The behaviour is exactly the same as "sRGB" if the gamma correction parameter is 2.2, otherwise deviations from 2.2 are applied as a gamma correction before the sRGB standard OETF is applied.
- "Pure gamma": Gamma correction is applied exactly as it was in previous versions.

Work-in-progress: "Replace with another object" is available in the Node Network's context menu for object readers and object generators. Undo is not working yet.

XML population caches: Population caches can be saved to (and loaded from) an XML-based format by choosing a filename with ".popxml" extension.

Prevented a crash that could occur in the Populator if it fails to read a population cache file.

Mac only: Performance should be greatly improved when dealing with any views containing a lot of controls, for example parameter views whether in standalone windows or the main window. It's much quicker to change between layout views or different nodes in the main window.

Fixed a crash that sometimes occurred when loading heightfields, especially when loading multiple heightfields at the same time.

Fixed a bug in "Build HSV Colour" function: If the input colour had a saturation other than 1, its hue would be calculated incorrectly. If this hue was passed through to the output (while modifying saturation or value), the output would have the wrong hue.

Some changes to the how the Progress Dialog works to allow multi-threaded progress reports.

Low level optimisations in the renderer.

Optimisations in some noise functions.

Optimisations in Power Fractal Shader (which also affects Easy Cloud).

Made a change to low-level memory management of scenes and renderers to fix a possible instability.

Fixed a bug in in the Free Non-Commercial Edition that showed a warning about missing some data when a render is finishing.

Build 4.5.71 (Release)

Fixed a bug in the Geog Image Map Shader which first occurred in v4.5.

Fixed a bug in the Shader Array which first occurred in v4.5.

Fixed a bug in the population cache (.pop) file writer which would add an extra instance at the origin.

Fixed a crash when the Library tried to display a project file that had been deleted.

Windows only: Fixed a crash when scanning a folder for Library items. This bug first occurred in v4.5.

Windows only: Fixed a bug which sometimes didn't clear the image when starting a new render. This bug first occurred in 4.5.60.

Build 4.5.60 (Release)

Improvements to Gather Project feature:
- On Windows, fixed an error that occurred when gathering a project with multiple references to the same file with different upper/lower case spellings.
- On all platforms, Gather Project detects files that would clash on a Windows target machine due to case-insensitive filenames, and renames the destination files to resolve the conflict.
- If Gather Project fails to copy assets to the destination folder, the error message includes the name of the first failing asset and a little bit more information on why it failed.

Fixed a bug which could cause crashes when preview images are generated for the Library.

Windows only: Fixed a recent bug that prevented loading of files larger than 2 GiB.

Windows only: Fixed the installer error "Setup has detected that the file 'vcredist_x64.exe' changed since it was initially published."

Build 4.5.56 (Release)

Default Shader changes:
- Deprecated the gamma options for roughness image and displacement image. Removed the gamma option for metalness image.
- Added "Remap ^2" option for the roughness image. This changes the roughness curve by squaring the values in the image. This improves compatibility with many third-party PBR shaders. If "Invert (gloss map)" is enabled, the squaring occurs after the inversion.

Build 4.5.54 (Release Candidate)

Fixed some problems with GGX and Beckmann TG 4.5 that occurred at very small roughness values. They only affected the Reflective Shader.

Build 4.5.53 (Release Candidate)

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. https://planetside.co.uk/wiki/index.php?title=Default_Shader_4.5#Roughness_Tab

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".

Exposure is working again in the 3D Preview (non-RTP). This was a 4.5 bug.

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

The basic light that RTP shines from the camera to light up shadows in non-path tracing modes, which used to only recognize a material's diffuse colour, now shows metallic base colours as well. It still appears diffuse unless you enable path tracing.

Fixed a motion blur bug for AA values that are not a power of 2. This was a 4.5 bug.

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

"Smooth polygons at terminator" is now available in Poly Sphere. It is enabled by default.

Poly Sphere has a mesh displacer input and checkbox for recalculating normals.

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.

OCIO can be force enabled with the command line argument "ocio" or "ocio=yes", as long as there is an environment variable named OCIO pointing to a valid OCIO config file. This command line argument causes Terragen to enable "Use OCIO" in Project Settings at startup and after a project is loaded. Terragen will default to roles which work well with ACES 1.0.3 but might not be compatible with your OCIO configuration, so we recommend testing this feature in the GUI first to see if the default settings are suitable. Please send us feedback if you think our defaults could be better or you need more controls.

OCIO can be disabled with the command line argument "ocio=no". This causes Terragen to disable "Use OCIO" in Project Settings at startup and after a project is loaded.

When using OCIO, Planet Atmosphere's colour parameters are transformed from shader space to rendering space so that OCIO has less effect on final images. This changes how OCIO renders look when compared to previous 4.5 builds but it should make atmosphere colours more predictable in most situations.

Object preview is aware of the case where the subject is neither a shader, terrain nor object (e.g. an object part) which would previously render with viewmode = Default. Now it does not render in this case. This stops some crashes.

"Add Object" submenus renamed from "Object" and "Displaceable Object" to "Displaceable Object" and "Populatable Object".

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 an occasional crash during prepass. This was a 4.5 bug.

Ray detail region defaults to "Detail in camera".

Help button on Project Settings goes to "project_settings" rather than "UNREGISTERED_CLASS"

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

OpenColorIO license added to Third Party Licenses folder.

Mac only: Fixed a number of UI drawing problems when using Dark mode.

Mac only: Fixed some redraw problems in the main list of the Library window, when using browsing mode.

Build 4.5.43 (Frontier Build)

General

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 that allowed us to improve the plugin SDK. There may be some bugs.

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 used when metalness is 1.
- Reflectivity is renamed to "Fresnel reflectivity" and defaults to 0.75.
- Roughness defaults to 0.8.
- Gamma conversion can be enabled or disabled on the roughness, displacement and metalness images.

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.

Rendering

Professional Edition only: OpenColorIO (OCIO) integration, experimental. 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".

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.

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.

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.

Objects

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

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

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

New object: Poly Sphere (BETA). This is in the category of populatable but non-displaceable objects. It have doesn't mesh (vertex) displacement features yet, but they will be added soon.

"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.

UI

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).

Build 4.4.71 (Release)

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

Fixed a potential source of instability in TGO Reader.

Mac only: Fixed a number of UI drawing problems when using Dark Mode.

Mac only: Fixed some redraw problems in the main list of the Library window, when using browsing mode.

Mac only: Fixed a problem where certain parameter types showed an undesired slider.

Build 4.4.69 (Release on Mac)

Mac only: Fixed a crash when creating Library previews for certain items. Previews are no longer created for some Library items, such as objects. This will be fixed in a subsequent release.

Mac only: Fixed a problem where text was truncated or missing in node settings.

Build 4.4.68 (Release Candidate on Mac)

Mac only: Fixed problem with certain views (3D Preview, Network view etc.) displaying only in the bottom left of the view.

Build 4.4.67 (Release on Windows and Linux)

Made the License Agreement more permissive by narrowing the definition of Volumetric Assets.
https://planetside.co.uk/terragen-4-eula/

Better updating of key files when a license has been renewed.

Mac only: The Mac version now requires macOS 10.9 or newer.

Mac only: Mac builds are notarized to meet security requirements on new versions of macOS.

Mac only: FBX support updated to 2020.1.

Mac only: Various third party libraries updated.

Build 4.4.65 (Release on Windows and Linux)

Updated the License Agreement. Restrictions on Volumetric Assets, Definitions, Updates, and more.

Improved stability on systems with a high number of detected CPU cores/threads.

Overhauled the bump mapping and lighting system that's used on ray traced objects to improve image quality and accuracy. Recent 4.4 builds had some bugs that were caused by changes to address some long-standing issues. The new system in 4.4.65 fixes those bugs and also maintains solutions to some long-standing issues.

"Smooth polygons at terminator." This is a new checkbox on the Surface Shaders tab of object readers, and it is enabled by default. It fixes self-shadow artifacts at the lighting terminator of polygonal objects where the smooth normals are inconsistent with the geometric normal.

"Darken bumps at terminator." This is a new checkbox on the Surface Shaders tab of object readers and non-displaceable object generators. It is enabled by default. It approximates self-shadow of bump maps at the lighting terminator to reduce the chance of seeing a sharp line where the surface falls into shadow.

Fixed a bug that occurred when "Ray trace objects" was off. Objects whose render method was "Default" were being rendered with both the rasteriser and the ray tracer. The correct behaviour in this case is to render with only the rasteriser. The bug may not have been noticed with objects that have positive displacement.

"Cloud base (min)" and "Cloud top (max)" readouts on the Atmosphere Node List are updated when a cloud layer's depth is changed.

Build 4.4.49 (Release on Windows and Linux)

The default scene has soft shadows enabled with 4 samples.

Fixed a mistake in the subdivision of displaceable surfaces when seen by rays at depth 3 or more.

Reverted the change from 4.4.40.frontier that prevented bump maps from displacing the shading position. This brings back the ability to use the "positive bump trick" to avoid sharp terminators on low-poly geometry.

Changed how the ray origin is determined for transmission rays (e.g. refractions and SSS) so they should work properly with the bump map behaviour mentioned above.

Improved the RTP's rendering of surfaces with opacity less than 1.

Glass Shader's default scattering mode is "Subsurface scatter in all directions".

When loading projects with Geog Heightfield Load, it now respects the deferred loading policy which is used by other heightfield nodes. That is, it only loads when it is needed by a preview or a render, and if the Heightfield Shader is disabled the loader won't load.

Render nodes automatically insert ${IMAGETYPE} into the extra output image filename if it doesn't contain IMAGETYPE when starting a render with extra output enabled. Dots or underscores may also be inserted, depending on the filename.

When automatically inserting %04d into output filenames that don't include it, no dialog box is shown. Dots or underscores may also be inserted, depending on the filename.

If the legacy sampler is being used, "Using legacy sampler >" is displayed on the render Quality tab in place of "Sampling is customised".

Minor UI changes in the Render node, Glass Shader and Water Shader.

Build 4.4.45 (Release on Windows and Linux)

Fixed a problem with post-process effects which caused some renders to crash.

Read and write filenames for GI caches can use render variable expansion, e.g. ${TGDNAME}.

When starting a render that writes a GI cache file, the renderer attempts to create destination folders for the GI cache file if necessary. However, in this version if an error occurs creating output folders it won't stop the render, unlike the case with output images.

Reversed the order of parameter expansion so that the non-curly-braced versions of the following work: $RENDERER, $RENDERNODE, $RENDERLAYER, $RENDERSECONDS, $RENDERTIME. Using curly braces is still advised, however, to avoid ambiguity and make things more reliable when other variables are added in future.

Build 4.4.44 (Release)

Rendering

Changed the default render settings:

The radio buttons for choosing between "Standard renderer" and "Path tracer" have moved to the Quality tab of the render node, and other controls have been rearranged to accommodate them.

The path tracer is ready for use in production. More information is in the Path Tracing section below.

The robust adaptive sampler is ready for use in production. Two changes were made to the the robust adaptive sampler to produce better looking images in a shorter render time. We fixed an important bug in the way it handled colours, and implemented a new method of evaluating contrast. Both of these changes provide a better ratio of image quality to render time.

The "Robust adaptive sampler" checkbox in the Render Pixel Sampler has been replaced by two radio buttons: "Legacy adaptive sampler" and "Robust adaptive sampler".

Corrected some flaws with motion blur when the pixel sampler is adaptive, by reverting to a random sampling strategy in this case.

Fixed a bug with the ray bias in shadow rays originating far from the camera. The fix makes distant vegetation render more correctly.

Worked around a bug which can cause large amounts of noise in the atmosphere GI cache if reflective shaders are visible to the camera in the GI prepass. To work around this bug, the reflective shaders do nothing when hit by camera rays in the GI prepass.

Changed how bump mapping affects the shading position. Bump mapping doesn't affect shading position anymore because this was causing incorrect rendering of transparency. However, this also means we can't use the positive bump trick to avoid sharp terminators on low-poly geometry. We may need another solution for this in future builds.

Output

New variables can be used in rendered output filenames. The complete list is now as follows:

The default output filename and extra output filename are "${TGDNAME}.%04d.tif" and "${TGDNAME}.${IMAGETYPE}.%04d.tif" respectively.

Output folders are verified and automatically created if necessary at the start of a render that outputs files. The render aborts if output folders don't exist after attempting to create them. (Feature #742)

Temporary/automatic render output files (the ones named "tgout") have a new filename format that includes the render time and the version of Terragen.

When tgSurfIndirectDiff is enabled in a render layer, two new elements tgSurfIndirectDiffRefl and trSurfIndirectDiffTrans are automatically output as well. When tgSurfIndirectSpec is enabled, two new elements tgSurfIndirectSpecRefl and tgSurfIndirectSpecTrans are automatically output as well. Please note that these images are not being properly generated in this build; they are always black.

Before writing an image file, Terragen prints to stdout "Attempting to write image: " followed by the filename. ImageWriterTIFF no longer prints anything when it succeeds, only when it fails. This is consistent with the behaviour of ImageWriterEXR.

Faster, Higher Quality Cloud GI

Cloud GI calculation is now much faster in scenes with high micropoly detail and/or high ray detail multiplier. This change comes at the expense of slightly reduced correctness which is unlikely to be noticeable in renders.

Slightly increased the spatial resolution of cloud GI (relative to the number of voxels), taking advantage of the faster calculation in this version.

Path Tracing

The path tracer is ready for use in production. The path tracer option has moved to the Quality tab of the render node.

Transparency (glossy/specular transmission) can be rendered with the path tracer.

Improved the performance of the path tracer in lots of ways.

Improved the adaptivity of the path tracer when using the Robust Adaptive Sampler.

You can control the path tracer quality with "Max paths per sampler" on the Quality tab of the render node.

You can control the path tracer's maximum ray depth with "Max ray depth in PT" on the Advanced tab, but it cannot go higher than 13 in this build. The default value is 5.

Path tracer clamps albedo to 1 on all bounces except the first. This is necessary to be physically correct and to avoid extremely bright samples after multiple bounces.

Faster path tracing with soft shadows: When path tracing, the sampling of direct lights uses fewer samples in bounced light. The number of soft shadow samples has much less impact on render times.

Fixed a bug in the path tracer that sometimes made it impossible to finish or stop renders and previews.

Subsurface Scattering in Path Tracer

Water Shader and Glass Shader "volume density" and "volume colour" can be used with the path tracer. This can be used to render objects with subsurface scattering. You can choose from 3 different methods to calculate subsurface scattering.

Caustics

When rendering with the path tracer, direct light sources reflecting off or refracting through shiny objects can cause caustics. They are only roughly approximated to reduce the amount of noise they produce.

These caustics may also show up in renders that don't use path tracing, but at a lower quality.

Water Shader, Glass Shader and Reflective Shader have a new parameter called "Caustic intensity" which defaults to 1. When a ray bounces off (or passes through) other rough surfaces before hitting this shader, "Caustic intensity" controls the brightness of the specular highlights of direct light sources. This is what causes this shader to cast direct light caustics (reflective and refractive), but it is often a major source of unwanted noise in path traced renders (or flickering in other renders) so it may be useful to control its intensity.

Caustic refractions and reflections are not cast by objects that have "Cast shadows" disabled. This is to obey conservation of energy and to avoid making path-traced underwater surfaces too bright under the Lake object which has shadows disabled by default.

Water and Glass

When simulating solid panes of glass with two parallel faces with opposite normals, previously there was a bug with direction of the rays emerging from the far side. This has now been fixed.

Glass Shader's "Double-sided surface" parameter is labeled "Double-sided / Thin-walled". This is to indicate that it's similar to the "Thin Walled" option found in other renderers.

Moved the Water Shader's "seed" parameter to the Waves tab and removed the Seed tab.

Objects

When an OBJ file is read into a project for the first time, it creates material nodes for any material references in the OBJ (or groups/objects if there are no material references) as well as materials defined in the MTL file (if any). It does this regardless of whether a MTL file is found.

Bump maps and displacement maps are read from OBJ MTL files and are applied to the displacement channel.

2D/3D Previews

Improved the performance and reduced the memory use of the 2D and 3D previews.

The 3D Preview allows objects, lights and cameras to be manipulated when in RTP mode. Camera wireframes are drawn and handles are shown for objects and lights. When hovering over a handle, the object is drawn in the same way it is in non-RTP mode, according to the Object Display Mode (bounding box, wireframe, smooth shaded or textured).

Specular highlights (from direct lights) are rendered in RTP mode if shading is enabled.

Translucency of direct lights is rendered in RTP mode if shading is enabled.

Path Tracing can be enabled or disabled in RTP mode by clicking on the gold cup icon or by using the right-click menu (context menu) in the 3D Preview while in RTP mode.

Corrected the normals of instanced (populated) objects in RTP mode.

Smooth normals and bump mapping are rendered in RTP mode.

Fixed a bug with the ray bias in reflection/refraction rays in the RTP.

Miscellaneous

There is a new checkbox at the top right of the main window called "Dynamic Layouts". This controls what happens when you click on the Layout Buttons to the left of it. When it is checked, the user interface behaves as it did before. If you uncheck this box, Terragen won't automatically open or close the 3D Preview or Node Network (except when you click on the Node Network layout button) and it won't automatically change the shading, atmosphere and lighting settings on the 3D Preview.

The Preferences item "Centre on nodes selected in node lists" is respected when switching between layouts. Previously it was respected only when manually clicking on nodes in node lists, and a change of layout caused centering to occur regardless of this preference.

Populator V4 "terrain shader" and "object to sit on" inputs are hidden from the network view so that they don't draw connections. The change was made because terrain shader connections from every populator were causing a lot of ugliness in projects.

Steppers are provided in the GUI alongside many edit boxes.

Mac only: Some changes have been made to work better in the OS's dark mode, but this is still a work-in-progress. If you switch the OS between light mode and dark mode you should restart Terragen to allow it to adjust to the new mode. This change was also included in 4.3.23.

Constant Colour node has individual parameters to control red, green and blue values.

Build 4.3.23 (Release)

Fixed a bug that slowed down the Node Network view when showing labels on node inputs (first appeared in v4.2).

Prevented a crash that sometimes occurred when exiting the application.

Build 4.3.22 (Release)

Heightfield Shader rotation can be manipulated with rotation handles in the preview.

Heightfield Shader has a "locate in" parameter to choose between "Texture space (warpable and transformable)", "Undisplaced space" and "World space". Existing files use "World space" for compatibility. New nodes are initialised with "Texture space (warpable and transformable)".

Fixed a bug in Surface Layer's Intersect Underlying feature that affected 4.3 builds.

Fixed a crash that could occur when reading or writing TGD or TGC files with long file paths (longer than 214 characters).

Build 4.3.21 (Release)

Heightfield Shader has a rotation control which can be used on non-georeferenced heightfields.

Shaders can be added to objects of any type while in RTP and the shaders will be updated correctly. Previously this only worked with non-displaceable object types.

The Plane object can now be rendered in the RTP.

Stopped showing a warning when making changes to Disc object.

Fixed a bug with the repositioning of planet atmospheres and cloud layers. The bug first appeared in v4.0.

Removed a bug that caused incorrect cloud dimensions in some animated scenes.

Solved a problem that caused some unnecessary flickering and reduced the quality of GI in clouds when not using a GI cache file. The new code renders the GI pre-pass faster at low resolution or low detail. High resolution pre-passes may take longer than before, but the quality of the final pass will be improved.

Fixed a bug that would eat up RAM and crash in a rare situation involving clouds and some reflective materials.

"Millions of voxels" defaults to 10 for all cloud presets. The slider now goes from 0 to 32, but higher values can be entered.

Fixed a couple of bugs in the algorithm that calculates voxel buffer dimensions from the desired number of voxels.

The maximum voxel buffer size is now 32768 x 32768 x 32768, and the software limit on the number of voxels is 1 trillion. The increased limits might be useful for exporting high resolution VDBs.

Build 4.3.18 (Release)

Fixed a crash that would occur if the update checker failed to connect to the server.

Changed the Easy Cloud's default evolution method to "Move height texture upwards", and changed the default speeds for drift and evolution.

Build 4.3.16 (Release)

Faster Rendering

Shaved about a third off calculation times for the colour generated by Power Fractal Shader V3 (colour/value, not displacement). This makes a big difference to render times for Easy Cloud, for example, and is expected to speed up many scenes that use the Power Fractal Shader.

Clouds

Animation of Easy Cloud. A new "Anim" tab on the Easy Cloud node has new features to animate the cloud textures:

In GI Settings, the default value for "Voxel scattering quality" is now 100, and the slider goes from 0 to 160. Although the optimal value depends on many factors, we've found that a value of 100 tends to render higher quality images in a shorter time than the old default of 50. We recommend updating any of your existing projects to use 100.

VDB Export (Only on Linux)

Linux (Professional Edition) only: Cloud layers can be exported to VDB files from the command line. For more information visit https://planetside.co.uk/wiki/index.php?title=VDB_Export

Pixel Sampling / Anti-Aliasing

"Defer all shading" can now be enabled on the render node's Quality tab. This was first available in Terragen 4 Beta but it had some bugs so we disabled it. Now we've fixed those issues. Deferred shading is a great way to improve anti-aliasing of textures and lighting on the terrain and other displaced surfaces, and it unifies adaptive anti-aliasing across all parts of the scene. In some cases it will render faster, and in others it will render slower. Image quality and render time depend on anti-aliasing settings.

New controls for adaptive sampling in Render Pixel Sampler:

- "New curve (BETA)." THIS MAY BE RECALIBRATED IN FUTURE BUILDS. When enabled, this changes how the adaptive sampler evaluates RGB values for contrast with neighbouring samples. The main difference is that the new curve increases the noise tolerance on bright pixels (especially super-bright pixels), which allows more time to be spent on shadows and mid-range areas. When enabled, render times are usually shorter. Therefore higher anti-aliasing can be used to get better quality images in less time.

- "Robust adaptive sampler (BETA)." THIS MAY BE RECALIBRATED IN FUTURE BUILDS. When enabled, the adaptive sampler uses a more robust strategy to estimate noise in order to improve image quality. It looks at a larger grid of samples surrounding the current pixel or subpixel that is being considered for supersampling. This can be important when rendering scenes that have a lot of Monte Carlo noise from depth of field, 3D motion blur, path tracing, or small objects that are sparsely distributed. It helps to reduce temporal aliasing in animations. It can improve the quality of fine vegetation, because it includes samples that were often missed by the old adaptive sampler. When enabled, render times may be shorter or longer than before, depending on the scene. Some parts of an image may appear noisier than before, while other parts may appear cleaner, so you might want to adjust anti-aliasing and/or pixel noise threshold to get the desired result. It automatically uses the "New curve" described above, regardless of that checkbox setting.

- Two new levels of adaptivity can be selected: 1/256 and 1/1024.

Professional Edition only: There is a new Render Element called "Sample Rate." This shows how the adaptive sampler decided to distribute ray-traced subpixel samples in response to the noise it detected. If viewing the image as an EXR, you should clamp the values at 1 (white) for ideal viewing. Full white pixels in the render element mean that the pixel contains the maximum possible samples for the Anti-aliasing parameter (e.g. 64 samples for AA 8). Magenta pixels mean 10% of the maximum possible samples per pixel were traced. Blue pixels mean 1%. Black pixels contain 0 samples. Although a pixel might contain no samples, interpolation occurs wherever samples are sparse. If viewing this element as an EXR, the green channel goes from 0 to 1 to represent the fraction of samples, while the red and blue channels may exceed 1 as they are equal to the green channel multiplied by 10 and 100, respectively. When you clamp the EXR at 1 you obtain an image with the colours described above.

Path Tracing on Surfaces (Work in Progress)

"Path tracing on surfaces" is an option you can enable on the Advanced tab of the render node. Radio buttons are provided on the Advanced tab to switch between "Standard renderer" and "Path tracing on surfaces".

Please note that path tracing is still in development, and we don't recommend using this in production yet. Future builds may radically change the appearance of materials, sampling quality and so on. Subsurface effects in Water Shader and Glass Shader are not working yet. There may be other rendering features which don't work correctly when path tracing is enabled. You may find corner cases where the renderer becomes extremely slow - if you do, please send us TGDs so that we can optimise for these cases.

Path Tracing On Surfaces automatically uses "Defer atmo/cloud" and "Defer all shading" regardless of those checkbox settings, and the UI doesn't let you change those options when path tracing is enabled.

When "Path tracing on surfaces" is enabled, the normal GISD is not performed by the renderer. In GI Settings there is a new set of GISD options called "Exaggerate surface details" which applies to path traced renders only, and this is turned OFF by default.

Image quality is controlled using the overall anti-aliasing settings of the renderer. We recommend using the new "Robust adaptive sampling" mode whenever you render with path tracing. This can be found in the Pixel Sampler settings ("Edit Sampling..." on the renderer's Quality tab). The old adaptive sampler has trouble dealing with some of the Monte Carlo noise created by the path tracer, especially on darker surfaces. The new robust adaptive sampler was designed to work well with the path tracer (although it is useful in other cases too).

For more information visit https://planetside.co.uk/wiki/index.php?title=Path_Tracing

Other Rendering Changes

Adjustment to ray tracer to fix some failed intersections of nearby displaceable surfaces, particularly when there was no default background sphere in the scene. We're not sure whether this will have any adverse effects until more tests are done.

Fixed a bug with Surface Layer Intersect Underlying in "Displacement intersection" mode. The bug sometimes caused incorrect self-shadows, and also caused incorrect mixing of layers when seen in reflections and any other situation where the ray tracer hit the surface.

Corrected some flaws with DOF when the pixel sampler is adaptive, by reverting to a random sampling strategy in this case.

Fixed an incorrect surface normal in the RTP, which caused warp shaders to behave incorrectly when the warper displaced along the normal (among other things).

Shader Improvements

The "unpremultiply" option in Image Map Shader (and hence Default Shader) does a safer unpremult that won't exceed 1 on brightest channel when images aren't properly premulted. They still won't look right but at least they won't cause asymptotes and fireflies. It won't allow unpremulting of HDR images but that seems like a rare use case.

Surface Layer has options on the "Effects" tab called "Better colour/shade continuity" and "Better displacement continuity". These cause the fuzzy zone calculations to use a higher quality exp() function instead of the fast approximation which was used before. The fast approximation is usually good enough for colour/shade distributions, but it can cause visible segmentation of the fuzzy zone when used to constrain displacements.

Added "Smoother fuzzy zones (better curve continuity)" checkbox to Distribution Shader V4, on the Tweaks tab. This is similar to "Better colour/shade continuity" in Surface Layer (see above).

Objects and FBX Import

Better handling of objects that have a scale of 0 in one or more dimensions.

Null object node has rotation and scale parameters.

FBX Importer: Nulls imported from FBX files import rotation and scale.

FBX Importer: Automatically unrolls Euler flips on rotation parameters for Spotlights, Nulls and Markers (it was already doing this for Cameras).

FBX Importer: Converts rotation order from the order stored in the file to Terragen's native rotation order when importing Nulls and Markers. Spotlights may still be incorrect in some cases.

UI Improvements

Fixed a problem with the update timer in the Node Network when the view is being repositioned. With some projects the view would reposition very slowly after loading the project.

When loading a project from the command line or opening a project from the OS, errors and warnings during the load are directed to the Errors and Warnings window, the same as when loading from the File menu.

Heightfield Erode V3 updates the progress dialog more frequently, especially to help with UI issues during long erosion calculations.

The mesh subdivision feature of the Rock object updates the progress dialog more frequently, and can be aborted.

If the app is closed while the progress dialog is open, the app attempts to abort the operation safely before closing.

Windows only: The progress dialog is brought to the front of other Terragen windows whenever an operation updates the progress bar.

The render node's Advanced tab controls have been rearranged.

Miscellaneous

Changes to automatic updates of license key files and display of license info. In particular:

- Expiry dates for maintenance and subscription are synced with the server whenever Terragen checks for software updates (either manual check or automatic check). Terragen asks the planetside.co.uk server whether the maintenance date on the license has been extended. If the maintenance has been extended, a new key file is downloaded from the server.

- For subscription-based (non-perpetual) licenses: On startup, if the number of days remaining on a license <= 0, Terragen will attempt to download a new license key file from the server.

- The number of days remaining on maintenance or subscription is recalculated based on the current date whenever that information is displayed (in case the app was started on a previous day).

- Show License Info (and stdout) shows the number of render licenses included in the license key file. The formatting has been simplified and some info is omitted in cases where it's unimportant.

Various fixes, below, which are planned to be ported back to support updates for v4.1 and v4.2:

- Fixed a bug that led to an illegal instruction exception on the Mac and possibly memory leaks on other platforms.

- Fixed a crash when deleting animation on some nodes that have hidden internal nodes, such as Easy Cloud.

- The text colour for animated parameters is properly updated when a key is removed or the animation is deleted.

- The Add Lightsource button is now labeled "Add Light Source".

- Updated tooltips for the Add Cloud Layer button and Add Light Source button.

Build 4.2.20 (Bug Fix Release)

Heightfield Shader has a rotation control which can be used on non-georeferenced heightfields.

Fixed a crash that could occur when reading or writing TGD or TGC files with long file paths (longer than 214 characters).

Fixed a bug that led to an illegal instruction exception on the Mac and possibly memory leaks on other platforms.

Fixed a crash that would sometimes occur when exiting the application.

Fixed a crash when deleting animation on some nodes that have hidden internal nodes, such as Easy Cloud.

The text colour for animated parameters is properly updated when a key is removed or the animation is deleted.

Fixed a bug that slowed down the Node Network view when showing labels on node inputs (first appeared in v4.2).

Fixed a problem with the update timer in the Node Network when the view is being repositioned. With some projects the view would reposition very slowly after loading the project.

Fixed a bug with Surface Layer Intersect Underlying in "Displacement intersection" mode. The bug sometimes caused incorrect self-shadows, and also caused incorrect mixing of layers when seen in reflections and any other situation where the ray tracer hit the surface.

Fixed a bug with the repositioning of planet atmospheres and cloud layers that first appeared in v4.0.

Fixed a bug that produced strangely coloured buckets with some combinations of render settings.

Appending shaders to objects of any type while in RTP results in the shader being updated correctly. Previously this only worked with non-displaceable object types.

The Plane object can now be rendered in the RTP.

Stopped showing a warning when making changes to Disc object.

The mesh subdivision feature of the Rock object updates the progress dialog more frequently, and can be aborted.

Windows only: The progress dialog is brought to the front of other Terragen windows whenever an operation updates the progress bar.

If the app is closed while the progress dialog is open, the app attempts to abort the operation safely before closing.

When loading a project from the command line or opening a project from the OS, errors and warnings during the load are directed to the Errors and Warnings window, the same as when loading from the File menu.

In GI Settings, the default value for "Voxel scattering quality" is now 100, and the slider goes from 0 to 160. Although the optimal value depends on many factors, we've found that a value of 100 tends to render higher quality images in a shorter time than the old default of 50. We recommend updating any of your existing projects to use 100.

"Millions of voxels" defaults to 10 for all cloud presets. The slider now goes from 0 to 32, but higher values can be entered.

Removed a bug that caused incorrect cloud dimensions in some animated scenes.

Fixed a couple of bugs in the algorithm that calculated voxel buffer dimensions from the desired number of voxels.

Updated tooltips for the Add Cloud Layer button and Add Light Source button.

The Add Lightsource button is now labeled "Add Light Source".

Build 4.2.10 (Release)

Rendering

Much faster ray tracing of displaceable surfaces in some cases, especially where rays travel nearly parallel to the surface.

Corrected a flaw in the rendering of clouds whenever the camera's altitude is higher than the base altitude of a cloud layer (either within the cloud layer or looking down on them from above). The distant part of the cloud layer was being cut off where the planet's curvature should make the layer visible from underneath. This flaw was sometimes noticeable when looking towards the horizon with the camera near the clouds, and also at higher altitudes if clouds should be seen curving around the planet near the horizon.

Reflections can pass through a Surface Layer that has child layers as long as "Apply Colour" and "Enable Test Colour" are disabled and the child layers are disabled (or don't interfere with reflections by themselves). This won't work if the child layers are function nodes (blue nodes) because they automatically convert to black Lambert shaders when they are disabled.

Luminosity (emission) can pass through a Surface Layer that has child layers as long as "Apply Colour", "Enable Test Colour" and "Luminous" are disabled and the child layers are disabled (or don't interfere with luminosity by themselves). This won't work if the child layers are function nodes (blue nodes) because they automatically convert to black Lambert shaders when they are disabled.

Export

Micro Exporter allows you to choose which texture space to use for the exported UVs or UVWs. "Image UV (render projection)" or "UVW from Compute Terrain or Tex Coords)". You should select "Image UV (render projection)" if you want to use the rendered image as a texture for the exported object. You can use this with any type of camera, including spherical cameras.

Groups and Notes in Network View

After moving groups with the mouse, those groups auto-capture any nodes they surround.

After resizing a group with the mouse, the group auto-captures any nodes it surrounds.

After moving or resizing a Group or Notes node, they snap to the grid in a similar way to other nodes. When you first use this on an existing project you may find that the contents of a group shift around a bit, but after they have snapped once they should behave predictably.

Until now, the resize handle along the top edge of a Group or Note was gradually reduced as we zoom out to make it easier to click on the title bar at low zoom, but this made it harder to grab the top edge for resizing. Other edges kept the same screen space size for the resize handle. Now, rather than making it progressively difficult to resize the top edge at low zoom, it's simply disabled when zoom is below a certain level. Left, right and bottom edges can still be grabbed at any zoom level.

Inputs and outputs in Network View

Shaders' main input which was previously called "Input node" in the GUI is now called "Main input".

Labels are shown above some input plugs that have a connection to another node, even when you're not hovering over them. The labels fade out and disappear when zoom is below a certain level. To reduce clutter, "Main input" and "Input 2" are not labeled (except when hovering over them).

Gradually fade opacity of input/output arrows when zoomed very far out.

New preview options

Heightfield Shader has a checkbox "Show b-box in preview". This controls whether previews should show a bounding box and manipulation handles for the heightfield.

Simple Shape Shader has a checkbox "Show b-box in preview". This controls whether previews should show a bounding box and manipulation handles for the shape. Moved "Draw shape edges" up alongside "Show b-box in preview".

Camera has new checkboxes "Show frustum in preview" and "Show path in preview" below the existing "Show camera body in preview". When showing neither the camera body nor the frustum, no manipulation handle is shown or selectable in the preview.

File and image handling

Added "Reload File" to the popup menu for file parameters.

Renamed "Open Preview" to "Preview Image" in the popup menu for image file parameters.

Licenses and key files

Fixed problems auto-updating key files that have expired or are are invalid because of maintenance date.

Changes to splash screen for expired keys and keys that are invalid because of maintenance date: text more accurately describes the reason why it's running in non-commercial mode (expiry or maintenance date) and that text is coloured red. In this situation the "Buy Now" button is labeled "Upgrade/Renew" and opens a different URL in the browser.

If running in Free mode because of an expired license, when you check for updates it will still report available versions according to what type the license was before it expired.

Build 4.1.25 (Release)

We've made some changes to help you understand the status of your license, and to see what's new when software updates are available:

Icon changes (Windows only):

Build 4.1.21 (Release)

Fixed another bug which caused most render elements to ignore the EXR bit depth setting. SurfRgb, SurfAlpha and SurfDepth were not affected by this bug.

Fixed a problem with "smooth surface" enabled in Compute Terrain and Compute Normal which would cause some renders to hang. Also fixed another problem in those shaders which could have made some shaders render incorrectly since v4.1.

Build 4.1.19 (Release)

Mac and Linux only: Fixed mistakes with the following object rendering modes: invisible, shadowless, invisible to other rays, force displacement.

Build 4.1.18 (Release)

32-bit EXR option works correctly for command line render, Sequence Render and Render All to Disk.

Fixed a bug that affected populations anchored to displaceable objects. This problem occurred in builds 4.1.15, 4.1.16 and 4.1.17.

Plugins can query the last-known filename of the project using Root()->FindParam("filename").

Build 4.1.17 (Release)

Fixed a problem with loading some 8-bit greyscale images with dimensions larger than 32767.

Reduced the memory requirements for some 8-bit greyscale images by no longer converting internally to RGBA.

"Voxel scattering quality" slider in GI Settings goes from 0 to 100 (although higher values can be entered). The default is still 50.

Build 4.1.15 (Frontier Build)

Professional edition only: "Holdout" mode is working again for ray-traced objects.

Corrected another problem in the handling of materials which may have led to crashes.

Fixed a couple of bugs which caused licensing problems if key files were placed in the program folder or custom key path.

No longer prints "AddClass: added class..." to stdout.

Build 4.1.14 (Release)

The Linux render node is now built against the VFX Reference Platform CY2017.

Fixed Bug #693: Pausing a render could cause the application to freeze.

Faster Shaders

Approx 2.2x speedup of the Voronoi functions used by by Power Fractal Shade V3, Fake Stones Shader and non-smooth Voronoi function nodes.

Approx 1.4-1.5x speedup of the smooth Voronoi functions. These are used by Power Fractal Shader V3 when filtered by a Smoothing Filter Shader and are also used by the Smooth Voronoi function nodes.

Alpine Fractal Shader V2 is now about 12% faster.

Faster/Cleaner Cloud Rendering

Terragen 4.1 now renders Cloud Layer V3 and Easy Cloud in a different way from 4.0. There is a new global control called "Voxel scattering quality" in GI Settings (on the GI in Clouds tab). This affects all cloud layers of type Cloud Layer V3 and Easy Cloud, and is independent of the cloud layers' individual quality parameters. The default value of 50 usually produces better images in less render time than Terragen 4.0.

Because of the above change, the "Quality" parameter on Easy Cloud and Cloud Layer V3 is now called "Ray-marching quality" in the GUI. It is no longer an overall quality control.

The default value for ray-marching quality on Easy Cloud has been reduced from 0.75 to 0.5 for faster rendering in most cases.

Reduced one of the main causes of variance in clouds that causes flickering, where clouds are lit by specular highlights or high values of "glow power" in the atmosphere or surrounding cloud layers. Now that this has been improved, you might be able to use lower settings for "Cloud GI quality" and that will reduce render times.

In Render GI settings on the GI in Clouds tab there is a parameter called "Cloud GI max ray depth". This applies to Cloud Layer V3 and Easy Cloud. It limits the maximum ray depth at which cloud voxel scattering includes light from other parts of the scene. If you have many cloud layers in the scene it's especially important to keep this number low (e.g. 1 or 2) to prevent long render times due to light interactions between cloud layers. This part of the renderer should be improved in future to allow higher ray depths without excessive render times.

More Cloud Control

Masking input for Easy Cloud. Not only can this be used to control the placement of clouds, you can also use it for interesting effects like making the base of the clouds more wispy or adding more variety to the clouds.

Increased the slider range for cloud altitude and cloud depth from 20,000 to 30,000. As usual, values outside this range can still be entered by hand.

Cleaner Atmosphere Rendering

Removed an unnecessary source of noise in atmosphere, especially noticeable in relatively short rays or when using a small number of samples. In many cases atmospheres will now render more accurately and with less noise.

Atmospheres no longer have a parameter to control sample jittering; samples are always jittered.

Faster Previews

Changed how the RTP samples/refines the image. This improves parallelism towards the end of the render, reducing total render time.

Changed how the RTP chooses how many threads to use on systems with 24 or more threads (12 or more cores with HT), to reduce the CPU load without sacrificing speed on hyper-threaded systems.

Changed how the 3D Preview in non-RTP mode chooses how many threads to use for various passes, reducing the CPU load but also improving speed, especially on hyper-threaded systems with 24 or more threads (12 cores with HT).

32-bit EXR

32-bit EXR for rendered images: When saving EXR images from the Render View, you can choose between 16 bit (half float) and 32 bit (full float) precision. For automatically saved renders, the precision can be changed in Preferences. We also added an EXR Options button to the render node's Sequence/Output tab, next to the TIFF Options button. This is not working properly in build 4.1.14, but in build 4.1.18 and higher you can use this to choose between 16 bit (half float) and 32 bit (full float) for EXR files rendered with Render to Disk and Sequence Render (including command line rendering).

32-bit EXR for heightfields: Heightfields saved to EXR now save to 32-bit float precision.

When saving heightfields to EXR, a single-channel EXR is produced with data in the "Y" channel.

Better GI

Fixed some problems with the interpolation of GI cache samples at render time (affects renders with cache files and without cache files).

Renderer Changes

Pixels are updated with final anti-aliased quality more frequently while rendering is in progress. Pixel reconstruction has been optimised so this shouldn't add much to render times. Some renders will finish slightly faster than before.

Boosted the speed of some renders by ignoring bump mapping in certain types of GI and reflection rays where we believe it's unlikely to be important to the final image.

New command line args -oxsubfolders and -oxsubfolders=no which override the "create subfolders" option in the project's render node.

Improved Merge Shader

Merge Shader has a new option to select between different texture spaces that are used when evaluating the inputs. They are designed to solve some problems such as correctly aligning displacement with colour/shading.

"Legacy" works as it did previously, so colour/shading doesn't always match with displacement.

"Current texture space (most uses)" is similar to "Legacy" with some improvements to the state of the normals to give more correct results. However, in this mode colour/shading doesn't always match with displacement.

"Undisplaced space (for alignment)" sets texture coordinates and normals from the original undisplaced surface to ensure alignment between colour/shading and displacement, but is not ideal in all situations. For example, if the Merge Shader is on a side branch (e.g. as a Child Layer of a Surface Layer) and the texture coords or normals were modified higher up the main branch before the side branch is evaluated, the modified texture coords and normals will be ignored. In this case "Current texture space (more uses)" is a better choice.

Smoothing Filter Shader

New shader: Smoothing Filter Shader. This asks upstream shaders to smooth away details at the specified scale. The scale can be modulated with a function input. However, it only works in a few specific cases at the moment. We need to modify the code for each shader to make it react correctly to the smoothing request. Currently only three shaders support smoothing: Power Fractal Shader v3, Cloud Fractal v3 and Fractal Warp Shader. We'd like to add smoothing support to more shaders in future.

"Obey downstream smoothing filters" is an option you can turn on or off for each Power Fractal Shader V3, Cloud Fractal Shader V3 and Fractal Warp Shader.

Other Shader Changes

Power Fractal Shader V3: "Better colour continuity" and "Better displacement continuity" parameters on the Tweaks tab. When enabled, the shader uses more precise math to remove C1 discontinuities in the 'variation' feature. It also changes how the smoothing of ridges and gullies is performed (in Perlin Ridges, Perlin Billows and Perlin Mix flavours) to give nicer results. "Better_displacement_continuity" is enabled automatically for newly created nodes, but not for existing ones.

Image Map Shader: When you switch to Camera projection the shader automatically enables "position_center" and sets the position to (0.5,0.5,0.0). As in previous versions, it also sets the size to (1,1). You still need to adjust the size parameters match the aspect ratio, but all other settings should be good.

Image Map Shader: When you switch to UV Projection the shader automatically sets the position to (0,0,0). As in previous versions, it also enabled "position_lower_left" and sets size to (1,1).

Reflective Shader: Prevents negative roughness when using a roughness function. Negative results are now clamped to 0.

Transform Input Shader: Added "Use undisplaced space" option.

Transform Merge Shader: Added "Use undisplaced space" option.

Changes to the OBJ Reader's .mtl reader: If index of refraction (IOR) specified by 'Ni' in the .mtl is 0 or less, we use the Default Shader's default IOR of 1.5 because the value in the .mtl is surely wrong. If the .mtl has an IOR between 0 and 1, Terragen uses its reciprocal (1/x) so that the value is greater than 1, because Terragen's reflective shaders currently only work with IOR greater than or equal to 1. If the .mtl doesn't specify 'Ni' then we continue to use the Default Shader's default IOR of 1.5 as we always did.

Lighting Controls

Light Source and Spotlight have parameters to enable/disable "light surfaces" and "light atmosphere" just like Sunlight has.

Some parameter labels have changed in Sunlight, Light Source and Spotlight nodes.

Image File Processor (Professional Edition only) has an option to apply some experimental HDR processing.

Other Preview Improvements

Fixed bug #578: Wireframe and texture previews were incorrectly clipping when "Use vertical fov" was selected on the camera.

Fixed bug with RTP projection when "Use vertical fov" was selected on the camera.

RTP displays elapsed time (seconds and tenths of a second) if more than 5 seconds have elapsed, or if finished.

Miscellaneous

Changes to the update checker system. When software updates are available for download, the window that shows the updates has changed. Recommended Updates (Release builds) are shown separately from Optional Updates (Frontier builds). If maintenance has expired and there are new versions that fall outside of the maintenance period then it also gives you a button to renew your maintenance.

Other changes to the update checker and update notification system.

When using Gather Project, the "Project Assets" folder is now called "Project_Assets" (has an underscore).

Some changes to the handling of license key files. In some circumstances Terragen will attempt to update key files with new information from the server at planetside.co.uk.

View menu and 3D Preview context menu no longer show the item to open the 3D Preview in a new window. This will be added back in a future release.

There are fewer situations where no parameter view is shown below the Node List at the top left of the GUI.

Some API changes.

Windows only: updated to FBX 2016.1.2 from 2013.2.

Mac only: Changed the way the app bundle is signed.

End of changes.