TerraWorld 2021 - Automatic Level Designer for Real-World Locations

Thanks for the reply. This is the hierarchy after I generated the terrain. Does this mean that I can unparent no.1 marked below & delete terrain generated by Terraworld (marked as no.2)?
7817145--988968--upload_2022-1-18_4-26-57.png

Yes, you can safely unparent children from the main terrain and delete the terrain or from its settings disable “Draw Heightmap” option for future reference. Before pressing the FORCE UPDATE, make sure you already inserted your own mesh terrain and setup Unity layers. Let me know of your progress here!

I haven’t created the mesh terrain yet. Currently still playing around terrain created with Terraworld. It looks great! :slight_smile: I want to use Advance Culling (https://assetstore.unity.com/packages/tools/utilities/advanced-culling-system-157875) directly with Terraworld’s terrain, but it can’t detect the terrain created with Terraworld :frowning: Is there any successful case for combining Terraworld with Advance culling system that you know of? Or is Advance Culling only support mesh terrain?

Next question, can I still utilize Terraworld’s GPU instancing when using with Microsplat?

Another newbie question, I’m a bit confused when looking at the documentation on “scatter” part. Is my below understanding correct? When should I use which node?:

  1. “Terrain tree” is for tree placement (using Unity standard terrain tree system) does this mean it won’t utilize GPU? So it’s better not to use this??
  2. “Object scatter” is for prefabs can use collider/ physics in prefabs, but can it utilize GPU?
  3. “GPU instance” is utilizing GPU but not support collider or physics as long as the player is inserted in the “drop player here” in “Player” tab, it will still collide with physics right?
  4. In order to utilize GPU, I need to tick “enable GPU instancing” in the material shader is it correct?

7819965--989415--upload_2022-1-19_0-30-49.png

Never heard of the mentioned asset but from their showcase video, it seems that it only supports mesh terrains. However, Unity’s own Occlusion Culling system supports terrains and subdivides terrain patches as shown in this video:

https://www.youtube.com/watch?v=94ftF8P046g

In addition, TerraWorld comes with its built-in LOD & Frustum Culling system to bring the best performance in huge detailed worlds for a consistent framerate throughout the entire scene, see the introduction video here:

https://www.youtube.com/watch?v=3UbyeSBm4iY

Yes sure, you can use Unity’s built-in terrain shader or any other 3rd party terrain shaders such as MicroSplat or you can use TerraFormer which is TerraWorld’s built-in advanced terrain shader. See this post to get started about it: https://discussions.unity.com/t/767030 page-6#post-7231297

Bravo, all considerations are true and on point.

Terrain Tree Scatter places vegetation models on terrain and directly goes to terrainData as you would normally paint on terrains using stock Tree tools but if the material on prefabs have GPU Instancing enabled, they will use GPU Instancing while rendering.

Object Scatter is like placing normal prefabs in scene with their transform references in scene hierarchy and has the least performance compared the other scatters.

GPU Instance Scatter uses TerraWorld’s advanced GPU Rendering solution which has the best performance among all and also supports any types of interactions like physics, collisions and… for placed models via PLAYER tab. And in order to use this scatter, simply turn on GPU Instancing on prefab’s material(s).

There is also Grass Scatter node which can place millions of blades of grass and flower plants for the entire scene dynamically with minimum performance impact if setup properly.

Following screenshots are performance comparison between TerraWorld’s GPU Instanced Rendering VS. Unity’s Terrain Tree tools:

Terrain Trees - FPS: 18

7821597--989799--TerrainTrees.jpg

TerraWorld’s GPU Instanced Rendering System - FPS: 126

7821597--989805--GPU_Instancer.jpg

Note: Recommended placement method is GPU Instanced Rendering as TerraWorld’s focus is on using GPU cores for rendering the scene and less CPU usage as the standard protocol for modern graphics. And one of the key features in the GPU Rendering system in TerraWorld is the Player Interactions system where it can convert all GPU models into CPU objects (normal prefabs) around set targets like player character or camera to deliver all kinds of interactions like physics and collisions.

See this post regarding TerraWorld’s GPU to CPU conversion of the models aka Player Interactions: https://discussions.unity.com/t/767030 page-6#post-7529498

The falling trees when explosion happens uses TerraWorld’s Player Interactions system to convert GPU models to interactable models around the player:

https://www.youtube.com/watch?v=j4gkmyccUuk

1 Like

@TerraUnity thanks for the explanation. I’ll explore both mesh terrain & unity terrain and see which fits better for me.

In the meantime, I tried to use mesh terrain & unparent the children but I have lots of these errors. Unparent doesn’t seems to work. I can’t see the grass & vegetation in both editor or playmode.

My workflow:

  1. Generate the world in Terraworld like normal (I used forest template) & use microsplat
  2. Place the mesh terrain (with microsplat mesh terrain)
  3. Create new layer “terrain” & assign the mesh terrain to “terrain” layer
  4. Change the “layer mask” for each grass & vegetation to “terrain” layer & click “force update” on each
  5. Unparent the children from Terraworld’s main terrain & hide Terraworld’s main terrain

2nd test I tried without unparenting the children from Terraworld’s main terrain, I just hide Terraworld’s main terrain. Vegetation will appear after player walk “near” them but the grass is completely disappeared. I also have this errors.

FYI, I’m using built-in renderer, 2020.3.14f1 and Terraworld 2.30.3

@duminju1990 My bad, it is better to turn off “draw heightmap” instead of deleting it completely since a lot of runtime handlers still reference terrain in scene. The culling group errors may happen if some data is lost, so having your terrain mesh in scene is not related to the culling group errors, usually remake of the world will handle this. For updating the entire scene layers and models in scene from one place, you can select TerraWorld gameobject in hierarchy and from WorldTools component press “FORCE UPDATE”. Let me know of your progress.

P.S. Do you know about TerraMesh in TerraWorld?

Hey, I just installed terraWorld and I am getting this errors :
Library\PackageCache\com.unity.entities@0.17.0-preview.42\Unity.Entities\Serialization\ManagedObjectBinarySerialization.cs(70,33): error CS0117: ‘BinarySerialization’ does not contain a definition for ‘ToBinary’

Library\PackageCache\com.unity.entities@0.17.0-preview.42\Unity.Entities\Serialization\ManagedObjectBinarySerialization.cs(148,40): error CS0117: ‘BinarySerialization’ does not contain a definition for ‘FromBinary’

I have entities and dots on my project
what should I do?

Hi, it was a known issue with the current store version which has been addressed and fix will be available in the next version which will happen soon. Please stay tuned for the next version.

Thanks for the reply. TerraMesh as in “terrain mesh generator”? I used that node but it’s not working for my usage as I want to replace the whole unity terrain to mesh terrain. Turning off “draw” in terrain setting works for me, but I hope I can completely remove the whole unity terrain to save build size & avoid clutter.

Terraworld is a great asset, but it would be better if Terraworld functionality is more modular and not dependent on each other. I hope you can consider to make it more modular in the future :slight_smile:

With TerraMesh “Terrain Mesh Generator” node, you can replace the whole terrain with mesh, you need to input an area mask which covers the (e.g. Slope filter with 0~90 degrees in its range).

TW is designed to work based on terrains at first and if you want to hide it, give it the lowest resolutions of data and turn off its draw heightmap so that it won’t affect performance with little of extra build size. Also you can always change generated terrain’s heightmap or settings right after world generation via built-in Unity terrain settings. For instance, when the terrain is generated, you can go into terrain settings and change its heightmap to a lower resolution one or any other modifications and finally from WorldTools on TerraWorld gameobject in scene hierarchy, press the button “FORCE UPDATE” to sync all the layers with latest heightmap/texture changes in your terrain.

Regarding modularity, you are absolutely right and we try our best to make them work along each other with minimum dependency but as mentioned earlier, having terrain and in future terrain tiles was a must for TW scenes. However we are getting close to the stage to support mobile/VR/AR platforms officially so we will bring an option to choose between terrains and meshes.

So check with the terrain replacement as I guided you and get back to me with the results.

Well, I tried this with no luck. There was error message related to “out of memory” (can’t remember the exact error) when regenerating the world. I inserted slope filter with 0-90 degrees as you mentioned & selected the terrain material in “terrain mesh generator” node (I don’t see option to direct select the terrain mesh??). I think “out of memory” issue is because of my huge mesh terrain size. So, I’ll skip this method.

I had other issue when testing this. I changed the “texture resolution” to the lowest & “force update” it (picture below is the original value).
7873507--1000897--upload_2022-2-7_3-40-14.png
However, all the details were “floating in the air”. So I changed the heightmap resolution & control resolution to 1K (near to the original), but it made the details “sticking out” from the terrain instead. I’m not sure if you can see it clearly from this picture, but the details are not following the terrain shape (like “floating”). This issue is not appearing if I don’t mess with the resolution & only turn off “draw” from terrain setting.
7873507--1000900--upload_2022-2-7_3-41-7.png
Another thing, sometimes I got below errors when I tried “force update” from world tool many times. The “player interaction” script lost reference image.
7873507--1000909--upload_2022-2-7_3-55-33.png

Thanks for your assistant anyway. I’ll stick with turning off the “draw” for this time being & revisit this again after you’ve implemented the mesh terrain option :slight_smile:

First of all, thanks for the efforts and letting us know about your progress.

I can guess the out of memory error is coming from the very high resolution TerraMesh which is generating, so easily reduce its resolution by changing the “Resolution” parameter as shown below (Taken from here):

7874353--1001095--TW_TerraMesh.JPG

Also don’t be scared to experiment with other settings there and see the output since we tried to cover most of scenarios within the settings.

“Control Texture Resolution” will set splatmap resolution which is used for texture blending on terrain and “Heightmap Resolution” obviously changes terrain shape and details, so if you change the heightmap resolution for any reason, you then need to re-sync all placements. You can do it easily by selecting TerraWorld gameobject in scene hierarchy and from WorldTools component on it, simply press EDIT WORLD and then FORCE UPDATE so that all layers will be adopted based on latest heightmap/texture changes on terrain. In order to setup placement for single layers separately, simply select their parent gameobjects under TerraWorld object and from the inspector do the modifications (in your case change the Position Offset’s Y value). Following video tutorial shows how you can edit each layer in the world after world generation and any manual editing:

https://www.youtube.com/watch?v=e_gM5C3m6AY

I see, Unity changes its GUI API in every minor version and these kinds of warnings are inevitable, so you can ignore them and clear them from console and usually a revisit of the inspector, going back and forth in Play mode or restarting Unity will solve this Unity glitch.

TerraWorld’s sister is on Unity’s Lightning Sale with 70% Off at launch

[More info on TerraLand sale]( TerraLand 3 - Streaming Huge Real-World & Custom Terrains For Open-World Environments page-11#post-7872160)

Lately, a lot of users have asked about building to mobile platforms, performance and scene details. Below are a few fact statements which you need to take into consideration while using a level designer solution like TerraWorld in your projects.

TerraWorld is a modular world generator and level designer system where you define different parameters and details for the target platform. So you as the app developer should know your target platform’s limitations and consider them all and simply create scenes with TW and build. There is nothing to stop you from using TW in any platforms since Unity can port your scenes for that platform.

Performance (application’s FPS value) is a broad topic but note the following statement to keep in mind while developing your app:

Templates & Project Settings for Target Platform (Desktop, Console, Mobile, VR/AR)

Default presets in Quality Settings does not bring good performance and visuals to detailed environments TerraWorld creates and you need to have this window side by side your scene for visuals and stats for performance to achieve an optimal balance. Some of the most effective parameters for performance are: “Lod Bias”, “V Sync Count”, “Shadow Distance”, “Shadow Resolution”, & “Anti Aliasing (Set it to disabled since Post Processing handles it)” , “Color Space”, “HDR Camera Rendering” and… Also download and play Alps demo and press Tab while playing to see the FPS and performance in a production level build in a very detailed environment with max quality settings and effects. In addition, 3D models and/or materials that come with the package may not be optimized for your target platform so feel free to use any 3rd party art and environment assets and feed them in Scatter nodes for placement which give much better performance along with VFX settings.

Performance in General

Never ask performance questions like this because you won’t get a proper answer… Obviously because it depends on the mixture of target platform (Desktop, Mobile, VR), machine specs (CPU, GPU, Ram), screen resolution, assets count, rendering quality, LODs, shader complexity, post processing and effects, terrain data resolutions, placement items densities, shadow settings, lighting quality, GPU Instance settings, runtime handlers, physics and… which generate a FPS value in the end!

Flexibility of TerraWorld Level Designer

Generated worlds can be in any style and detail as you can feed in your own resources of prefabs, models, textures, terrain layers, effects… in the graph. Regarding performance, it’s a broad topic and depends on many factors in generated scenes but TW is a modular system where you can control all densities, resolutions and complexities to set it for target platform so it’s always useless to ask such questions for a dynamic world generator like TerraWorld.

Details of the Generated World

If your scene is detailed and populated densely then 8k is considered large already, if you need bigger area size you have to play with the graph/node settings to make the scene optimized. Generally it is an iterative process where you go into a trial & error process to get the best results and balance quality and performance. Hopefully all TerraWorld features are modular so you can enable/disable/edit all settings to set desired optimal setup.

Download & play the free FPS demo scene by our team to have a grasp of what can be achieved with TerraWorld: First-Person Shooter Military Game (Windows) – Forums – TerraUnity

1 Like

This asset was last updated on May 3, 2021.
Is it time to bury him or will you start releasing updates? You have a good roadmap, but it hasn’t moved in over a year.

Yes, that’s true, we are heavily working on the new update and it will be released in a month from now as our biggest update yet and changes are major in terms of consistency and bugfixes.

Do you own TerraWorld? Asking to see if current version has any issues in your projects! We have an active community on Discord which we listen to every question and feedback from our users, join here: https://discord.gg/9J6Jk7B

1 Like

Yes. I own this asset and have been waiting for the promised support for HDRP for 2 years now.
I thought about using the terra in my work. But I do not see that this asset would develop. He looks abandoned.

Again, please do not use the word abandoned or dead just because it did not get any recent updates as I’ve explained the situation and you can explore our active community.

HDRP & URP support was there since 6 months ago on October 2021 right when announced on public roadmap, read about it here: https://terraunity.com/community/topic/convert-terraworld-scenes-from-standard-rendering-pipeline-to-hdrp-urp/

Believe me, HDRP, URP… is nothing but the same Unity with different materials! We have developed a scene converter described at the above link and made TerraWorld fully compatible with SRPs.

Here is a brief introduction of Scatter Nodes in the BIOMES tab which take a prefab of your own and place them on map based on specified real-world and procedural rules:

TerraWorld has 4 kinds of Scatter nodes which you input your own prefab model and it handles placing and rendering them for you. These 4 Scatter node types are:

  • GPU Scatter (Can input anything from vegetation, solid models like rocks or buildings along with PLAYER INTERACTIONS in PLAYER tab to unlock runtime interactions with them like physics and collisions…)
  • Object Scatter (Can input anything from vegetation, solid models like rocks or buildings…)
  • Terrain Trees Scatter (Inserted prefabs of vegetation goes through Unity Terrain Data as you would paint on terrains normally)
  • Grass Scatter (Used to render high density grass, plant and flowers by inputting a material with texture of a grass/plant texture)

TerraWorld creates natural environments based on real-world satellite and landcover data but does not cover geo-referenced cities/towns or procedural building/road system. It has a Scatter system through nodes where takes user-defined procedural rules and prefabs as resources to place them in scenes whether it’s a tree, rock or building; so you can place any models in scene based on filtered areas and settings to even create a city or town based on populated models. An example of this which used Scatter nodes to place buildings is here:

Don’t forget to see this tutorial series on our YouTube channel to get started with TerraWorld capabilities starting from this video:

TerraWorld also comes with Runtime GameObject Spawner component to place objects around set target (player). The following video shows how we placed buildings and houses using this system:

This tutorial video shows how you can use your own models and prefabs to place in scenes:

Hey all, TerraWorld is on Unity’s Spring Sale for 50% Off :sunglasses:

1 Like