Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Critias Tree System [Asset Store]

Discussion in 'Works In Progress - Archive' started by Assembler-Maze, Oct 21, 2016.

  1. Acissathar

    Acissathar

    Joined:
    Jun 24, 2011
    Posts:
    677
    I think you're in the wrong thread. Your errors are for uNature and this is Critias's Tree System.
     
  2. BonsaTech

    BonsaTech

    Joined:
    Dec 22, 2015
    Posts:
    73
    H, I´m using a three cameras system for a driving application (http://imgur.com/a/nQCpm) and I´d like to know how can I handle this situation. I think that the system is using the front camera (set with MainCamera tag) but in the side cameras the trees appear and dissapear randomly. I´ve disabled the culling option but I get the same result.

    How could I debug the system to know if every camera is rendering mesh trees to the max tree distance?
     
  3. FrozenEmpire

    FrozenEmpire

    Joined:
    Sep 10, 2016
    Posts:
    96
    Any chance you might be willing to share your mods for the hue addition ;)
     
  4. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    4,044
    I evaluated the copy off github (assuming that's newer than the one on asset store). I got mixed results.

    The billboards and long range view performance was not so great. Near and mid-range view did seem improved, sometimes dramatically. Long range views with many billboards visible, I get better performance from speedtree native.

    Billboard quality could use improvement - the speedtree billboards are really really good when you have normals and receive shadow enabled for billboarding.

    I saw significantly worse performance on many billboards visible though, which seems weird. 960M.
     
  5. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    For the cell size try having more cell subdivisions. For the meshes that have too many vertices try use trees with less than 65k verts maybe?
     
  6. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    I'll try integrate it later, just got back from holiday. I'll also try and integrate some other stuff in too.
     
    FrozenEmpire likes this.
  7. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    That is quite weird. Are you sure that the underlying SpeedTrees are disabled? With billboards only the performance should be many many times better.
     
  8. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    4,044
    Yes, native speedtrees were disabled. This was unedited raw from your github project, using your scene provided. Only thing I did was remove character controller so I could adjust the camera manually.

    Possibly this is some kind of hardware difference or something (nvidia 960m) but this is raw and direct from your github into empty project.

    I did also try the asset store version, but this had LOD issues where only LOD being displayed were LOD0, then culled. This could have been configuration problem on my end. Github version had no need - you had a scene included already.
     
  9. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    It is very weird that you get better performance with native billboards rather than my billboards. Anyway I have some optimizations in mind, and I hope that I can bring them in soon. However I have to choose between optimizing the system and increase it's stability and adding new features like support for non-tree objects etc...
     
  10. URZqqq

    URZqqq

    Joined:
    Dec 9, 2013
    Posts:
    4
    Hello,

    I discovered Critias a few days ago, and it looks very impressive.

    I spent some time reading this thread, watching the first tutorial video (for some reason the second one takes ages to download), and I poked a little bit the project. I might also read the source code, which is really clean by the way :)

    That being said, I'd like to know if I can reuse your billboard system for my specific case: I have a terrain which is really a .3ds mesh, and my trees are at the moment a modified version of Unity's sprite2D, with a custom billboard shader found there. I have around 200k trees, and the performances are really poor (20 fps), because the trees aren't batched.

    If I understand correctly your system, at some point during the baking you convert all the speedtrees in a giant billboard mesh, where each vertex has the usual stuff (x, y, z, u, v...), plus an extra (x, y, z) which is the origin of the current vertex. Then you have a custom shader that uses this information, so each tree still faces the camera.

    > Am I right ?

    > Can your system work (almost ?) out of the box with my setup ?

    > Could you give me some pointers to create my own batched billboard, or at least point to me things I have to read / understand ? I don't really need all the LOD system nor the physic system, because I just have sprites, and no 3D models

    Thanks :)
     
  11. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    Well, yes, the SpeedTree billboards are batched together only for speedtrees, and yes they face the camera per-billboard, that is decided in the vertex shader.

    However for your particular system it is unlikely that my system would work if those are billboard only and not 3D speedtree meshes. You need to batch them together manually, and make them face the camera inside the vertex shader.
     
  12. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    I've made an update on the system, the changes should be shortly on github and later on the asset store. They include:

    Fix:
    - Fixed some issues with shadows appearing all over the place for unity 5.6+

    Features:
    - Optimized tree-billboard transition for better performance
    - Improved the readability of inspector variables and removed the ones that were not necessary
    - Added the possibility not to generate billboards for certain tree types
    - Added an extra class for extracting extra trees without the need to manually specify them
     
  13. catfink

    catfink

    Joined:
    May 23, 2015
    Posts:
    176
    I have a question regarding colliders. My game allows you to fly through and around trees, which means I usually have a few capsule colliders on each tree to handle collisions higher up the trees rather than just for the main trunk. Does this system allow for this scenario and preserve colliders from the speedtree prefabs? If they are preserved do they take advantage of the culling system so that colliders will only appear on trees in proximity of the player?
     
  14. jwilliamsen

    jwilliamsen

    Joined:
    Aug 8, 2010
    Posts:
    56
    Critias looks really promising. I have a project now with over 1400 trees - 90 species - in a 400m x 400m area. I'm using speedtrees, but my trees are all manually placed clones since I needed to be able to place the trees precisely.

    Would it be possible to use Critias for this, or does it have to be "terrain-painted" trees?

    Thanks for making this free, BTW - it's very generous of you :)
     
  15. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    Yes, absolutely. The original colliders from the speedtree prefab are used, you can put as many as you want on your tree. And yes, they will take into account the player's proximity if you use the 'tree colliders' script. You can use the settings to set the refresh and the radius around the player that the trees will have colliders attached to.
     
  16. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    Yes, if you have cloned trees just put them in an empty 'root' game object and attach the 'extra trees' script to that root object that contains the trees. When you'll generate the trees they will be automatically added to the system.
     
  17. khos

    khos

    Joined:
    May 10, 2016
    Posts:
    1,476
    Hi, interesting asset, do I understand correctly that your asset has a way of enabling/disabling colliders with big amounts of trees, to get higher FPS?
     
  18. jwilliamsen

    jwilliamsen

    Joined:
    Aug 8, 2010
    Posts:
    56
    I have this asset - it doesn't work very well - at least it hasn't for me. In the tests I did with it, I was getting equal performance out of just hand-placed SpeedTrees (which seem to be much faster than *painted* SpeedTrees). Anyway I was hoping that Critias might be the solution .... but in my current project, my terrain is an odd size - which can't be "gridified" by Critias - so it's rejected.

    I guess it's back to hand-tuning LODs ....
     
  19. catfink

    catfink

    Joined:
    May 23, 2015
    Posts:
    176
    Does the Critias system work across Windows, OSX and Linux as I deploy to all three platforms for my game.
     
  20. jwilliamsen

    jwilliamsen

    Joined:
    Aug 8, 2010
    Posts:
    56
    Yes - that is one aspect of this system - it can enable and disable tree colliders for a given radius around a character to boost performance with a lot of trees ;)
     
  21. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    Yes, it should work with any platform that supports hardware instancing.
     
  22. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    Depends on your project. 1500 trees are not that much, and if they are placed at very large distances from each other it doesn't really matter too much. Only if they would be very close to each other (high density) it would make a difference, maybe.

    My system kicks in when you have more than 10-20k trees that are placed very dense. And it performs great with 100k+ trees, with colliders and stuff and batching optimizations. Think open world RPG where you have a 4kmx4km map with dense forests.

    And also it matters if the tree types vary too much. If you have 100+ types of trees, then the system will require to render a copy of them to apply the wind creating a big overhead. At the moment it doesn't support loading/unloading of types that are not visible.

    For the odd terrain size, yea, it's a problem I hope that I can solve it in the future giving the ability to set how many you want the terrain divided in, without forcing you to have those fixed sizes. That was a bad idea from the beginning i hope that i can work it out soon. Still waiting for the new version to appear on the asset store however.
     
  23. zelmund

    zelmund

    Joined:
    Mar 2, 2012
    Posts:
    437
    hi there.
    did everyting in doc/video tutorial. but after i hit play my trees gone and i see only shadows from them. when i stop play, my trees back.
    what did i miss?
     
  24. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    Did you used the latest version? In the latest version there were some significant improvements and I haven't updated the docs and video for them. I'll try update them as soon as possible.

    If you still have problems I'd recommend grabbing the full project from github.
     
  25. zelmund

    zelmund

    Joined:
    Mar 2, 2012
    Posts:
    437
    im trying to do it in clean project. seem all ok if i do extract trees and then generate.
    will try to do it again in work project. if something wrong, ill try to describe it.
     
  26. zelmund

    zelmund

    Joined:
    Mar 2, 2012
    Posts:
    437
    1 day passed, opened clean project with trees setup, hit play and BOOM:

    NullReferenceException: Object reference not set to an instance of an object
    TreeSystem.GenerateRuntimePrototypeData (.TreeSystemPrototypeData data) (at Assets/CritiasTreeSystem/Code/TreeSystem.cs:342)
    TreeSystem.Awake () (at Assets/CritiasTreeSystem/Code/TreeSystem.cs:493)

    i see billboards and giant hole before me.

    deleted all setups, recreated all wtih trees and nothing. same error.
     
    Last edited: Jul 19, 2017
  27. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    I'll look into it, maybe i've missed something.
     
  28. zelmund

    zelmund

    Joined:
    Mar 2, 2012
    Posts:
    437
    tried to repeat it. it happens if i try to change tree. so if i had broadleaf and now i want to change it to pine. something like that

    also getting this error after hit button "Apply Settings" in Tree System

    Assertion failed on expression: 'ShouldRunBehaviour()'
    UnityEngine.MonoBehaviour:StartCoroutine(String)
    TreeColliders:StartCollisionUpdates() (at Assets/CritiasTreeSystem/Code/TreeColliders.cs:115)
    TreeSystem:SetApplyColliders(Boolean) (at Assets/CritiasTreeSystem/Code/TreeSystem.cs:426)
    TreeSystemEditor:OnInspectorGUI() (at Assets/CritiasTreeSystem/Code/TreeSystem.cs:212)
    UnityEditor.DockArea:OnGUI()
     
    Last edited: Jul 19, 2017
  29. HarryMcCurly

    HarryMcCurly

    Joined:
    Jul 18, 2017
    Posts:
    6
    Hey there,
    I'm working with 3 Terrain objects, all 10K trees. Every time I hit "generate trees" Unity crashes. I don't have anything special in the scene, I'm only using standard Unity Terrain Assets. There are no Errors before creating. just some warnings for unused values. I'm trying to create the trees tomorrow on a (hopefully) stronger computer system. Maybe my PC doesn't have the capability to execute this task.
     
  30. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    Highly unlikely that the PC can't handle the task, it's probably a bug in the system. If you find any more bugs, please report them. And make sure that you've set up all the values, try it with a smaller count of trees, make and sure that the paths are correct.

    I'll also try to update the documentation as soon as possible, just to make things 100% clear. Since of system improvements it's modified now, and maybe you misplaced some values.

    If you have time, make a project (but a small one, please) and send it here, I'll debug it when I have time.
     
  31. FredrikS

    FredrikS

    Joined:
    Sep 28, 2015
    Posts:
    14
    Having problems with the new version running on Unity 5.6.0. No trees are showing up after generating them. The errors I get are:

    NullReferenceException
    UnityEngine.Material.SetVectorArray (Int32 nameID, UnityEngine.Vector4[] values) (at C:/buildslave/unity/build/Runtime/Export/Graphics.cs:743)
    UnityEngine.Material.SetVectorArray (System.String name, UnityEngine.Vector4[] values) (at C:/buildslave/unity/build/Runtime/Export/Graphics.cs:738)
    TreeSystem.SetMaterialBillProps (.TreeSystemPrototypeData data, UnityEngine.Material m) (at Assets/CritiasTreeSystem/Code/TreeSystem.cs:257)
    TreeSystem.GenerateRuntimePrototypeData (.TreeSystemPrototypeData data) (at Assets/CritiasTreeSystem/Code/TreeSystem.cs:335)
    TreeSystem.Awake () (at Assets/CritiasTreeSystem/Code/TreeSystem.cs:493)

    and

    NullReferenceException: Object reference not set to an instance of an object
    TreeSystem.OnDestroy () (at Assets/CritiasTreeSystem/Code/TreeSystem.cs:575)

    When hitting apply when assigning the camera to the RunTimeTreeSystem I also get:
    Assertion failed on expression: 'ShouldRunBehaviour()'
    UnityEngine.MonoBehaviour:StartCoroutine(String)
    TreeColliders:StartCollisionUpdates() (at Assets/CritiasTreeSystem/Code/TreeColliders.cs:115)
    TreeSystem:SetApplyColliders(Boolean) (at Assets/CritiasTreeSystem/Code/TreeSystem.cs:426)
    TreeSystemEditor:OnInspectorGUI() (at Assets/CritiasTreeSystem/Code/TreeSystem.cs:212)
    UnityEditor.DockArea:OnGUI()
     
  32. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    The package is for Unity 2017+. I haven't introduced major changes but that might be the problem. Also I really don't know if you have set up the project correctly.
     
  33. hellpenguin30

    hellpenguin30

    Joined:
    Sep 15, 2015
    Posts:
    15
    Im using Unity 5.6.1f1, using the Unity Collaboration tool with another partner working on a game together. Currently we want to stick with unity 5.6 for now. I see in the asset store the latest version of Critias Trees is only for Unity 2017.1.0.
    So i went to you git hub site and saw you have Critias Version 0.93 in there. If i download that will it work with unity 5.6 and would i be able to follow the current video tutorial on this using that version 0.93?
     
    Last edited: Jul 20, 2017
  34. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    Well on github there is 9.7.0 but there weren't major improvements so it should work in 5.6 too. The video is for the old version but you should set up the same parameters and it should work.
     
  35. hellpenguin30

    hellpenguin30

    Joined:
    Sep 15, 2015
    Posts:
    15
    This is what i see on github 0.93 . Image attached, i guess it should work still, but if you have a link to 9.70 i will try it out. Also i saw that this tool only imports handles trees only, so is there a guide which explains how to keep grass and other details in the terrain? Thanks
     

    Attached Files:

    • cit.JPG
      cit.JPG
      File size:
      89.6 KB
      Views:
      802
  36. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    Yes, when I updated stuff on git I forgot to write 0.9.7 instead of 0.9.3. But it's 0.9.7 there trust me, check the 'version.txt'.

    For other stuff than trees try out my grass system. It is compatible with SpeedTree. There's a project with it on github. However I don't have time to support/improve it since it was planned for heavy improvement if my game project succeeded. The game failed so I can't afford to support it any more.
     
  37. hellpenguin30

    hellpenguin30

    Joined:
    Sep 15, 2015
    Posts:
    15
    ok thanks for your prompt responses. Will give both of those a try
     
  38. HarryMcCurly

    HarryMcCurly

    Joined:
    Jul 18, 2017
    Posts:
    6
    I checked the adjustments, I tried a smaller tree count 1000 per terrain, but still not working. I copied a smaller version of my project for you. It still was too big to send it here, so I'll leave a dropbox link:
    https://www.dropbox.com/s/soots325grlayis/TreeSystem Test.zip?dl=0

    Thank you for your help. I'm gladly appreciate it.
     
  39. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    Hello,

    Looked over the project and noticed the following issues:

    1. For your SpeedTree (the ones that come with unity in 'standard assets') please select all your trees and hit 'Regenerate Materials'. It seems that their materials are somewhat older and they don't take into account instancing but after you regenerate them everything should be fine.

    2. After you have regenerated them delete all the data under 'Assets/TreeData' and in the treeifier script hit 'Extract Tree Prototype Data' again. Now all the materials in there will be regenerated with 'enable instancing' on (before step 1 they had 'enable instancing' off). You can also manually check that.

    3. You cell size was wrong, one cell size was 15 and the others were 1. That 'cell size' field is not the count of cells that a terrain should have, it is the size that a cell should have. With cells with size 1, that would mean that a 1500x1500 terrain would have 2250000 cells which will surely kill you unity, freeze your pc, burn your monitor etc... Set a decent size for all terrains to something like 500 (that's what I used for your project).

    4. If trees don't show up or flicker disable the 'Use Occlusion' option in the 'Tree System' script, occlusion culling is kinda buggy in unity.

    5. Enjoy your scene at 400+ fps.

    If you couldn't get everything right contact me here again. I have tested on your particular scene and after doing those modifications everything works just fine.
     
  40. HarryMcCurly

    HarryMcCurly

    Joined:
    Jul 18, 2017
    Posts:
    6
    Thank you very much for your help. It worked as you said!
    I got confused with how exactly cells are working.

    EDIT:
    I just realized the grass doesn't show in play-mode, but it's not generated like the trees. The grass is still visible in the scene's viewport but not while playing the game.
     
    Last edited: Jul 25, 2017
  41. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    For the grass there is one issue. At run-time the trees on the underlying terrain are disabled (calling 'showtrees' = false) because if that is on the SpeedTrees from the terrain are drawn and we don't want that. However if you set that to false, unfortunately, that will also turn of the grass since unity does not have 2 values one for trees and one for grass.

    The solution to that is to use 2 terrains, one for grass and one for trees. Alternatively you can try my grass system, however note that it is very difficult to use.
     
  42. HarryMcCurly

    HarryMcCurly

    Joined:
    Jul 18, 2017
    Posts:
    6
    All right. I'll see what I can do. Thank you very much for your support. You were a great help :]
     
  43. TimHeijden

    TimHeijden

    Joined:
    Mar 5, 2015
    Posts:
    34
    From my testing, this asset seems so effective that frankly its absurd that Unity hasn't done anything like it themselves. So thanks a lot for making this asset free so far!

    Like some others, my current project is still using 5.6 and I can't seem to get the newest package from github to work with it. I even did the following:
    - Download github project
    - open in 2017.1, do step-by-step guide --> all good
    - create new project in 2017.1, move code, do step-by-step guide --> all good
    - create new project in 5.6, move code, do step-by-step guide --> doesn't work
    - create new project in 2017.1, move code from 5.6, do step-by-step guide --> doesn't work

    With "doesn't work", what happens is that trees are culling incorrectly. Trees can be seen in distance, but get culled as you get closer. Sometimes they reappear when you're very close and sometimes you can't see them in the distance.

    While upgrading is possible in theory, it could risk other stuff breaking so I would prefer to do that at a later time. Is it possible to get a package out for 5.6 specifically, or would this be a tough thing to do?

    I'm not expecting you to help me at all, the asset is free after all :)

    One feedback thing:
    My project instantiates the player a bit after the scene is loaded, this breaks the runtime generation of the tree system as it requires the main camera & a reference to transform. (or at least it looks that way from code/errors I get) It would be awesome to make it less dependent on those OR have a function available to (re)generate at a later time than Awake/Start.
     
  44. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    Hello,

    Theoretically it should work on 5.6 too, there weren't any API changes. There were people that managed to get it working.

    Check out the answer at: https://forum.unity3d.com/threads/critias-tree-system-asset-store.437520/page-8#post-3156631

    Follow those steps too and it should get you up and running. For your problem that requires deferred setup, copy all the code in 'Start' or simply re-name start/awake and manually call them whenever you require.

    If the basic setup of the system doesn't work feel free to pack me a project and if I have time I'll look over it.
     
  45. AlteredPlanets

    AlteredPlanets

    Joined:
    Aug 12, 2013
    Posts:
    455
    hi , use instancing check box doesnt show anywhere in latest version
     
  46. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    Because it's the default now, instancing is always used regardless.
     
  47. TimHeijden

    TimHeijden

    Joined:
    Mar 5, 2015
    Posts:
    34
    We decided to do the upgrade to 2017.1 and I've managed to get the system to work mostly!

    The trees culling improperly that I was describing: The upgrade didn't fix the issue initially. In fact, it turns out it was two different issues:

    1. Enabling the occlusion culling caused 3D trees not to work in all camera angles / distances from initial starting position. You mentioned in an earlier post that unity's OC was a bit weird so that's probably why. For now we simply disabled it.

    2. Billboards would always disappear completely if losing editor focus & regaining it. This was a really tough one, and it only occurred in our actual project. Eventually I decided to simply keep deleting stuff from the project until almost nothing was left and it started working again. My assumption based on the findings is that this is some unity issue causing either shaderdata or something similar to simply reset! This occured because:
    - I was using the "TimeOfDay" plugin that had a "Doxyfile" asset in its folder
    - Some of my dlls had pdb files, which makes unity generate mdb files.

    After removing both the doxyfile and pdb+mdb's it worked just like in the example! If this rings any bells as to why that would be, please tell me. If not, I'll make a bug report about it when I have time.


    All this cost me about half a day to figure out. Adapting the tree system to support my player & scene management itself afterwards was actually quite a breeze. Goodbye 10ms+ of culling :)
     
  48. Assembler-Maze

    Assembler-Maze

    Joined:
    Jan 6, 2016
    Posts:
    630
    Yes, the OC is quite weird, I also recommend disabling it. I think it only actually worked in 5.5 but from then I can't seem to get it working.

    And for the pdb's and dll's that cause the billboards to disappear... I'm sorry, but that beats me :). I'm glad that you figured it out.
     
  49. ivabibliocad

    ivabibliocad

    Joined:
    Jan 11, 2014
    Posts:
    80
    I made my Terrain using the object to terrain script (http://wiki.unity3d.com/index.php?title=Object2Terrain) so my terrain is not a square at all and I think that's the reason why no matter what cell size I use it always tells me:
    "Can't gridify terrain [xxxxxxxxx Terrain (UnityEngine.Terrain)] with cell size: xxx
    UnityEngine.Debug:LogError(Object)
    Treeifier:GenerateTrees() (at Assets/CritiasTreeSystem/Code/Treeifier.cs:369)
    TreeifierEditor:OnInspectorGUI() (at Assets/CritiasTreeSystem/Code/Treeifier.cs:60)
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr)"
    I may also have an other problem. This is intended for VR with Oculus Rift. Will this work for that purpose? I suppose that out of the 3 cameras I should use the center eye?

    Thanks for any help!!
     
    Last edited: Aug 17, 2017
  50. umauj

    umauj

    Joined:
    Nov 20, 2011
    Posts:
    80
    I am impressed! Fantastic system you built here. Wish it would have been around when we needed it :) but that time will come again! Was really dissappointed by the slow performance of Unity's built in solution when rendering forests... keep the good work up!

    Are there any plans to further improve the lighting on the trees? What features are currently supported on the trees?