Terragen 4.4.71 (Release)

November 17, 2020

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

Download 4.4.71 for Windows 64-bit

Download 4.4.71 for macOS

CHANGE LOG

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.