Home Technical Talk

Current and next-gen vegetation

polycounter lvl 11
Offline / Send Message
cupsster polycounter lvl 11
Hi,
I'm working on game where player main movement is flying so he can get very personal with vegetation. Main theme is FPV miniquad racing (small drones with on board camera). I want to ask what is typical triangle count for current and next gen trees and foliage in general. What would be your suggestions how to approach this case scenario (possibility of close contact with tree). Right now I'm experimenting and searching for various ways how to fake them so they look alright but still hold up when player is close. Main issue here is that there are vast forest planned and player can go in between branches (fly-through).
I examined vegetation and its look from Battlefield 4, Witcher and Kingdom's Come.
Potential creators of foliage in this games feel free to share triangle counts and or tips and tricks. it would save me some time to know on what should I focus cuse making trees is VERY time consuming.
One note, I would like to avoid using Speed Tree cause their trees look bad for me.
I plan to tackle first this tree, Pinus Sylvestris in various vegetation stages. First test (one on right) is sitting somewhere in 17-24k range.
I plan to do LOD in shader, so that when tree is far fronds are not using transparent shader just opaque one. I'll be posting more as I progress with this.

Replies

  • cupsster
    Options
    Offline / Send Message
    cupsster polycounter lvl 11
    Here they are in more detail. What would be your strategy to process them? I started with doing hi-poly branches for baking but problem is they need to have volume not due fact they will be viewed from close (hope that LOD will help me manage framerate).
  • cupsster
    Options
    Offline / Send Message
    cupsster polycounter lvl 11
    And to get you better idea on where and how extensive they will be used here is terrain I plan to populate them with. Edge of tile is 12km so that about 144km^2 of space. Forest coverage is dark green color spots. Forests will be mostly of conifers and some broadleaf bushes and shrubs.
  • cupsster
    Options
    Offline / Send Message
    cupsster polycounter lvl 11
    Shinigami wrote: »
    *slaps* dont attach. Use imgur

    Hehe, will do next time. I created imgur account already. :)
  • defragger
    Options
    Offline / Send Message
    defragger sublime tool
    dat world machine terrain is looking good so far. I´m working on something similar at the moment but I havent tackled the tree issue yet. So this thread might come in handy. Unfortunately my terrain is "only" 7 km wide. :poly141:
    I plan to do LOD in shader, so that when tree is far fronds are not using transparent shader just opaque one
    I´m very curious what the LODs will look like.

    View distance is a real problem with this kind of terrain. And you will need strong LODs because polygon counts are going through the roof obviously.

    Please keep us updated!

    Edit:
    I assume you already have seen this:
    [ame]https://www.youtube.com/watch?v=clakekAHQx0[/ame]
  • cupsster
    Options
    Offline / Send Message
    cupsster polycounter lvl 11
    Yes, I saw that movie, couple of times actually :) Great inspiration for me. I'll be using Unity5 and terrain will be sliced to more areas so I can manage it better (due Unity terrain being total shit) in terms of pixel error. Plan is to use replacement shaders with tessellation and POM with couple of special maps to keep that fidelity at far distances. I've made some preliminary tests and it is doable and running nice. Only problem I have is tessellated shadow caster mesh is Z-fighting with normal shading. But that should be fixed in my next iteration. For now I want to concentrate on trees. DUe fact that player can go very close this will be interesting to solve.
  • cupsster
    Options
    Offline / Send Message
    cupsster polycounter lvl 11
    Whole terrain in question as so far after last iteration
    In68KUM.png

    Closeup
    57gAT7f.gif
  • cupsster
    Options
    Offline / Send Message
    cupsster polycounter lvl 11
    So as by Kite Demo:

    LOD_0: 115000
    LOD_1: 13000
    LOD_2: 2500
    LOD_3: 32

    I hope that term "polys" mean triangles in Unreal. Please correct me if I'm wrong. So my triangle count is still on safe side (initial worry faded away). Hope Unity will not prove me wrong :D
  • DooDee
    Options
    Offline / Send Message
    Did CD Projekt RED not use SpeedTree for the trees in The Witcher 3?
  • cupsster
    Options
    Offline / Send Message
    cupsster polycounter lvl 11
    DooDee wrote: »
    Did CD Projekt RED not use SpeedTree for the trees in The Witcher 3?
    That might be true (I'm not sure what exactly did they used for that) but somehow I do not like trees it produce, the ST.. :/
  • DooDee
    Options
    Offline / Send Message
    Definitely appears so, with games like Witcher 2 and 3, Shadows of Mordor, Farcry 4, Destiny, and Dragon Age Inquisition using SpeedTree and looking phenomenal. I wouldn't rule it out as a viable option.

    http://speedtree.22slides.com/games
  • cupsster
    Options
    Offline / Send Message
    cupsster polycounter lvl 11
    That gallery is indeed impressive.
    I think I'll go different route either way.

    Modeling some branches now. I'll be baking from high poly to obtain missing maps. I think I would need to be real smart about low poly branches to capture detail I want where necessary. Minimizing overdraw on them and helping with volume definition at the same time.
  • cupsster
    Options
    Offline / Send Message
    cupsster polycounter lvl 11
    I'm looking for some info how to model, texture and unwrap branches entering trunk. I would like to have smooth transitions there but in order to optimize and speed up I could live without it if proven to be too time consuming to make.
  • cupsster
    Options
    Offline / Send Message
    cupsster polycounter lvl 11
    Made some branch bases for needle ones
    SJsZ755.png
    mLBida7.png

    As well as some for stumps and fallen debris. I think I'll start with these cuse I did not painted textures and stuff for looong time.. :)
    Nb13m2D.png
    miTPhfo.png

    Ignore that horizontal trunk for now. It needs more love at top. I'm thinking of breaking it up so I can derive various stages of decomposition from it. Any ideas how to proceed with branches entering trunk? I would like to have branches separate to be able to quickly bash together new pieces. For now there is 28 uniques pieces of debris branches. All that must go to single atlas.
  • Eric Chadwick
    Options
    Offline / Send Message
    Moved this to Tech Talk.

    For branches entering the trunk, take a look at Zspheres. For example
    http://www.polycount.com/forum/showthread.php?p=1094357

    alexluong_organics_wip01b.jpg
    zsphere_tree.jpg

    More examples here
    https://www.google.com/search?q=zbrush+tree+branches+game&tbm=isch
  • cupsster
    Options
    Offline / Send Message
    cupsster polycounter lvl 11
    TY for move. I was not sure where to start this thread :)
    Yep Z-spheres are very nice, me and sculpting are not so much friends :poly142: To paint it is OK but to sculpt not so much.

    The way I intend it to behave is more like kitbash set rather one single mesh. I would like to collapse to "one mesh" after kitbashing new arrangements. Hmmm. How to do so that it still blends nice with trunk..
    So far only things that came to my mind was to cover intersections with moss or still present rotting/dry bark pieces. If I could do moss as world space vector in shader than I would only need to create some meshes simulating bark patches.
    Other option would be to model some of them on fixed spots and still leave branches as separate so they can be moved around and collapsed just before export of new asset...
    Well time to break/remodel that trunk as well.
  • cupsster
    Options
    Offline / Send Message
    cupsster polycounter lvl 11
    So at the end I decided to try to sculpt. Please be gentle this is my first sculpt ever in my life. :)
    A3Z5eDk.png

    This one is "done" for now (depending how bake will go I might revisit it later on). Today 27 other need to be "done" as well...
    PPf3NA1.png
  • Eric Chadwick
    Options
    Offline / Send Message
    Baking unique normal maps for each branch and log will eat up most of your texture budget. Better to use tiling textures, unless you have a "boss" asset.

    Good job with the sculpts, except how will you do the blend with the trunk? If you do the whole tree as one sculpt, then you can use ZRemesher to decimate the model to get your lowpoly.
  • cupsster
    Options
    Offline / Send Message
    cupsster polycounter lvl 11
    For now I decided to proceed with kit-bash option. I'll for sure do some that have branches blended with trunk but plan is to utilize SPeedTree shader in unity to provide me with some blending options. This pieces will be all unique and part of much larger set.
    I plan to use them to quickly create new unique assets. So I'll be doing this in more modular fashion. When I'll figure out how to do blending in shader I might redo this pieces but for now I need to finish them and move to other vegetation. As veg is the most dominant element in game I'm trying to create I would need to iterate through it for sure. I plan to use similar technique on trees as in Kite Deno. For now I just need something to work with both in engine and ask art kit to create variations. Ultimate goal is to make it fully procedural in engine due fact that maps might get large and I do not have resources to do it all manually :) that means I'll be scripting lot of "decorators" to populate world for me based on rules from this kit pieces and instead put my effort and time to assets that can be marked as "hero" ones. Eg lonely massive standing tree that will draw player attention for sure. Forest versions will not be so detailed to save some triangles. I made special shader for this that can utilize some more texture space by some cheating (not channel packing tho). Hope I soon be able to test this system of mine on larger scale not just couple of isolated assets.
    TY for feedback BTW. Now back to practicing this "sculpting" thing.. I kinda start to like it.
    My intended workflow is LP > Unwrap LP > Add support loops (LP->HP) > sub-d (HP) > sculpt > bake > paint > kitbash
  • cupsster
    Options
    Offline / Send Message
    cupsster polycounter lvl 11
    kiEAazI.png
    Still messing around with dry wood. Any tips how to improve this "texture"?
  • Eric Chadwick
    Options
    Offline / Send Message
    Yeah, get some reference. ;)

    But if you're going to bake that into one big normal map, it's going to look like ass in a real game situation.
  • cupsster
    Options
    Offline / Send Message
    cupsster polycounter lvl 11
    Yeah, get some reference. ;)

    But if you're going to bake that into one big normal map, it's going to look like ass in a real game situation.

    Hehe, got plenty of them but I'm still very new to this sculpting jumboo mumboo :P these are actually my first attempted ones. I'm thinking of putting some lichen on top in albedo later on but I'm not sure how to approach normal map in that case. Need to do some research about this.

    I'll be cheating with textures by using MIP levels to actually store more textures into one texture :) Tested it, it works. Only issue is PS DDS plugin is crap so I'm using Gimp for this cheat.
  • Steppenwolf
    Options
    Offline / Send Message
    Steppenwolf polycounter lvl 15
    One note, I would like to avoid using Speed Tree cause their trees look bad for me.

    That's like saying i don't like Photoshop because their textures look bad.

    You can customize pretty much any aspect in speedtree. And things that you can't generate directly in speedtree you can still import as custom meshes. It's in full control of the artist to make speedtrees look good.

    And for what you have planned speedtree really is your best option.

    Kite trees are a bit too hipoly for game btw. Stock speedtrees for UE4 are in the 25k range. That's a good count for like small urban fps with a few trees here and there. For dense forests on a large map something like 10k and below sounds about right. And you definitely need lods that go smoothly down to billboards/x-trees. Again speedtree is your best friend for that.
  • cupsster
    Options
    Offline / Send Message
    cupsster polycounter lvl 11
    You are right about this one Steppenwolf, tools does not matter that much, the one who operates them does. :P

    For now I decided to go with hand made ones. I would need very detailed trees so total control all along is required. SpeedTree modeller might get me quick results but there are other things I have in my mind I did not mention yet (not right time).
    What you see in that Kite Demo is exactly what I'm after so I'll be extending Unity build in LOD with my own to get result I not want but NEED.

    I'm open to any study material regarding high performance detailed foliage implementations in games. I have hard time finding such info. So link it up if you know about something really good please. :) TY
Sign In or Register to comment.