Home Technical Talk

SpeedTree - How to reduce polycount?

StellarBE
polycounter lvl 6
Offline / Send Message
Pinned
StellarBE polycounter lvl 6
Hey all,

I'm technical artist at Rebel Camp Games and I'm currently exploring using SpeedTree for our foliage! The main problem I have is that the resulting trees I get out of it are at least 15k tris. I would like to make trees that stay under 2k tris.

There's so little information and tutorials around of SpeedTree, so that's why I ask here, because I'm sure there are some SpeedTree gurus around these forums. I've read articles of people that get trees of about 1k tris out of SpeedTree. But they don't explain how they do it...

I've messed around with the segments section on trunk and branches, reducing radial and caps segments etc.. But that only reduces it by a few hundred tris.

I'm sure there are some hidden settings that I'm missing! Any help would be greatly appreciated!

So how do I create 2k tris trees while still keeping the tree look full and interesting?

Also, what is a good polycount for trees these days for desktop/console game? is 2k tris realistic, or can it be higher? We won't be having a dense forest with lots of trees. There's gonna be maybe maximum 5-7 trees in the player viewport at any time.

Thanks,

Stefan

Replies

  • Obscura
    Options
    Offline / Send Message
    Obscura grand marshal polycounter
    15k is normal for lod0 these days, on desktop/ console. some games has even higher. There was a talk on gdc about far cry 4 foliage, they talk a lot about their trees. Check it out.
  • CrackRockSteady
    A reasonable polycount for your trees is also going to depend a lot on what type of game you're making.  is the game first person view or is the camera pulled back like an RTS or something?  How close will the player get to the trees?  How complex is the rest of your level?  If you'll only have a handful of trees onscreen at any time and there's not already a boatload of geometry in the level then you can probably afford to have more complex foliage.
  • Eric Chadwick
    Options
    Offline / Send Message
    I thought SpeedTree had a fully-developed and robust LOD system already? 5-second google, but have you tried these options? https://docs.speedtree.com/doku.php?id=lod 
    https://docs.speedtree.com/doku.php?id=settings
  • StellarBE
    Options
    Offline / Send Message
    StellarBE polycounter lvl 6
    Thanks for the answers guys. It seems like we're going with trees at around 15k tris for LOD0, 10k for LOD1 and 5k for LOD2. Then Billboards.

    The LOD system in SpeedTree was something I missed! Thanks for pointing me in the right direction!
  • Mark Dygert
    Options
    Offline / Send Message
    Yea, speedtree wouldn't be very speedy if it forced you to make your LODs by hand, ha.

    For LODs you generally want to step down at least 25%, more if the object can handle it. You don't want to set loose goals for LODs (10k for LOD1, 5k for LOD2), you wan to squeeze everything you can out of each LOD and only leave enough behind to define the object at the target distance. You're going to kill your performance (or have a barren landscape) if you can go down to 1000 tris at LOD1 but settle for leaving it at 5k. 

  • m4dcow
    Options
    Offline / Send Message
    m4dcow interpolator
    You might want to experiment with the mesh LODs, the majority of the polygons from speedtree comes from populating individual leaves. So using speedtree to generate a few branch variations which would be baked down to a texture map and then using those to populate your trunk might work better for games. You could have some individual leaf textures on that same sheet and have individual leaf meshes to give the main branch card more volume at LOD1.
  • Obscura
    Options
    Offline / Send Message
    Obscura grand marshal polycounter
    Not sure about your target engine but its important to mention that Unreal does not support different lightmap uvs on the different LODs for foliage so billboards as last lod kinda doesn't work in the most of cases by default. This is a limitation of hierarhical instanced static mesh and the foliage painter. It can be hacked into it, using custom procedural foliage though. Also, because of this, your lighting setup will determine if you can use them or not, if you want to use foliage painter.

    For convincing furthest LOD, its also better to use impostors, but they talk about this as well in the Far Cry presentation I mentioned. Ryan Brucks was also working on an impostor solution recently, it came out very good. I don't know if it will be included into Unreal in a near future version though. This would definitely have the same lightmap limitation by the way, but it looks way better than a billboard in a dynamic lighting scenario.
  • StellarBE
    Options
    Offline / Send Message
    StellarBE polycounter lvl 6
    Ok I got the trees down to 3-5k tris while still looking full and interesting now.

    what I did was reduce steps on branches and leaves. And reduce frequency while making the leaves bigger in size to keep it look full.

    Now the thing is, our trees will be giant, because in our game, the character has been shrunk to the size of an ant. So we want the base of our trees have interesting roots and sculpted detail. Which can't be done with speedtree as far as I know.

    So we are gonna make a base trunk/roots in Maya, then sculpt it in Zbrush and use that sculpted trunk in SpeedTree to add branches and leaves.

    It's really a journey to figure out the correct workflow hehe
Sign In or Register to comment.