Announcement

Collapse
No announcement yet.

Feature request: multi-texture trunks

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Feature request: multi-texture trunks

    One of biggest, and also weirdest shortcomings of Speedtree is lack of ability to have multiple, blending, tiling materials for tree trunks out of the box.

    Many trees do not have single-pattern textures. Pines go from thick dark bark to flaky orangeish bark towards the top (see photo), Birches go from their classic white to nearly black towards the top and so forth.

    For software calling itself Speedtree, fully dedicated to trees and plants, and sporting 9th version already, it's quite puzzling that this, quite immersion-breaking flaw is still not dealt with.


    AND YES, I know that there's some ways to fake it, using stitches or extremely badly documented and puzzling methods (that also instantly break randomize button), but I really don't think ST should put its users through such pointless hassle. If you're taking pride in simulating trees, do make simulating most basic properties of trees simply usable with few clicks. Multi-texture trunk is absolute necessity this day and age. Many games implement it, from the top of my head - ArmA Reforger for example: (https://cdna.artstation.com/p/assets...jpg?1667506560).

    Why can't Speedtree?
    When will it?

    Attached Files

  • #2
    This 3000000% gets my support. I made scots pines earlier and the ways that we can make this happen in SpeedTree is simply not good enough. It really should not be that hard to go from 1 texture to another.

    Comment


    • #3
      Hello hello!
      You do bring up a good point and area for improvement. We have several features for branch blending, but often times the work around for what the engine or shader supports can hinder the "easy" factor.

      As for existing solutions, I'll write these out for awareness:
      1. The "shell generator" is by far the quickest to add to a trunk. The downside is it uses opacity and and does cost some polycount.
      2. Using the Uv area cutout. This is for preassembled Tilable barks and it lets you tag parts of a single map to layer into the tree. This workflow reminds me a bit of stacking Lego parts and we could certainly use improved documentation and a tutorial. (it's on our queue).
      3. Using the texture blend stitch to bake two textures together. This does add in a layer of steps for exporting and crafting your material.

      We have this area under our consideration. I would love to know what your final destination for this type of tree would be....are you in Unreal Engine or Unity or Vfx?

      Last lil note here- we would like to keep the forum an inclusive and positive space to make requests for features. We are a very small group of real people, that work hard to bring you a working tool & documentation.

      Comment


      • #4
        Originally posted by SarahScruggs View Post
        1. The "shell generator" is by far the quickest to add to a trunk. The downside is it uses opacity and and does cost some polycount.
        It doesn't really work in games. Polycount is most expensive for games, and doubling it isn't a good idea. Plus, it introduces lighting problems in both Unity and Unreal Engine.

        2. Using the Uv area cutout. This is for preassembled Tilable barks and it lets you tag parts of a single map to layer into the tree. This workflow reminds me a bit of stacking Lego parts and we could certainly use improved documentation and a tutorial. (it's on our queue).
        Sure would! Despite it being around for some time, I still can't figure out how to - say - have repeating trunk and leaves on same material. It would be super logical, if under material tab, you could specify UV area to use. But it isn't there. It doesn't seem to be anywhere, really.

        3. Using the texture blend stitch to bake two textures together. This does add in a layer of steps for exporting and crafting your material.
        I've tried to make half a trunk, and various stiches to add extensions. It's a nightmare. First you need to align stitch generator by hand (which breaks randomize possibility in the future), second, you can't really choose the height for stitching and so forth. Trying to stay positive, it's just a bad idea.

        There is also fourth option, you could switch into freehand mode, and drag materials directly onto a trunk. This... sort of... works, but you can't make bottom-middle-top textures to align, and I don't think you can manually specify a patch size.

        We have this area under our consideration. I would love to know what your final destination for this type of tree would be....are you in Unreal Engine or Unity or Vfx?
        I'm using UE, but I've also tried Speedtree with Unity. I'm pretty sure that going forward, Unreal Engine would be pretty sensible direction for Speedtree in general, since even movie production world is moving towards using it.

        Some extra thoughts:
        • Moving towards UE or ST for Games in general, it would be sensible to introduce metallic-roughness type of material setup instead of specular-gloss, since those engines use it anyway, and current model requires a developer to work with different setups right now. It feels unbalanced, having as awesome features like channel packing and manually adjustable atlas, but way too complex shader model - right now.
        • Multi-texture-bark system shouldn't be too difficult to implement if you think about - say - landscape/terrain systems in game engines. Blended weight mapping for several tiling textures and such.Those ideas exist and work for ages now.
        • Even better if it would use masks out of the box, which texturing scene uses heavily today, anyway (think Adobe Substance 3D Designer, for example).
        • Better documentation is most dire need. But if Speedtree team focuses on that in the future, it's pretty clear that UI needs to be cleaned up and made more logical, since there's little point in documenting things that need to change, anyway. Not calling mesh shape changing tab "skin" and so forth. What does user really look for? A radial thickness of an element, number of segments per element, overall length and so forth. Right now, each of those options are obscured by hundreds of others, of which many bear same or similar name and come off just confusing. As an experiment, give a free subscription to a random game developer, and in exchange, ask them to explain what options on "UV" tab do in 2 weeks for example, or what do weight curves on material tab actually do and how to make them work. Pretty sure they couldn't, because it's pretty messy right now.
        • Latest updates to Speedtree to Games, with better branch generator, great example trees, example with modelled pine/spruce needles and such are quite fantastic. So I really hope there'll be more practical changes to this software. Photogrammetry is awesome, but quite niche. People getting middleware software licenses for Games don't have laser scanners or thirty-camera photo setup lying around. Otherwise, they wouldn't need middleware at all.
        • Short youtube video series (or a single, segmented and thorough one) just going over various option tabs in Speedtree and show what the do, in practical manner - would work pretty well as alternative to documentation. There's really cool long modelling streams, but this day and age, watching a 1+ hour video in hopes someone uses a particular feature... well, isn't really how things work nowadays.
        Last edited by InCreator; 05-09-2023, 08:14 AM.

        Comment


        • #5
          I gave this some further thought and I came up with an additional nudge towards something that can work for blending between two textures - Vertex paint.

          It certainly isn't a perfect solution, but using vertex paint it is possible to set up a multi texture material in game engines that reads the vertex paint in order to determine which texture to display. This certainly isn't perfect if you need the vertex paint for other features (some set ups use vertex paint to control wind for an example), but it is a workable solution in some cases.

          And to add my answer to Sarah's question; I'm currently using SpeedTree with Unity. Using it with Unreal one day is not improbable however.

          Comment

          Working...
          X