Build 4.3.16 (Release)
Released November 16, 2018
Included in Maintenance up to August 23, 2018
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.
Animation of Easy Cloud. A new “Anim” tab on the Easy Cloud node has new features to animate the cloud textures:
- “Drift” simply moves the textures horizontally over time, with controls for speed and direction.
- “Evolution” has a few different options, but they all work by moving textures up or down on the Y axis which creates the impression of change over time.
- “Time warp”. When using any of the animation effects above (Drift or Evolution), normally these are calculated from the distance between the current frame and the reference frame, but this produces animation with a constant speed. “Time warp” allows you to vary the speed during the animation, pause or reverse time, create bounce effects, and so on. You do this by editing the animation curve on the “warped frame number” parameter.
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.
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).
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.
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.
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.
End of changes.