Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Landscape Builder - Procedural Terrains, Advanced Prefab System, spline tool, and more

Discussion in 'Assets and Asset Store' started by sstrong, Feb 24, 2016.

  1. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    LB_EnviroPk1_KG_162039_reduced.png
    Tutorials | Documentation | Asset Page | Beta | LB Enviro Pack 1 | Discord Channel | Sci-Fi Ship Controller

    Landscape Builder 2 is a professional editor extension for Unity 2018.4, 2019, and 2020 for creating realistic, detailed and consistent landscapes. Blending procedural algorithms with hand-crafted user control, Landscape Builder allows you to create entire worlds tailored for your game requirements with ease.

    Designed from the ground up to work seamlessly with multiple Unity terrains, Landscape Builder allows you to create and control every aspect of your landscapes: Topography, texturing, trees, grass and object placement, as well as the must-haves such as lighting and water. Simple to use yet powerful, Landscape Builder is the ultimate landscape design and creation tool for any game developer in Unity: Artist or programmer, hobbyist or professional, beginner or veteran.

    Topography: Get the best of both worlds with Landscape Builder’s topography layers system that combines procedural generation techniques with precise manual control. Noise layers allow you to generate topography features procedurally, with numerous presets included to get you started as quickly and easily as possible. This is combined with the image modifier layer (new for version 2.0) which allows you to place terrain features directly into your landscape exactly where you want them, as well as numerous other layer types to suit more specific game needs such as rivers. Coupled with the ability to natively import real-world heightmap data as well as heightmap data from existing Unity terrains, Landscape Builder provides the flexibility to create topography of any shape or form.

    Texturing, Trees and Grass: Texture your terrains and populate them with trees and grass procedurally with simple, intuitive rules and workflow. Also included is support for importing texture, tree and grass data from existing Unity terrains.

    Object Placement: Populate your landscape with the groups system (new for version 2.0) which allows you to place objects around your landscape in a natural and intuitive manner. Making use of a modular design, the groups system makes it easy to fill your landscapes with whatever objects you like. The group designer allows you to create the rules for your object placement visually in the Unity scene window, in a truly artist-friendly workflow. Programmers are not left out either, with fields in the editor able to produce exactly the same results as the group designer.

    Stencils: Paint regions directly onto your landscape with stencils to control what appears where in your landscape. Stencils can be used to control topography, texturing, trees, grass and object placement.

    Extras: Set up the atmosphere and time of day with ease with Landscape Builder’s built-in lighting editor, generate normal-map and height-map textures for your albedo-maps, generate runtime scripts directly from the editor, use the weather image effects included to speed up your game development, and much more. Landscape Builder is just full of extra components designed to solve common game design problems frequently faced when designing and creating game worlds.

    Integration: Freely integrate with a number of high quality asset store products. Support for EasyRoads3D, Relief Terrain Pack, AQUAS Water Set, Calm Water, River Auto Material (R.A.M.), HQ Photographic Textures, Rustic Grass, Vegetation Studio, MicroSplat, and MegaSplat.

    Ease of use: Enjoy a simple and uncluttered workflow, complete with artist-friendly in-scene design editors for features requiring a visual approach. With tooltips for all variables, a detailed manual and in-depth video tutorials, as well as developer support as standard, Landscape Builder leaves you free to spend your time actually making your game instead of trying to decipher complicated user interfaces and vague variable names. If that isn’t enough, you can even join our beta program to test the latest versions of our codebase and suggest new features for future versions.

    Above all, Landscape Builder just works.

    Includes support for Unity 2018.4.3+, Unity 2019.x, and 2020.1.

    LBDemoCabin1.png

    LB Beach1.png

    LB_Forest_Sunset.png

    Day / Night Transitioning in LB (don't forget to change YouTube Settings to 720p HD)



    Landscape Builder includes:

    Access to the LB Beta Program (message us with your Unity invoice number to get access)

    Forest With Mountains And Lake.png

    Import Real-world heightmap data with native GeoTIFF support.

     
    Last edited: Feb 2, 2024
  2. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    Create a landscape is less than 5 minutes



    Combine with some other assets to make something more detailed



    Here are some examples of Landscape Builder and AQUAS integration

    Tropical Island 24.png

    Tropical Island 6.png

    AlienPlanet1.png
     
    Last edited: Mar 26, 2019
  3. boysenberry

    boysenberry

    Joined:
    Jul 28, 2014
    Posts:
    365
    Where do I check it out at?
     
  4. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    You can find Landscape Builder on the Asset Store here
     
    boysenberry likes this.
  5. Shockpuppet

    Shockpuppet

    Joined:
    Feb 25, 2016
    Posts:
    1
    Seems to have a fantastic feature set.

    If there was an possibility or example of generating a landscape during run time, such as a game map created by a player using a gui, it would be perfect for many applications.
     
    Last edited: Feb 25, 2016
  6. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Looks promising. I'm a Gaia user so when I saw this I was naturally curious. How would you say your asset distinguishes you from Gaia? I would say this is a direct competitor so it's important to know what might set yours above Gaia and what features you may have planned down the road. Tools like this could also be used alongside Gaia so I always like to see what others have to offer because adding to my bag of tricks can always save time.
     
  7. Polaraul

    Polaraul

    Joined:
    Jan 9, 2014
    Posts:
    15
    Gaia seems to be becoming the de facto standard for terrain creation, but competition is always good and Landscape Builder looks as though it could become a strong contender. There are several things I like about this product. The interface is concise and simple yet still allows a fine degree of control. I also like the fact that there is a day night cycle built into the product. Things that would be nice to have at this iteration of the product would be screen capture (similar to how Gaia does this) and a free cam option. These may also help to spread the word. Hope to be able to give the product a more in depth test soon, but well done on the first release.
     
    TheSeawolf likes this.
  8. Polaraul

    Polaraul

    Joined:
    Jan 9, 2014
    Posts:
    15
    Artefacts Issue

    I am following the tutorial video, but on every landscape I generate there are artefacts as seen in the image below.

    Untictled-1.png


     
  9. unicat

    unicat

    Joined:
    Apr 8, 2012
    Posts:
    425
    Same here.
     
  10. Dave_2000

    Dave_2000

    Joined:
    Oct 17, 2015
    Posts:
    52
    These artefacts are caused by the rain erosion. This is by design; on some terrains this is desirable as it gives the impression of rain runoff e.g. a terrain with steep cliffs. To get rid of these artefacts make sure to only use the "None" or "Stream" erosion options (in the topography tab).
     
  11. Dave_2000

    Dave_2000

    Joined:
    Oct 17, 2015
    Posts:
    52
    There are a quite a few differences between Landscape Builder and Gaia:

    Topography generation:

    Landscape Builder generates topography primarily using procedural algorithms, whereas Gaia (as far as I can tell) uses a “stamping” system, where you can scale, rotate and position height map images to apply to the terrain. The main idea behind Gaia is that you can choose where each feature is placed. The disadvantage of this is that you need to have all the images of features you want to place on your terrain in your project; and if you’re not an artist and/or don’t have easy access to height map data on the internet it can be extremely hard to make new ones that look good. Basically you’re stuck with what is provided in the package (although, as far as I can tell, there are a large amount of images provided). Landscape Builder, however, procedurally generates the entire landscape, giving you full control over the characteristics of your landscape and essentially allowing you to create an infinite variety of landscapes, each slightly different. Not only this, if you tweak the values enough you can create completely new and unique topography features that no one else has ever made before.

    We also provide a “curve-based” noise option, which enables you to modify the output of the noise on not only an overall basis but a per octave basis as well. This essentially gives you full control over the noise function (and through this, the topography). This can be a bit hard to get you head around at first but we’ve provided a huge number of presets (more than 15, if I recall correctly) and what all of these presets does is explained in the documentation.

    Texturing, Tree and Grass Population:

    I haven’t used Gaia, so correct me if I’m on wrong on this, but I believe that Gaia stores all of its texturing, tree and grass population in a resources file. In Landscape Builder, the generation of a landscape is designed to be as quick, easy and flowing as possible. In this way, the texturing, grass and tree population tabs are located in the Landscape Builder window, in the order that you’d usually use them in. This makes the whole process feel intuitive, as one process leads into another.

    Modifiers:

    As I said before, Landscape Builder’s topography generation doesn’t give you precise control over what feature goes where in your landscape. However, we have another tab called the modifiers tab that allows you to modify your landscape using certain tools. Using these tools you can blend two or more topographies together in areas of your landscape, add topography features defined by an image or even add craters into your landscape!

    Extra Features:

    Landscape Builder comes with a number of useful extra features built-in. The first of these is the normal-map generator. This allows you to generate a basic normal map from a reference texture. This is how the normal maps in the package were generated, and I find the normal maps help to reduce that flat feel you can often get from a terrain.

    We also include a lighting system in the package. This makes it easy to quickly set up some good-looking static/dynamic lighting in your scene, and the dynamic lighting has a working day/night cycle.

    Finally, we include a camera animator script in the package. This allows you to quickly and easily define a splined path for cameras, then animate any of your cameras in the scene along this path at runtime.
     
  12. Dave_2000

    Dave_2000

    Joined:
    Oct 17, 2015
    Posts:
    52
    Screen capture - now on our roadmap for version 1.1, which should be out soon.

    "...and a free cam option." What did you have in mind for this?
     
  13. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    Thanks for your kind words. We have runtime on our roadmap but don't have a release date for that feature at the moment. We are also working on a feature that takes an image (or map) and applies that to a topography. An example might be a path or stream or maybe a forest. We're hoping the first iteration of this feature will make it into v1.1.

    In theory, you could generate landscapes at runtime now using our product, but we're not advertised it since we don't think it is particularly intuitive in its present form.
     
    Last edited: Feb 28, 2016
    boysenberry and Teila like this.
  14. unicat

    unicat

    Joined:
    Apr 8, 2012
    Posts:
    425
    Ah, ok. Thank you.
     
  15. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Thanks for all the information. It was very helpful. Do you have specific features planned for future versions that might be of interest?
     
  16. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    We've added two new tutorials - Texturing and Topography (Part 1). You can see them here
     
    tapticc likes this.
  17. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    Roadmap
    • Topography masking
    • Modify topography with "map" images
    • Quick setup option with preset topographies (add default texture setup)
    • Apply noise to grass, tree and/or texture placement option
    • Allow meshes to remove grass
    • Enhance modifiers to inscribe features into topography without losing details
    • Screen capture from Editor
    • Natural camera animation
    • Create a landscape for runtime build
    • Cloud generation and weather system
    • Night sky
    Our current roadmap isn't in any particular order at the moment because we're monitoring user feedback to prioritize features. We're hoping this forum will help drive Landscape Builder features rather than simply relying on us to give you what we think you want.
     
    Last edited: Mar 1, 2016
  18. Polaraul

    Polaraul

    Joined:
    Jan 9, 2014
    Posts:
    15
    Although the preset idea is good (and the simplicity of this method is what drew me to this product) I would say it needs some refining for producing usable landscapes.

    1.png 2.png 3.png 4.png
     
  19. Dave_2000

    Dave_2000

    Joined:
    Oct 17, 2015
    Posts:
    52
    Which presets (and any settings you changed) are you using? Also, some landscapes can look a little strange with no texturing, or viewing from far away (some landscape presets aren't suited to this).

    Your first image looks like it would definitely benefit greatly from some texturing. Probably same with the second image, but you'd probably need to tweak a few values. I'd suggesting lowering the gain slightly (or possibly the lacunarity). The third and fourth images, I'm guessing you're using the rain/combined erosion setting, which isn't ideally suited to every landscape. If you do want them, however, you can try increasing the noise octaves. This will decrease the size of the rain erosion rivulets, as they are only applied to the last 2 octaves of the noise.

    If you post your topography settings, we can take a look at it if you like.
     
  20. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Excellent. Sounds like you have some great features in store. Having a cloud and weather system added would be big.
     
  21. Polaraul

    Polaraul

    Joined:
    Jan 9, 2014
    Posts:
    15
    I'm afraid I can't remember which presets were used, but no settings were changed. As a reference though, this is the default landscape (no values changed) that Tiered Canyon Produces. The first shot from the editor and the second shot in game. These are shots are just to highlight the issue, so no in depth texturing has been applied.

    1.png
    Untitled-3.jpg
     
  22. Polaraul

    Polaraul

    Joined:
    Jan 9, 2014
    Posts:
    15
    No landscape to modify - you can add or find one in the landscape tab

    Having created a terrain and launched it from the play button, I can now longer modify it since Landscape Builder will not recognise it.

    Untitled-5.jpg


     
  23. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    To modify the landscape after running the scene, on the Landscape tab, drop the Landscape into the Edit slot. We have a fix in v1.1. Message me and I'll send you a patch.

    LB After Run.png
     
    Last edited: Feb 29, 2016
  24. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    We're working on some preset fixes for v1.1. Thanks for the feedback. If you have any real-world scenery you'd like to model, post them here and we'll see what we can do.
     
  25. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    Version 1.1 is currently undergoing Beta testing in-house. Here is what we're going to include in the v1.1 update:
    • [FIX] Editor looses connection with Landscape object after game is run
    • [IMPROVED] Topography presets
    • [NEW] Position MainCamera to Editor Scene View option
    • [NEW] In Editor screen shot device
    • [NEW] Night skies with camera rotation
    • [NEW] Export landscape to heightmap image (PNG)
    Items that "may" get into v1.1 include:
    • Allow meshes to remove grass
    • Modify topography with "map" images (Stage 1)
    • Improved tree placement
    Night skies is a new feature of the LB Lighting component. If you drop a first person character camera into the script and set the number of stars and size required, when you walk around the scene the stars will rotate correctly as they would in real life. This adds more realism and ambiance to your FPS or open world adventure game.

    Export landscape to PNG is the first component in our system to modify topography by applying "maps" to the landscape. Essentially we'd like to have the ability to position paths, groves of trees, streams etc. by drawing a simple map in a paint program and then apply it to the topography. We think this may significantly speed up the scene creation process. We're still developing the overall workflow, so if you have any ideas on how you'd like to see this work post your ideas to this forum or message us.

    As always, we're open to new feature ideas or improvements, so post your thoughts here.
     
    Last edited: Mar 7, 2016
  26. tapticc

    tapticc

    Joined:
    Jan 16, 2014
    Posts:
    379
    Hi, I have a number of terrain generation assets and am looking for one which would allow you to stitch existing terrains to new ones created some time after. For example, if I created a 4x4 tile terrain and later want to increase the size of the world, I would like to extend to add another 4x4 set of terrains that link to the existing set. I need to make sure the original 4 are left alone but the new set would need to join height wise to the current set.

    Is this something which could be considered please? :)
     
  27. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    It is certainly something we're considering.
     
    tapticc likes this.
  28. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    The soon to be released Landscape Builder version 1.1 will include:
    • [FIX] Editor loses connection with Landscape object after game is run
    • [IMPROVED] Topography presets
    • [IMPROVED] Heightmap Image Generation - add interpolation smoothing
    • [NEW] Quick default resources setup (Textures, Trees, Grass)
    • [NEW] Position MainCamera to Editor Scene View option
    • [NEW] In Editor screen shot device
    • [NEW] Night skies with camera rotation
    • [NEW] Export landscape to heightmap image
    • [NEW] Modify texture, tree, grass and mesh placement with "map" images (Stage 1)
    • [NEW] Topography Curve Based Noise - Add Double Ridged curve modifier preset
    • [NEW] Texturing and Trees noise
     
    Last edited: Mar 7, 2016
  29. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    Texturing Mode - Map

    Map Texturing Mode is designed to help you fast-track applying textures to a 3D terrain in the locations you want them. Rather than attempting to paint a texture onto a 3D terrain, you create a "map" of the texture in your favourite image editing software with the heightmap of the current terrain as a guide. Of course, you can still apply other textures to the Landscape at the same time using any combination of Texturing Modes. Overlapping textures will be blended using the rules you've set.

    The workflow is:
    1. On the Landscape Tab, select the "Landscape To Edit" (if it isn't already selected)
    2. On the Export tab, enter a "Heightmap Filename" (the .png file extension is automatically added for you)
    3. Click "Export to PNG"
    4. The image will be highlighted in the Project window
    5. Either double-click on it to open your default image editor (associated with the PNG file type), or right-click on the image and select "Show in Explorer" (on Microsoft Windows) or "Reveal in Finder" (on Mac OSX)
    6. Paint the areas in the heightmap image you wish to texture in a single colour. Take note of the RGB values of the colour you use.
    7. Save the modified image over the original (or to a new texture if required).
    8. In Landscape Builder, on the Texturing Tab, click "Add Texture"
    9. Change the Texture Mode to Map
    10. Add the modified heightmap image (containing your texture "map") to the Map texture
    11. Change the Colour to match the one used to draw the map
    12. Adjust the Strength of this texture to determine the weight when blending with any other textures that may occupy the same space on the landscape. To make this texture stand out on the landscape, make the Strength higher than other textures that will occupy the same area.
    13. Apply a Texture and optional Normal map which will get drawn onto the landscape where your map indicates. For example, you may apply the Pebbles or Path (Rocky) texture if you're building a path for characters to walk along.
    14. Adjust the Texture Tiling, Metallic and Smoothness as required
    15. Click the Texture Landscape button
     
  30. Dave_2000

    Dave_2000

    Joined:
    Oct 17, 2015
    Posts:
    52
    A few people have inquired about whether Landscape Builder can generate landscapes at runtime. This is definitely possible, as basically all the functionality in the editor is exposed to you via script. I've created an example script that demonstrates how this can be done. The script should be attached to an empty game object in your scene (position it where you want the landscape) and the texture slots should be filled with the appropriate textures. Here is the script:

    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3. // System.Collections.Generic is needed for list functionality
    4. using System.Collections.Generic;
    5.  
    6. public class RuntimeLandscapeDemo : MonoBehaviour {
    7.    
    8.     // Example script that creates a landscape entirely at runtime
    9.     // It creates the topography and textures the landscape
    10.  
    11.     // References to texture files
    12.     public Texture2D grassHillTexture;
    13.     public Texture2D grassHillNormalMap;
    14.     public Texture2D rockLayeredTexture;
    15.     public Texture2D rockLayeredNormalMap;
    16.     public Texture2D rock1Texture;
    17.     public Texture2D rock1NormalMap;
    18.     public Texture2D botCliffTexture;
    19.     public Texture2D botCliffNormalMap;
    20.    
    21.     public Vector2 landscapeSize = Vector2.one * 4000f;
    22.    
    23.     private List<Terrain> terrainsList;
    24.  
    25.     // Use this for initialization
    26.     void Awake ()
    27.     {
    28.         // This line just gets the starting time of the generation so that the total generation time
    29.         // can be recorded and displayed
    30.         float generationStartTime = Time.realtimeSinceStartup;
    31.        
    32.         // Create the terrains and store references to them
    33.         terrainsList = new List<Terrain>();
    34.         for (float tx = 0f; tx < landscapeSize.x - 1f; tx += 2000f)
    35.         {
    36.             for (float ty = 0f; ty < landscapeSize.y - 1f; ty += 2000f)
    37.             {
    38.                 // Create a new gameobject
    39.                 GameObject terrainObj = new GameObject("Runtime Terrain");
    40.                 // Correctly parent and position the terrain
    41.                 terrainObj.transform.parent = this.transform;
    42.                 terrainObj.transform.localPosition = new Vector3(tx, 0f, ty);
    43.                 // Add a terrain component
    44.                 Terrain newTerrain = terrainObj.AddComponent<Terrain>();
    45.                 // Set terrain settings (depending on your situtation, you may need to set more or less than I have in this example)
    46.                 newTerrain.heightmapPixelError = 1;
    47.                 newTerrain.basemapDistance = 5000f;
    48.                 newTerrain.treeDistance = 5000f;
    49.                 newTerrain.treeBillboardDistance = 100f;
    50.                 newTerrain.detailObjectDistance = 150f;
    51.                 newTerrain.treeCrossFadeLength = 25f;
    52.                 // Set terrain data settings (same as above comment)
    53.                 TerrainData newTerrainData = new TerrainData();
    54.                 // One thing to note here is that modfiying the heightmap resolution not only clears all terrai height data,
    55.                 // it also scales up or down the size of the terrain. So you should always set the heightmap resolution
    56.                 // BEFORE you set the terrain size
    57.                 newTerrainData.heightmapResolution = 513;
    58.                 newTerrainData.size = Vector3.one * 2000f;
    59.                 newTerrain.terrainData = newTerrainData;
    60.                 // Set up the terrain collider
    61.                 TerrainCollider newTerrainCol = terrainObj.AddComponent<TerrainCollider>();
    62.                 newTerrainCol.terrainData = newTerrainData;
    63.                 // Add the terrain to the list of terrains
    64.                 terrainsList.Add(newTerrain);
    65.             }
    66.         }
    67.        
    68.         // Create the terrain topographies
    69.         for (int t = 0; t < terrainsList.Count; t++)
    70.         {
    71.             // Use the LBLandscapeTerrain.PerlinNoiseHeightmap function for value based perlin noise
    72.             // This example is using the values from the Mountain Range preset
    73.             terrainsList[t].terrainData = LBLandscapeTerrain.PerlinNoiseHeightmap(terrainsList[t].terrainData, terrainsList[t].transform.position,
    74.             7, 5000f, Vector2.zero, 2f, 1.95f, 0.49f, true, false, 0, 0f, 0, LBCurve.SetCurveFromPreset(LBCurve.CurvePreset.None), 1f);
    75.         }
    76.        
    77.         // Create a list of LBTerrainTexture objects
    78.         // These contain the textures and normal maps but also the rules for applying them to the terrain
    79.         List<LBTerrainTexture> terrainTexturesList = new List<LBTerrainTexture>();
    80.        
    81.         // Populate the list by creating temporary LBTerrainTexture objects and adjusting their settings,
    82.         // then adding each one into the list
    83.        
    84.         // Grass Hill texture
    85.         LBTerrainTexture tempTerrainTexture = new LBTerrainTexture();
    86.         tempTerrainTexture.texture = grassHillTexture;
    87.         tempTerrainTexture.normalMap = grassHillNormalMap;
    88.         tempTerrainTexture.tileSize = Vector2.one * 25f;
    89.         tempTerrainTexture.minInclination = 0f;
    90.         tempTerrainTexture.maxInclination = 45f;
    91.         tempTerrainTexture.useNoise = true;
    92.         tempTerrainTexture.noiseTileSize = 100f;
    93.         tempTerrainTexture.texturingMode = LBTerrainTexture.TexturingMode.Inclination;
    94.         terrainTexturesList.Add(tempTerrainTexture);
    95.        
    96.         // Rock Layered texture
    97.         tempTerrainTexture = new LBTerrainTexture();
    98.         tempTerrainTexture.texture = rockLayeredTexture;
    99.         tempTerrainTexture.normalMap = rockLayeredNormalMap;
    100.         tempTerrainTexture.tileSize = Vector2.one * 100f;
    101.         tempTerrainTexture.minInclination = 30f;
    102.         tempTerrainTexture.maxInclination = 90f;
    103.         tempTerrainTexture.useNoise = true;
    104.         tempTerrainTexture.noiseTileSize = 100f;
    105.         tempTerrainTexture.texturingMode = LBTerrainTexture.TexturingMode.Inclination;
    106.         terrainTexturesList.Add(tempTerrainTexture);
    107.        
    108.         // Rock1 texture
    109.         tempTerrainTexture = new LBTerrainTexture();
    110.         tempTerrainTexture.texture = rock1Texture;
    111.         tempTerrainTexture.normalMap = rock1NormalMap;
    112.         tempTerrainTexture.tileSize = Vector2.one * 100f;
    113.         tempTerrainTexture.minInclination = 30f;
    114.         tempTerrainTexture.maxInclination = 60f;
    115.         tempTerrainTexture.useNoise = true;
    116.         tempTerrainTexture.noiseTileSize = 100f;
    117.         tempTerrainTexture.texturingMode = LBTerrainTexture.TexturingMode.Inclination;
    118.         terrainTexturesList.Add(tempTerrainTexture);
    119.        
    120.         // Bot Cliff texture
    121.         tempTerrainTexture = new LBTerrainTexture();
    122.         tempTerrainTexture.texture = botCliffTexture;
    123.         tempTerrainTexture.normalMap = botCliffNormalMap;
    124.         tempTerrainTexture.tileSize = Vector2.one * 100f;
    125.         tempTerrainTexture.strength = 0.01f;
    126.         tempTerrainTexture.useNoise = true;
    127.         tempTerrainTexture.noiseTileSize = 100f;
    128.         tempTerrainTexture.texturingMode = LBTerrainTexture.TexturingMode.ConstantInfluence;
    129.         terrainTexturesList.Add(tempTerrainTexture);
    130.        
    131.         // Texture the terrains
    132.         for (int t = 0; t < terrainsList.Count; t++)
    133.         {
    134.             // Use the LBLandscapeTerrain.TextureTerrain function for texturing the terrain
    135.             terrainsList[t].terrainData = LBLandscapeTerrain.TextureTerrain(terrainsList[t].terrainData, terrainTexturesList,
    136.              terrainsList[t].transform.position, landscapeSize, this.transform.position);
    137.         }
    138.        
    139.         // Display the total time taken to generate the landscape (usually for debugging purposes)
    140.         Debug.Log("Time taken to generate landscape: " + (Time.realtimeSinceStartup - generationStartTime).ToString("00.00") + " seconds.");
    141.     }
    142. }
    EDIT: This script works with our upcoming 1.1 release. However it can probably be edited to work with 1.0 by removing the texturing lines:
    tempTerrainTexture.useNoise = true;
    tempTerrainTexture.noiseTileSize = 100f;
    And also removing the this.transform.position argument from the LBLandscapeTerrain.TextureTerrain function.
     
    Last edited: Mar 9, 2016
    boysenberry likes this.
  31. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    David has just posted a sample runtime script for version 1.1
     
  32. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    Landscape Builder v1.2 Potential inclusions

    Here is what we're currently considering for version 1.2.
    • Modifier Upgrade - drop in hills, mesa, mountains, valleys etc.
    • Allow meshes to remove grass
    • Convert Landscapes to Runtime build in Editor (currently LB runtime generation requires C# coding experience**)
    • Topography masking
    • Landscape Stats
    • Blended noise control for additional low level detail
    • Add custom music player to Demo Scene
    • Moon phases
    • Cloud system
    Let us know if there is anything else we should consider or which features you're most interested in so that we can set priorities.

    ** See example script above in this forum
     
  33. Dave_2000

    Dave_2000

    Joined:
    Oct 17, 2015
    Posts:
    52
    At the moment we've only done three tutorials (workflow, texturing and value-based topography). We're thinking doing some more at some point. If you'd like a tutorial done on something specific, please let us know.
     
  34. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    Version 1.1 is now released and available in the assetstore.
     
  35. DivergenceOnline

    DivergenceOnline

    Joined:
    Apr 19, 2015
    Posts:
    244
    I have one question;
    Can your system be used as a standalone applier or procedural grass to pre-existing terrains?
    In lay-mans terms, can you input an existing unity terrain with it's own textures and shaders and use your system simply to place grass on a randomized perlin dependant on the splat texture?
     
  36. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    Yes, although it will be in version 1.2. There are two things we're currently working on in 1.2 which apply to your scenario:

    1. The ability to update existing terrains not built with Landscape Builder. This will use our new Import utility which is part of the main LB Editor window

    2. Ability to apply grass, trees and/or meshes to a particular texture in the landscape

    In version 1.1, you can already apply grass, trees, textures or meshes to any areas of the landscape (across multiple terrains), using our Map feature. I did a post in this forum on 7 March 2016 about this feature.

    If you'd like to influence how these features work, I can send you a patch to get you started on v1.1. You can contact us through our support page if you'd like more details.
     
  37. DivergenceOnline

    DivergenceOnline

    Joined:
    Apr 19, 2015
    Posts:
    244
    That's a shame. I guess I'll check it out at 1.2 Thanks for the response.
     
  38. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    Or you can start with 1.1 and we'll send you the patches to do what you need to. Do you already have grass applied to the scene?
     
  39. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    In version 1.2 we've been doing a lot of work around modifiers. These allow you to change areas of the landscape after you're happy with the overall topography. One technique you'll be able to use, is to apply the Flatten modifier and adjust the blend rate to determine how the edges of the flattened area "blends" with the surrounding topography.

    LBDemoCabin1.png

    However, no-one that clears a space for their new log cabin does a perfect job. So we can use the Noise Modifier to make the cleared area look more natural. In the scene I've create here, I've used a noise tile size around the same size as my cleared area, say 250 metres, set Noise Octaves to 5, but given it a very small Height Scale of 0.01.

    To texture the area, I could have used Texturing Map mode, however, in this case I took advantage of the fact that it is pretty much the only flat area in the landscape. I blended the SandAlbedo with the GrassRock texture. To make sure that the SandAlbedo (with a normal map), only appeared in the area of the cabin I limited it by an Inclination of between 0 and 0.9 degrees. I also enabled Noise on both textures so that they had a reasonable distribution on the ground (solid textures rarely look good in terrains). I used another technique of varying the Noise Tile Size between both textures until it gave me the look I was after.

    To finish the scene, I added the LB Lighting, adjusted the time of the day, and applied some grass and trees from the LB Window.
     
  40. TheXWolf

    TheXWolf

    Joined:
    Dec 13, 2013
    Posts:
    85
    Hi Folks! I wanted to post in regards to the 1.1 update, for those of you who aren't familiar with it or unsure of it, lemme tell you the results I've gotten have been really good. Now that the noise has been added you can really spice up the terrain texturing. Using variants of noise and strengths you can get some really prime results.

    My trick for example (a trick I rarely explain, but hope it helps the community) is the more apparent you want something, the smaller it's tile size should be. Think of it like a picture, if you stretch the picture really big you're gonna get a more pulled apart image, but shrinking it down will get more detail in one spot. Noise works the same way. The three images below show examples of how I create terrain. The third being a mixture of low tile sizes for the more vivid results, higher tile sizes for things I want blended away and varying strengths based on aforementioned needs. Hope this helps all you terrain designers out there.
    texturing1.PNG texturing2.PNG texturing3.PNG
     
  41. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    A common problem people have is converting real world heightmap data into something that can become a landscape. The first image is pretty basic heightmap data in Yosemite National Park from NASA's SRTM3 Space Shuttle program. It wouldn't look out of place in a Lego movie...

    Yosemite1_blocky.png

    However, with a few mouse clicks in Landscape Builder we now have something we can work with.

    Yosemite1.png

    But you still need to be careful with SRTM3 data because it is taken from space and you can end up with steep cliffs (like in the Grand Canyon SRTM3 data) that can be a challenge to texture correctly.
     
    Last edited: Mar 18, 2016
  42. Dave_2000

    Dave_2000

    Joined:
    Oct 17, 2015
    Posts:
    52
    Mountains, Lakes, Islands and Rivers in Landscape Builder v1.2

    In v1.2 we will be adding quite a few new features, and in this post I'll give a bit of information about one of them: Topography masking.

    In both the perlin and image sections of the topography tab we've added a new button called "show mask options". Clicking this button will show a new set of options in place of the usual perlin and image options (you can click a "back to..." button to return to the usual options). These options give you the ability to "mask" your topography in various ways. For instance, you could mask your topography based on the distance to the centre of the landscape. In this mode the general height of each part of your landscape would be controlled by how far away it is from the middle. You could use this to create something like an island or a mountain, where the central region is much higher than the outer regions. Alternatively, you could go the other way and create a lake in the middle of your landscape. The general topography of your landscape is preserved; the mask value is just used to scale your topography.

    Another option we have currently for masking is noise. In this mode, the output of a perlin noise function is used to create the mask, which is helpful for creating randomly (and naturally) positioned islands. You can define the noise tile size to control the size of the islands and also add warping to the noise to make it look more natural. Below is a comparison of two images with and without the noise masking:

    First, without the noise masking:

    GentleValleysNoMask.png

    Note that all the landscape is above the water. Next we have the landscape with noise masking:

    GentleValleysNoiseMask.png

    You can see that the character of the landscape has remained mostly unchanged however now a network of lakes and rivers has been added into the landscape. This is exactly what the noise masking is designed to do.
     
    Voltarrens likes this.
  43. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    We've discovered a bug (shocking I know) in 1.0 and 1.1 when AutoSave is not enabled. If you exit a scene without making any other changes (apart from through LB), AND AutoSave is not enabled, LB changes will be lost. As a workaround click the "Enable AutoSave" button on the "Advanced" tab.

    A fix will be included in version 1.2
     
  44. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    Unity 5.4 Support with Landscape Builder

    Version 1.1 has been tested successfully with Unity 5.4.0 Beta 10 (March 16, 2016 release). We've not seen any issues. Let us know if you spot anything.
     
  45. Locky

    Locky

    Joined:
    May 14, 2015
    Posts:
    86
    I discovered your asset and watched the videos. You are a good instructor!

    My first terrain generation asset purchase was Terrain Composer, and I can't help but notice the similarities in features. Landscape Builder is everything that I wished Terrain Composer would have become. Based on the videos they appear to accomplish the many of the same results, but Terrain Composer has an extremely steep learning curve, and the tutorials are all dated. I still use Terrain Composer but I really feel for new users trying to wrap their head around it. By comparison Landscape Builder seems so simple.

    I have Gaia and really like it but a terrain generator like Landscape Builder would complement Gaia very nicely. There is a lot of overlap in features, but the main difference is in how the terrain is made. I am a control freak and I like a having a lot of options so I will definitely be picking up this asset soon.

    I am impressed that this asset has built in erosion and time of day lighting!

    I look forward to seeing how the masking will work; that is really important. Placing grasses by elevation and inclination is only a starting point. I like to use multiple types of grass that have clumps of concentration in some areas and a mix in others. I am hoping that the masking will help in that area.

    One feature I have not seen any asset even try is the idea of filtering textures, grass and trees based on sun exposure. In nature the north side of any slope looks incredibly different than the southern side. There is less and more sparse vegetation, and the vegetation that grows is different than the southern side that receives constant sunlight. Just food for thought.
     
    eaque likes this.
  46. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    Glad you liked David's videos. We have worked hard to provide an easy-to-use interface but still retain a lot of flexibility for power users.

    We have a lot of flexibility in creating topographies: customizable presets, value-based perlin noise, curve-based perlin noise, import heightmap image (user created or NASA SRTM3 world coverage etc.). And we've just added Topography masking in v1.2. We're also added a much more flexible modifier called "Landform" in v1.2 so that smaller areas of the landscape can be tweaked by applying hills, valleys, lakes, mesas, etc. And if you don't like our Landform modifiers, you can create your own in your favorite image editor.

    There are a lot of options for applying textures, trees, grass, and meshes in LB (not just height and inclination).In v1.1 we added the Map feature for user-defined placement. For textures and trees you can also apply noise to any of the populating modes. We "could" also do this with grass but given we already have grass density we don't have a good reason to add it. However, if a customer should request it and is willing to test it...

    We have a big roadmap and we're eager to add in features that our customers are asking for. You'll see some customer-driven features popping up in version 1.2.0. The way this works is we design a new feature and send it as a patch to the customers who have requested it. If they are happy with it, the feature gets into the next release.

    We like your idea about placing vegetation based on the rotation of the sun. Given that our lighting system can have the sun with any rotation this makes for an "interesting" coding scenario. Remember, you could be designing an alien landscape - who says it needs to be our sun? Not sure what we'd do if there were two suns... Once you have your copy of LB, send us a request and we'll see what we can do.
     
    Voltarrens likes this.
  47. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    In version 1.2.0 you will be able to add an ocean to your landscape and then add additional lakes and ponds as required. If you are using the water prefabs from the Unity Standard Assets, the water will be correctly scaled to the selected size.
     
    TheXWolf likes this.
  48. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    We constantly attempt to build real world landscapes with Landscape Builder. We take a landscape scene from say Bing Images, then attempt to recreate it in LB. If, for some reason, we can't reproduce a particular look, we then add that functionality into LB.

    If you are trying to get a certain landscape look for your project, let us know and we'll either give you tips on how to do this in LB or we'll look into adding additional functionality into LB to get the job done.
     
  49. Dave_2000

    Dave_2000

    Joined:
    Oct 17, 2015
    Posts:
    52
    For version 1.2.0 we've been taking another look at the LB lighting system, specifically we've been adding some more functionality so that you have more control over what happens when. To do this, we've added a new mode called "advanced mode" that exposes many of the underlying lighting properties for transitioning. For example, previously you could only choose the colour of the fog in the daytime and at night. Now you can use a gradient to define what the fog colour is at each time of day.

    In the next two screenshots, the fog colour at sunset has been set to a yellow-orange colour to better match the skybox and give a more atmospheric feel to the scene:

    ForestLakeSunset.png
    ForestLakeSunsetTrees.png

    Here is another screenshot, this time of the editor. On the right you can see the new inspector (in advanced mode) with curves for sun intensity, fog density, star visibility and moon intensity, and gradients for ambient light and fog colour. On the left you can see the fog colour gradient selected in the gradient editor, with the yellow-orange fringes at 25% and 75% (6 AM and 6 PM).

    ForestLakeLightingInspector.png

    We've left the old inspector settings in our new mode "simple mode" where the lighting system handles most of the stuff internally. You have less control however there are less settings and for many projects those settings are all you will need.
     
  50. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    2,229
    Version 1.2.0 will also include a combined Height, Inclination and Map option for Texture, Tree, Grass and Mesh placement. This works with all existing features and supports the new Map inverse option. This enables you to do texture, tree, grass and mesh placement over multiple terrains while having much more control over where you want (or don't want) things to be.