IMPORTANT

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.

Technical considerations and known limitations:

Terragen 4 often needs more RAM than Terragen 3. The higher requirements are to support Intel's Embree ray tracing core as well as new cloud lighting technology (Cloud Layer V3 and Easy Cloud).

Node names are no longer forced to be globally unique, so a node in an internal network can have the same name as another node in a different network. This means that some projects saved in TG4 won't work correctly in TG3, even if they only use TG3 features.


CHANGE LOG:


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)


Fixed a crash bug in atmosphere with low exp heights.

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

In Preferences you can choose 32 bit EXR for automatically saved renders.

Evaluation of lights while rendering may be slightly faster.

Windows only: updated to FBX 2016.1.2 from 2013.2.

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

Linux only: Resolved an openvdb dependency that prevented 4.1.11 from running properly on Linux.


Build 4.1.11 (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. We also added an EXR Options button to the render node's Sequence/Output tab, next to the TIFF Options button. 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, but they should not affect end users of third-party plugins that are already published.


Build 4.0.04


Performance fix: Many scenes with clouds will render much faster in this build. Mac users will see the biggest improvement, but it also affects Windows users especially at high thread counts.

The Geog Image Map Shader has been adjusted to fix some problems loading certain files.

Node creation menus for shaders and heightfields have been made easier to read by simplifying the item names.

We've rearranged the UI for the render node so that it's simpler and more logically organised:

- "Quality" tab has been simplified.
- "Ray trace objects" has moved to the Advanced tab. You should usually have this turned on.
- "More" tab and "Effects" tab have been arranged into new tabs called "Filter" and "Tonemap", and their advanced settings have moved elsewhere.
- "Detail blending" has moved to Subdiv Settings.
- Subdiv Settings are now accessible from a button on the Advanced tab.
- "Minimum threads" parameter is no longer available.
- "Size of subdiv cache in Mb" and "Preallocate subdiv cache" have moved to Subdiv Settings.
- Professional edition only: Removed the Layers tab and put "Render layer" below "Camera".

Settings to control the size of the subdiv cache will *not* be carried over from previous projects. The renderer now ignores these settings unless "Override size of subdiv cache" is turned on. By default it's off. With override off, a cache size is chosen automatically at the beginning of each render using the formula cacheSizeInMb = 250 * numThreads + 150.

Simpler version numbers: Public release builds don't display the fourth number '.0' on the splash screen anymore.

Some other minor changes have been made to the UI.


Build 4.0.01.0


Pausing or aborting a render with clouds is now much more responsive.

Free Edition and Creative Edition: Unintentionally, voxel buffers and 2D shadow maps were being disabled when loading projects, loading clip files with cloud nodes or pasting/duplicating cloud nodes. This could cause very long render times. This has now been fixed.


Build 4.0.00.0


GENERAL


Windows only: Installer creates an application called "Terragen 4" which is distinct from Terragen 3. You can have Terragen 3, Terragen 4, Terragen 4 Alpha and Terragen 4 Beta installed at the same time if you want.

Library files, Preferences, Custom Bindings settings and automatically-saved renders of Terragen 4 are stored separately from those of Terragen 3, Terragen 4 Beta or Terragen 4 Alpha.

Updated license text (company name and jurisdiction).

We have a new icon and a new splash screen.


FASTER RENDERING


Intel's Embree ray tracing core is now used to accelerate ray tracing of imported objects and non-displaceable built-in objects (Card, Rock and Grass Clump), and populations thereof. This provides an incredible speed boost in many scenes. Please note that RAM requirements have increased to support Embree.

Fixed a bug that was hurting the speed of ray traced shadows, independent of Embree.

Optimised ray tracing for scenes with no populations and scenes with few populations compared to individual objects.


3D PREVIEW


Ray Traced Preview (RTP) mode. This can be toggled on or off with the new "RTP" button on the 3D Preview, or by using the 'r' key (can be customised) if the preview has keyboard focus.

If a render crop is enabled, the RTP renders without shading, atmosphere or lighting on pixels outside the crop region. This way you can do faster region-of-interest previews.

The non-RTP micropoly preview's initial detail depends on the number of cores/threads if the HD button is pressed.

"Accelerate empty space" in clouds is ignored in previews because it greatly reduces interactivity (even though it helps full renders).

The "3 Button Mouse" preset has the same bindings as the "Universal" preset for orbiting in the 3D Preview. That is, either Alt+LMB or MMB.

'r' is no longer the default for resetting previews. 'r' is the default key for toggling RTP.

Context menu in shader and object previews has a Reset Preview command because there is no longer a default shortcut.

The Alt-R keyboard shortcut has been removed from the "Reset" button on the 3D Preview to reduce confusion with RTP toggle key 'r'.

Read more about the RTP here: http://www.planetside.co.uk/forums/index.php/topic,21730.0.html


OZONE


"Ozone factor" added to planet atmosphere. This controls the absorption strength of a simulated ozone layer in the atmosphere, which absorbs red and green light to produce bluer skies especially during sunrise and sunset. It strongly affects views from high altitude too. The height profile of the ozone layer is hard-coded to simulate an average Earth atmosphere, but automatically scales in proportion to the "bluesky exp height" if it varies from the default of 8000. When bluesky exp height is at the default value of 8000 the ozone layer occurs between 12km and 63km, peaking in density at around 20km. Density also changes in proportion to bluesky density to produce realistic results in a variety of setups.

The default project has ozone factor at 0.5. Newly created planet atmospheres also set ozone factor to 0.5.


CLOUDS


New node: Cloud Layer V3. This has a new voxel-based light scattering algorithm and lots of other improvements.

New node: Easy Cloud. This node will improve in future versions as we refine the cloud models and add more controls.

The "Add Cloud Layer" menu has 8 new items to create Easy Cloud nodes for low-level and mid-level clouds of different sizes. Some other volumetric cloud presets in the Add Cloud Layer menu (labeled "Generic") now use Cloud Layer V3 instead of V2.

Cloud Layer V2 has a new option: "View from space" shading model. It changes the behaviours of various parameters to avoid problems that are typically more visible when viewed from very high altitude. Added this to V2 for now, not V3, because this option is going to be most useful for global cloud layers and V3 doesn't support those yet.

The "Added Cloud Layer" menu has 3 new items to create global cloud layers: "Global: Dense", "Global: Thin" and "Global: Very Thin". These use Cloud Layer V2 and enable the new "View from space" shading model.

Cloud Layer V2 and Cloud Layer V3 show the cloud base altitude as a non-editable parameter.

Previously saved Cloud Layer V3 nodes will give a warning that "scattering_colour" is an unknown parameter, but this is OK.

Cloud Layer V3 and Easy Cloud enable "move textures with cloud" by default. In these nodes it also works slightly differently from Cloud Layer V2 to allow world space shaders to stay in the same place even when this option is on (this hasn't been properly tested).

Cloud Layer V3 and Easy Cloud require "Localise" to be enabled and prevent you from disabling it. The default radius is 50km.

Parameters for 2D shadow map and voxel buffer are no longer restricted to Professional edition; they appear in all editions of Terragen 4. This applies to all cloud nodes.

Voxel buffer resolution in clouds is now controlled by a "millions of voxels" parameter, which aims to generate voxels that are as uniformly scaled as possible.

Removed the anim button on some shadow map and voxel buffer parameters which we can't safely animate.

Corrected behaviour of clouds when both 2D shadow map and voxel buffer are enabled. This is going to change the look of renders that had both of these checked.

Voxel buffers in clouds are now generated on the fly instead of at the beginning of a render. This allows them to be previewed more effectively and also reduces some render times.


OBJECTS AND POPULATIONS


OBJ Reader no longer multiplies diffuse colour by 0.5 when reading materials.

Object readers' file sequence has parameters for "Sequence first", "Sequence last", "Frame offset", "Loop" and "Ping pong". In order to use file sequences, it still relies on %04d or some other valid formatter to be in the filename.

Reorganised GUIs for object readers and object generators, using two sets of tabs, resulting in cleaner, less busy layouts, and putting the Rock-specific and Grass Clump-specific parameters nearer the top.

Populator3 and Populator4 try to find a planet to link to whenever a valid terrain shader is connected, if the currently connected planet is invalid (which it may be after duplicating a population). They do this by searching downstream from the linked terrain shader, and then searching downstream from shaders higher up the main chain from the terrain shader in case the terrain shader is a distributary that doesn't output to the planet. They also do this OnFirstCreate(), but this will only work if a terrain shader called "Compute Terrain" exists. As a user you still have to connect a terrain shader after duplicating the population, but at least now you probably won't have to go to the Anchor tab to connect the planet as well.


OTHER RENDERER CHANGES


Image bloom and starburst effects in the render node. They are post processes when render has finished.

Experimental atmosphere bloom. This is a post process that affects atmosphere and clouds.

The render node "detail" parameter is now called "Micropoly detail" in the GUI.

Default "defer atmo/cloud" is ON. Default anti-aliasing is 2.

There is a new rendering option called "Defer all shading". This feature is BETA and might not always work correctly. Sometimes it can corrupt the final image (we've seen this when it's combined with GI Surface Details).

Partial-opacity shadows. The renderer can now render partially-opaque shadows of non-displaceable objects. Partial opacity is achieved with the Default Shader by using opacity less than 1 or using an opacity texture or opacity functon (many vegetation models already do this, with partial opacity occurring on anti-aliased edges in the texture). For now, this only works for shadows, while opacity visible to the camera still works as before: it can only be either 0 or 1 and each pixel will jump to whichever value is closest. The RTP has an extra capability that's not in the main render: the RTP can render these partial opacities visible to the camera as well, but we'll change this in future to match the capabilities of the main renderer. Please note: Partial opacity is not the same as refractive transparency in the Glass Shader and Water Shader. If you want to use this new feature to render semi-transparent shadows of glass-like objects, we recommend that you use a separate INVISIBLE object for casting shadows with reduced opacity, while keeping the visible object fully opaque (opacity 1) with shadows turned off. This will avoid surprises in future versions of Terragen that can render partial opacity visible to the camera.

Render GI Settings have been rearranged into 3 tabs: "Prepass", "Image Pass" and "GI in Clouds".

Render GI Settings have a new parameter "Cloud GI quality". This affects the accuracy of the background/indirect lighting component of TG4's new clouds (Cloud Layer V3 and Easy Cloud), but doesn't affect Cloud Layer V2. Low quality settings tend to produce flicker in animations or sometimes blotchy looking lighting in the clouds, but render faster. Each step down in the menu represents an increase in the quality by doubling the number of light samples, but also an increase in render time.

Render nodes' default TIFF compression mode is LZW. If a project is loaded that was saved with v3.3 or earlier, TG4 will apply the new LZW default, but projects saved with v3.4 will already have some settings written to the project and 3.4 defaulted to "None".

The Surface Depth render element can be output as TIFF. It is no longer forced to be EXR like most other render elements; it will be output as TIFF when the extra output filename ends with .tif or .tiff (either 8 bit or 16 bit according to the chosen TIFF options).

Those render elements that are not forced to be EXR (Rgb, Alpha and Surface Depth) are forced to be TIFF (".tif" or ".tiff" extensions are allowed). Only EXR and TIFF are supported for render elements (extra output images). Before this change, non-TIFF and non-BMP extensions would be allowed in the filename but this would mask the fact that they would really save as SGI RGBs. Now they will be saved as TIFF and have the extension ".tif".

Fixed bug in trTransform::Normal(). This fixes bug #197: Displacement is incorrectly scaled when object is scaled.


SHADERS


Fractal Warp Shader now has a "scale filter" input, which logarithmically scales the maximum feature scale of the fractal. A value of 1 allows warping at all scales. A value of 0.5 filters out scales greater than 1 thousandth of the main scale parameter. A value of 0 filters out scales greater than 1 millionth of the main scale parameter. BTW, a similar idea would be nice in the Power Fractal.

Fake Stones Shader has inputs for a scale function and a tallness function.

Glass Shader has a specular roughness function parameter (like the Default Shader).

ReflectiveShader has a specular roughness function parameter (like the Default Shader).

If the Water Shader is enabled it calls the input shader so that the input can affect opacity, but sets {doCo,doCd,doCs,doCe} to false before doing so. This allows the opacity trick that was broken by a change in March 2008. The behaviour is unchanged for disabled water shaders (they simply call the input).

New function: Voronoi 3D Cell Colour function node (a colour analog of the existing Voronoi 3D Cell Scalar).

New functions: AddMultipliedColour, AddMultipliedScalar, AddMultipliedVector, MultiplyComplementColour, MultiplyComplementScalar.

Default Shader now works as a value source (outputting its diffuse colour) when plugged in as a function or mask to another shader. Most other shaders already do this.


MISC


The camera's default stereo mode is now "Parallel" (was previously "Off axis"). Also, if a camera's stereo mode is "Parallel", the control for "Zero parallax distance" is disabled in the GUI.

Middle Mouse Button is now included in the default bindings for "Basic Pan", except in 1- and 2-button presets. Basic Pan is used for scrolling in the Network View and the Animation Panel, by default.

The default bindings now allow you to use either 'Tab' or 'n' to open the Quick Node Palette (in the Node Network). If you've customised bindings you may need to reset bindings to see this change, or you can add this binding yourself.

Network View Preferences "Use line smoothing" now defaults to True on Windows as well as Mac.

Prevented improper image flipping when adding previews to projects.

Gather Project errors are a little more specific.

Errors are printed to stderr instead of stdout.

No longer prints to console when creating or destroying nodes.

Adjusted the automatic colour choice of node labels so that they don't change from black to white when the network view goes into "dark mode" (which happens automatically when choosing a dark background colour).

Some GUI background colour changes.

Temporarily disabled the up/down steppers in parameter views.

