Search Unity

Terrain (Mesh + Imposter) Workflow Questions

Discussion in 'World Building' started by awesomedata, Oct 22, 2018.

  1. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    So I want to use the new terrain system in Unity, but there are pieces of the "terrain" where I would like to take (after painting it up and aligning it with nearby tiles) and convert that to a mesh so I can do more organic sculpting of it -- and then replace it back into the environment where it was sitting previously (as a terrain tile).

    However, this introduces a few problems --

    For example, what if I want to put trees/grass on this new "mesh" after I've sculpted a giant tower of rock (around other gameobjects in the scene) that can be seen from a distance?

    As I see it now, I'd have to deal with either the lack of grass/trees or the lack of being able to use an imposter (large enough to almost be its own terrain. The uniquely-sculpted rock tower also skirts around (and houses) particular gameplay objects/scenarios in the scene, plus its footprint, 3d shape, and vantage points are all important.


    So three questions:

    1. What is the suggested workflow for setups like this with the new terrain system?
    2. Will Unity ever support Imposters on terrain (with the ability to retain grass/trees/shadows on them?)
    3. Are trees/grass improved enough in the new Terrain System to worry about? (Maybe a mesh with instanced tree/grass meshes would be a better option?)
     
    Last edited: Oct 23, 2018
  2. ChrisTchou

    ChrisTchou

    Unity Technologies

    Joined:
    Apr 26, 2017
    Posts:
    74
    1/3: We haven't really touched grass/trees yet; but it is in our future plans!

    2: Our goal is to support both density-map painted instances (ideal for densely placed instances on terrain, with minimal memory), as well as instance lists (ideal for custom placement control and ability to place anywhere, not just on terrain). So you could replace your terrain with a mesh and still be able to place grass/trees on it.
     
    marcb152, awesomedata and ROBYER1 like this.
  3. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    This is absolutely awesome to hear!

    I assume these density maps / instance lists will be C# job optimized?
    Also, would they be paintable on arbitrary meshes too? (Obviously a little more overhead initially during the "placement" phase, but the usefulness of using this on any mesh would greatly outweigh that -- I'm currently streaming both meshes and terrains in tandem -- each huge mesh tile acting as a "terrain" tile in and of itself. I'm not the only one. We're already seeing this hybridization in assets like Voxeland and Map Magic, so I think Unity should support this natively in its "terrain" concept.)



    Also -- I think I might need to rephrase my second question:

    Have you guys considered adding an option to render (very distant) terrains/meshes as imposter LODs by default?​

    Using imposters for giant (dense) meshes like terrain tiles seems like a great fit and would enable huge draw distances for giant terrain tiles -- and any other moderately large-sized mesh instances associated with that specific "terrain" tile, including any notable gameobjects/vegetation instances we might select to be part of the "terrain" (and would work for any large mesh -- whether or not a particular mesh's rendering concept was heightmap-based or standard mesh-based.)

    This could greatly simplify the task of streaming terrains and worlds later on down the line too -- especially if you only had to render a single imposter per terrain tile (rather than loads of distant objects/meshes that usually represent nearly an entire "scene" worth of data).
    Thoughts?
     
    Last edited: Oct 24, 2018
  4. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    How is this coming along? -- I see we're in 2020 now and we still struggle to support mesh-based terrain. D:

    Just curious, @ChrisTchou, if you know how true we're sticking to this?


    I've got an entire island I'd like to be a mesh (I cannot use Unity's standard terrain for "non-square" reasons), so I might chop it into chunks that are just imposters or something (since they need to be seen up close and far away and also have vegetation). However, I am worried about seams using the Imposter method, so I'm not totally sold on this way yet...