Search Unity

ProBuilderize limitations (Max tris?)

Discussion in 'World Building' started by Hallur90, Dec 9, 2018.

  1. Hallur90

    Hallur90

    Joined:
    Dec 4, 2017
    Posts:
    55
    Hey I have this 1000x1000m mesh that I created in Blender and I want to paint it using ProBuilder's vertex painter.
    When I try to use the ProBuilderize feature there's a stack overflow.

    I've reduced the number of tris already and I can't get lower than 22.632.
    I tried it on a plain with about 2000 tris and that worked flawlessly.

    Is there a workaround or was this tool not intended for this type of use.

    I'm basically trying to what this guy is doing here but on a much bigger model.


    If there are smarter ways to go about this I'd like to hear them.

    p.s. if anyone knows a good rule of thumb on how detailed you can let terrains be (in tris or polygons) that would be fun to know.

    Regards :)
    H.
     
  2. PolyToots

    PolyToots

    Joined:
    Mar 15, 2014
    Posts:
    20
    You could try splitting the terrain up into chunks, or using PolyBrush from the asset store, it's free. (built by the same people that made ProBuilder). You don't need to "ProBuilderize" an object if you're using PolyBrush.

    Also not sure if you've seen it, but I have a slightly better tutorial than the one you linked, it uses world space UV's and also allows for blending textures via a heightmap (or some channel trickery if you haven't got a heightmap)

     
    Hallur90 likes this.
  3. LiamMitchell

    LiamMitchell

    Joined:
    Oct 30, 2015
    Posts:
    5
    When using the tool menu to convert a complex mesh, it seems to silently fail Unity 2020.2.1f1

    Does Probuilder not use UInt32 for more verts when over the limit?
    My mesh loads and renders fine in the editor but when I probuilderize it I get a mess of blue lines and not textures.

    It has many materials (368) and submesh per material port of an older DirectX 9 game no texture atlas.

    Example check if needing to use more verts.
    Code (CSharp):
    1.  Debug.Log("Check if number of Vertices is larger than ushort.MaxValue");
    2.             if (Vertices.Length >= ushort.MaxValue)
    3.             {
    4.                 Debug.Log("Setting the rendering index format of the mesh to UInt32 for more verts.");
    5.                 mesh.indexFormat = UnityEngine.Rendering.IndexFormat.UInt32;
    6.             }