Terrain Tools 3.0.2-preview.3 release is now available!

Hello Everyone!

We have new releases of the Terrain Tools package for you. These are largely bug fix releases as we’ve been focused on stabilizing features and cleaning up workflows and are intended for versions of the Editor that are 2019.4 and above.

A reminder: the API is still in flux while the package is in preview, so things that are available currently may not be there in the future or may change. If you have written custom filters or inherited from any of the TerrainPaintTools that ship with the package, they may have broken with these releases.

One of the new things that was added in the 3.0.2-preview.2 release was Editor Analytics integration. We are using this to collect information about which brushes and filters are being used, and which defaults are getting modified so that we can focus future development. No personal information is being collected, and you can always opt out of Editor analytics through the preferences.

As always, we love your feedback so please continue to send that our way. Any bugs that you find, workflow improvement suggestions, and questions about features are most welcome!

Changelog

[3.0.2-preview.3] - 2020-11-04
Fixed

  • Fixed regression with SetHeight Flatten Tile option
  • Fixed brush mask filters with SetHeight painting

[3.0.2-preview.2] - 2020-11-02
Added

  • Editor Analytics integration.
  • Fallback shader to the HDRP Visualization shader.
  • PNG/TGA heightmaps support level remapping and vertical flipping.
  • Create New Terrain supports heightmaps in Texture2D format.

Changed

  • Changed the package name that’s used to get core Universal Render Pipeline (URP) HLSL code from Lightweight to Universal.
  • Added missing Terrain visualization settings.
  • Removed Filter Stack Image assets.
  • Changed Base Map Maximum Distance to 20000 to match the range in the Terrain Inspector.
  • Terrain Toolbox splatmap modifications are now applied to Terrain only after you click Apply To Terrain in the Terrain Toolbox.

Fixed
Brushes

  • Brush sizes are clamped to a maximum based on texture size. (1276290)
  • Clone tool correctly blends heightmap.
  • Clone tool clones alphamaps as well as height.
  • Clone tool correctly maintains clone position when you rotate the Scene Camera or click on the UI.
  • Corrected Smooth tool behavior when you paint near the edges of Terrain tiles so that it produces less discontinuities. (1186005)
  • Removed artifacts that occurred when you used the Twist Brush. (1276448)
  • Added support for Brush Mask Filters to the Wind Erosion tool.

Splatmaps

  • Corrected blending when you apply splatmaps from the Terrain Toolbox.
  • Fixed error thrown when you highlight a splatmap in the Terrain Toolbox.
  • Fixed Undo/Redo functions after you apply a splatmap to a Terrain from the Terrain Toolbox.
  • Fixed error thrown when you export a splatmap to a Terrain without selecting a Terrain. (1240314)
  • Fixed Flip Adjustment on splatmap. (1276204)

Heightmaps

  • Corrected heightmap when you create Terrain using a RAW file type in the Terrain Toolbox.
  • Fixed Flip Axis when you use Import Heightmap to create Terrain.
  • Heightmaps can be exported in 8-bit mode from the Terrain Toolbox. (1276244)
  • Terrain Toolbox heightmap export properly remaps levels.

Noise Editor

  • Noise Editor displays correctly when you use the Personal (light) theme.
  • Noise shader import works correctly on Linux. (1188556)
  • You can now open only one Export Noise window at a time. (1269540)
  • Removed non-functional normalize option from the Export Noise UI.
  • Unique asset path is generated when you export noise.
  • Removed shader warnings from noise shaders.

Terrain Splitting

  • Details and Trees are preserved when you split Terrain in the Terrain Toolbox. (1248489)
  • Splitting Terrain with resolution of 33x33 warns the user and allows for an alternate split mode. (1276273)
  • Scenes now don’t automatically save when you split Terrain in the Terrain Toolbox.

Additional Fixes

  • Editing the Remap Curve in the Image Filter Stack no longer throws error. (1254251)
  • Reverting to values in a Terrain preset now correctly reverts to saved values.
  • Base texture size now appears correctly in the Terrain Inspector drop-down menu for Terrains you create with the Terrain Toolbox.
  • Fixed toggle button behavior in the Terrain Toolbox, Brushes, and Brush Mask Filters.
8 Likes

Add HDRP grass. Please.

4 Likes

Hi jjejj67,

Thank you for the feedback and we hear you. Currently the team is working on integrating shadergraph support specifically for painting details. This change will not only allow users to paint details in HDRP, but also author control over the materials used on painted details. We don’t have an eta for when that’ll land but we’re hard at work developing it.

6 Likes

Thank you for the reply. You are first person from Unity to even try to say something so I really appreciate it.

No problem at all and really thank you for sharing.

If I could ask for something from you it would be to continue giving feedback and seeking more even when there’s silence from our end. We’re still listening, but we may not always be able to respond right away. The work we accomplish is for creators like yourself and we do our best to take your thoughts into consideration.

2 Likes

A few questions in that regard:

  • what exactly do you mean by that?

  • will it involve billboard grass in HDRP?

  • will it involve SpeedTree 8 in HDRP?

Thank you!

No problem mate, as long as the process is kept transparent, I cannot see why we can’t wait.

As for grass, here is my suggestion.

  1. Rewire your team’s idea of “we are making terrain details and etc…which will eventually be used for grass.”
  2. Into “we need to provide industry standard grass to unity users - minimum”

The two may sound like a play of words, but in my past experience, the two yields very different results.

  1. And lastly stop omitting features thinking it is for the Asset Store.
1 Like

I’ve been wondering why it’s simply been disabled for the longest. It’s pretty stressful to have to use speedtree grass (I mean it works and looks lovely), but it can certainly bog a scene down faster than bad GC. I remember awhile back there was some replacement shaders on GitHub people made, but they seemingly appeared to have just quit working, so it makes me assume y’all removed the entire ability in general. So may I (if you can at least), please get a brief understanding as to why it was simply removed and as to why it couldn’t just be enabled?

(another question, for anyone whom can answer)
Is there still supposed to be an entirely new terrain system? Or is the Terrain tools just simply re-doing the terrain one step at a time? I heard about this new terrain system in development quite some time ago and that there was a dedicated team for it and didn’t hear nothing else again about it.

It is cancelled. The team was moved to polish, finish and optimize the current toolkit (both this package and stuff that exist in the core).
https://discussions.unity.com/t/804185/7

I hope that the team will have enough time to adapt to the new features 2021.1 offers. Stuff like new scene tooling and some custom nodes for visual scripting. I’m making a custom terrain system and I also have to implement a basic procedural generator. At the first glance, this package looked relatively easy to maintain with a lot of features.

I request unity to add roads tool like easy roads 3 and river spline system like R.A.M on asset store and integrate in terrain tools!! And also can we have tesselation, parallax mapping features for terrain and material support more than four?!

Heya. Just to be clear, while we have been putting a lot of effort into Terrain and Terrain Tools recently, this does not mean that Environment has been cancelled.

5 Likes

Any plane for LayerEdit System for Height/Texture paint?

How do I get a splatmap texture into Unity without the texture importer premultiplying the alpha channel? I can only make it work with a fully opaque alpha, which obviously cocks up the total splat weight.
[EDIT: My bad…it’s not Unity, it’s Paint.NET which premultiplies the alpha with the RGB on saving the TGA. Grrr.]

1 Like

there are some errors in the new package, I’m not sure if the TypeVersion() one will prevent builds.

EDIT actually it looks like its not from the latest version, just a general issue

when compiling any shader (URP is not installed in project):

Shader error in ‘Hidden/LWRP_TerrainVisualization’: failed to open source file: ‘Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl’ at /XXXX/Library/PackageCache/com.unity.terrain-tools@3.0.2-preview.3/Shaders/Visualization/LWRP/LWRP_TerrainVisualizationInput.hlsl(4) (on d3d11)

when compiling any C# code (with Entities 0.16.0-preview.21 installed):

ArgumentException: UnityEditor.Experimental.TerrainAPI.PaintHeightTool and UnityEditor.Experimental.TerrainAPI.PaintHeightTool have a conflict in the stable type hash. Use the [TypeVersion(…)] attribute to force a different stable type hash for one of them.
Unity.Entities.TypeManager.AddTypeInfoToTables (System.Type type, Unity.Entities.TypeManager+TypeInfo typeInfo, System.String typeName) (at Library/PackageCache/com.unity.entities@0.16.0-preview.21/Unity.Entities/Types/TypeManager.cs:408)
Unity.Entities.TypeManager.AddAllComponentTypes (System.Type[ ] componentTypes, System.Int32 startTypeIndex, System.Collections.Generic.Dictionary2[TKey,TValue] writeGroupByType) (at Library/PackageCache/com.unity.entities@0.16.0-preview.21/Unity.Entities/Types/TypeManager.cs:1058) UnityEngine.Debug:LogException(Exception) Unity.Debug:LogException(Exception) (at Library/PackageCache/com.unity.entities@0.16.0-preview.21/Unity.Entities/Stubs/Unity/Debug.cs:19) Unity.Entities.TypeManager:AddAllComponentTypes(Type[ ], Int32, Dictionary2) (at Library/PackageCache/com.unity.entities@0.16.0-preview.21/Unity.Entities/Types/TypeManager.cs:1072)
Unity.Entities.TypeManager:InitializeAllComponentTypes() (at Library/PackageCache/com.unity.entities@0.16.0-preview.21/Unity.Entities/Types/TypeManager.cs:1012)
Unity.Entities.TypeManager:Initialize() (at Library/PackageCache/com.unity.entities@0.16.0-preview.21/Unity.Entities/Types/TypeManager.cs:461)
Unity.Scenes.Editor.TypeDependencyCache:RegisterComponentTypes() (at Library/PackageCache/com.unity.entities@0.16.0-preview.21/Unity.Scenes.Editor/TypeDependencyCache.cs:77)
Unity.Scenes.Editor.TypeDependencyCache:.cctor() (at Library/PackageCache/com.unity.entities@0.16.0-preview.21/Unity.Scenes.Editor/TypeDependencyCache.cs:59)
UnityEditor.EditorAssemblies:processInitializeOnLoadAttributes(Type[ ])

1 Like

I’ve installed the terrain tools recently and I realized that the brush size is frozen. A user told me undocking that editor part kind of solved it, but I couldn’t get that to work. Is this something that could be addressed in the next version of the tools?

That might be related to a bug I noticed where the Y position isn’t being translated correctly somewhere. The mouse cursor shows below where the UI thinks it is. So you have to click like an input’s height length under what you actually want to click on.

Heya! We are aware of the URP/HDRP shader errors and are working on those. We are also aware of the type hash conflict and worked with the DOTS team to resolve those issues. Previously, full assembly name was not included in the type hash but now it will be for special cases, iirc.

There is for the Environment package but not for Terrain currently

Would it be possible to share a video or gif of the behavior the two of you are experiencing?

Hi Wyatt, and thanks for your fast response. I recorded this, the first part shows how it should behave (Hydraulic erosion size brush working correctly). After that I show how the Raise of Lower Terrain Brush works. There’s no way to change the size as we do in the Hydraulic Erosion option. I have to type manually the range every time I want to change the size, and that slows the workflow significantly:

5unvxj

1 Like