Terragen 4.2.20

February 26, 2019

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.2.20 for Windows 64-bit

Download 4.2.20 for Mac OS X


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)


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.


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.


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.