Search Unity

  1. We've closed the job boards. If you're looking for work, or looking to hire check out Unity Connect. You can see more information here.
    Dismiss Notice
  2. We're running great holiday deals on subscriptions, swag and Asset Store packages! Take a peek at this blog for more information!
    Dismiss Notice
  3. Check out our Unite Austin 2017 YouTube playlist to catch up on what you missed. More videos coming soon.
    Dismiss Notice
  4. Unity 2017.2 is now released.
    Dismiss Notice
  5. The Unity Gear Store is here to help you look great at your next meetup, user group or conference. With all new Unity apparel, stickers and more!
    Dismiss Notice
  6. Introducing the Unity Essentials Packs! Find out more.
    Dismiss Notice
  7. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice
  8. Unity 2017.3 beta is now available for download.
    Dismiss Notice

Landscape Builder - Procedural Terrains, Weather System, U2017 support and much more

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

  1. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    576
    LBDemoCabin1.png
    Tutorials | Documentation | Asset Page

    Landscape Builder is a professional editor extension for Unity 5 and 2017 for creating realistic, detailed and consistent landscapes. This procedural multi-terrain generation tool can really enhance and kick-start your game development.

    Easy to use, yet powerful. Lots of presets to get you started quickly. Each topography layer is highly configurable making the system very flexible. Real world heightmap data can be combined with procedural noise layers. You can mix and match to create islands, mountain ranges, canyons, deserts, park lands, wildernesses etc. It's up to your imagination really.

    Our new Stencil tool allows you to paint 2D maps in the Editor for 3D procedural placement.

    Achieve a consistent natural look and feel with the flexible, yet powerful texture, tree, grass, mesh, and prefab placement tools. Speed up game design with fast terrain prototyping and quickly go exploring with the in-built camera animator. Apply maps and filters to further customize your landscape.

    And the Landscape Builder Team is here to help if you get stuck. We enjoy solving real game design problems.

    Import your existing terrains and give them that consistency you've been seeking or simply stay ahead of the curve with access to our Beta Program.

    Bring your game alive with the built-in day / night lighting manager. Using the built-in ImageFX system, enable animated volumetric procedural clouds, configurable weather cycles, height-based fog, night skies, and screen-space reflections on wet surfaces.

    Create rivers, paths, and roadways, or take an action when your player walks on a muddy ground texture.

    Integrate with products like EasyRoads3D, HQ Photographic Texture Grass packs, RTP and AQUAS to beautify your landscape with roads, rivers, lakes, bridges and gorges.

    Did we mention runtime script support, with example code to drop into a scene? Landscape Builder can also write some of the C# code for you – just click the “S” button next to the feature you want in the Editor. Instantly you’ll have the code required to paste into your own runtime script.

    Above all, Landscape Builder just works.

    Includes support for Unity 5.4.3+, 5.5.x, 5.6.x, and Unity 2017

    LB Demo1.png

    LB_Forest_Sunset.png

    LB Beach1.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)

    Bonus Content
    • Camera animator and camera path creator which is useful for creating cut scenes or visualising your landscape. If you own EasyRoads3D Pro version 3, you can obtain the camera path from the roads in your scene.
    • Texture Generator enables you to bring terrain and mesh textures to life with professional looking Albedo, Metallic, Normal, Height, Occlusion, and Emission Maps.
    • The Ground Checker routines enable you to take action in your game based on the textures in the underlying terrains

    Forest With Mountains And Lake.png

    Import Real-world heightmap data with native GeoTIFF support.

     
    Last edited: Nov 12, 2017
  2. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    576
    Here are some examples of Landscape Builder and AQUAS integration

    Tropical Island 24.png

    Tropical Island 6.png

    AlienPlanet1.png
     
    Last edited: Jun 4, 2016
  3. boysenberry

    boysenberry

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

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    576
    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:
    2,451
    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:
    249
    Same here.
     
  10. Dave_2000

    Dave_2000

    Joined:
    Oct 17, 2015
    Posts:
    27
    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:
    27
    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:
    27
    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:
    576
    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
    Teila likes this.
  14. unicat

    unicat

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

    magique

    Joined:
    May 2, 2014
    Posts:
    2,451
    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:
    576
    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:
    576
    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:
    27
    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:
    2,451
    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:
    576
    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:
    576
    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:
    576
    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:
    352
    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:
    576
    It is certainly something we're considering.
     
    tapticc likes this.
  28. sstrong

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    576
    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:
    576
    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:
    27
    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
  31. sstrong

    sstrong

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

    sstrong

    Joined:
    Oct 16, 2013
    Posts:
    576
    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:
    27
    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:
    576
    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:
    576
    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:
    576
    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:
    576
    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:
    81
    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:
    576
    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:
    27
    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:
    576
    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:
    576
    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:
    576
    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:
    576
    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:
    576
    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:
    27
    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:
    576
    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.