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

[SALE] InfiniTREE - Procedural tree generation-growth, Multithreaded batching & Forest management

Discussion in 'Works In Progress - Archive' started by nasos_333, Dec 14, 2014.

  1. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    INfiniDy is a new system for tree generation, growth and forest management with a multithreaded batching system. This is the first system from the INfiniDy procedural generation suit.

    InfiniTREE v1.0 final demo - with LOD system
    https://dl.dropboxusercontent.com/u/79230236/INFINIDY/TREE/InfiniTREE DEMOv1.0.html


    WIP Demo link (without LOD): https://dl.dropboxusercontent.com/u/79230236/INFINIDY/TREE/INfiniDy Tree WebPlayer DEMO1.html


    Due to the big demand i focused on this procedural tree generation system first

    and Your wish is my command :) !!!!, i managed to lower the draw calls to the procedural trees to just 5 per tree !!! and poly counts to a minimum as well, so the release is not a few days away !!!

    I will submit the pack with the name: "INfiniDy Trees - Procedural tree generator".



    I will be making the leaf motion, the manual and some promo stuff and will release as the first INfiniDy pack, probably this week.

    These trees are completly controllable and i have two methods for the leaf motion

    - by script that controls the leaves with dynamic batching (that is not free and needs optimization and spread of motion in various frames to get a good result, but is fully controllable and can do rotation around pivot etc). This mode is perfect for less trees or enable when hero is close, to give that small cool detail in each leaf rotation.

    - by shader (that is rather free, but is less controllable). This mode is perfect for the mass of trees.

    Of course these scripts can co-exist and be enabled/disabled as required, for LOD adjustement based on camera position.

    The trees can also grow gradually !!! and any effect is possible, maybe in the next update i attach a particle system from Particle Dynamic Magic and can have all leaves fly away at any point etc

    And trees is just one thing, the system with some tweaking and more parameters exposed can do any kind of plant i guess, will be a cool journey ahead for the next updates.

    "INfiniDy Trees - Procedural tree generator"

    Features:

    - Super optimized procedural tree generation. Only 4-5 draw calls per tree and low poly counts.
    - Tree growth and gradual creation
    - Uber tree control, scale them, sqeeze them, rotate them, copy them, chop them, burn them, split them on the fly during gameplay, anything the terrain system prohibits can be done with these trees !!!
    - Leaf motion by shader or by script (or both)
    - Fully featured custom static and dynamic batching system to control and lower draw calls

    Future work:

    - Why only trees ? The system will provide a library of plants, flowers etc and a Prefab Manager to hold them
    - More cool dynamic behaviors, like hanging moving fruit, windzone integration etc
    - Terrain flower growth (i have this system ready and i guess would be a cool bonus for the pack, it is already optimized well and with a little more polish will come in a next update)
    - Terrain texture painting, to create patches automatically under trees
    - Much more that i cant even think of yet :),the sky is the limit with procedural

    Also if the pack does well, i will integrate the INfiniDy spline system and have spline directed growth. As with all packs the growth depends on reviews, so please remeber to leave one when buying to support the effort.
     
    Last edited: Dec 30, 2014
  2. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Last edited: Dec 14, 2014
  3. blastone

    blastone

    Joined:
    Apr 7, 2009
    Posts:
    168
    I'm excited by this
     
  4. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Super optimized INfiniDy Forest (5 draw calls, static case for now)


    Thanks :), i will be releasing a demo soon too, when i get the various wind methods perfected. This will grow trees dynamically to show the complete effect and possibilities.

    At this point i batch per tree, but i just realized that the system could be further optimized by batching per forest, this could further eliminate draw calls (but need a lot more work on making the wind right i guess). I will be working on this to see the possibilities.

    The goal is to have 5 draw calls for a whole forest in the end, which is already possible if leaves are static (pic above), the only thing that makes it hard is the wind motion and shading.

    For far away forests, this should already work great though, so will be part of the script from the first version.

    The procedural nature of the trees also means that i can have any ammount of unique detail per tree (as long as materials dont change), so any number of cool little details and tree individuality are possible.

    What i find extremely impressive is that i dont see any impact in rendering and CPU performance when i enable the trees (static case in pic above), i am looking into it since it seems very strange.

    The rendering goes from 0.9ms to 1.0ms and Main Thread ms remain largly unaffected !!! It is like free trees at this point :)
     
    Last edited: Dec 14, 2014
  5. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Shadows enabled with 7 extra draw calls


    Some more notes, the batching gets more expensive as trees grow per batch script, so the forest can be unlimited but making new trees in the same forest would create big spikes. Dynamically growing would also have an issue with this. I will look into further optimizing the batcher to do even better in that regard, this is the only limitation i have found so far.

    For now the forest module would work for creating big forests far away, the closer ones would need less trees per forest or one depending on its detail. The growing trees would be best as one per batch script that would allow much faster real time control.

    Also a pic that shows the draw calls when shadows are enabled, shadows are a bit expensive on the very old laptop i work on, draw calls are still great i guess, only 7 extra for the whole forest when shadows are on.
     
  6. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286

    Playing with shader options. This is with the Unity leaf shader.

    16 draw calls for all trees and shadows.
     
  7. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286

    UPDATES:


    Various tree types and wind have been added. One of the main shaders for the wind is Shader Forge compatible as well.

    Also added a height levels option, to create more than one copies as the tree goes up (for pines etc) with variable size and a forest option to automatically batch placed trees in one single batch.
     
  8. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Some tests in copying whole forest groups in real time.


    UPDATE:


    The manual is ready, the instantiation tests have been done extensively and everything is working great. I have also put together a demo and will release it very soon, after i clean up the scene a bit.

    The demo has real time instantiation and growth of trees, to showcase the completly dynamic nature of the effect and possibilities.

    The demo trees take only a few draw calls (15-20), independently of their number. The more trees in one pool though, the bigger the spike when the pool recontructs the batched mesh, so it needs some planning if whole forests need to grow at once.

    The best policy for the current version is to keep a number of trees per forest that will be handled well by the batching when it has to happen and spread trees to more than one such forest groups.

    Also it is best that trees done grow all at once, the system for example is ideal for spells that will grow trees around the player, but for raising a map full of trees will need further optimizations that will come in later versions.

    All the above are based on tests on my very old non gaming laptop, so it will run a whole lot faster on better and modern systems, i always test on my laptop so effects are super optimized :)
     
  9. Jaqal

    Jaqal

    Joined:
    Jul 3, 2014
    Posts:
    288
    How would this work with cutting down trees?
     
  10. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Choping tree
    Leaves detached and physics enabled

    This functionality will come in an update, but should be trivial to do in single trees. The procedure would be to decombine the batch group, control the chop (for example make brances fall or play with the bark in any way needed) and then make it dissapear or recombine, these are all specific to the gameplay requirements for each game though.

    I will try to add as many samples and cover as many cases in upcoming updates for the chop and much more, but if there is something specific that is not handled by the pack directly, i could add it on demand always in an update.

    An easy way i think about in choping, would be to apply physics to the items over a height and let them fall, as group or individually. There are certainly many options on how to approach the chopping. The system allows any kind of manipulation and tree part separation, so the base for any chop method is there.

    EDIT: I did a quick test and the procedure is like this (posted pic above too)

    When axe hits tree collider, a decombine is triggered to the tree batch script.

    After that, all tree parts are separated again (draw calls go high at that point, but is only for one tree) and can be manipulated.

    Check chops count and decide how many are needed to take it down

    After chops > threshold, add a proper collider to the nodes of the tree that need to move (probably the parts above the lowest bark part). This is the first TBD how it will be done, since making the proper collider to give a good motion is nessesary. Boxes worked well in my sample, but need proper placement.

    After colliders have been added, add rigidbody to the upper parts and let them fall. At this point the leaves must be controlled to follow the falling brances (the leaves are already associated with their brances, so the base to do it is ready, but is a bit tricky to select the proper transormations)

    When settled, make dissapear or re-combine tree.

    Of course that is just one method to do it, there are many more possibilities, like using the dynamic batching and control everything individually, so you dont need to decombine etc

    The leaves could also fall all at once with gravity when the tree is hit, this would simplify the problem and leaves that come together with brances would follow the branch motion by default.
     
    Last edited: Dec 15, 2014
  11. Jaqal

    Jaqal

    Joined:
    Jul 3, 2014
    Posts:
    288
    Im sorry my question was not very specific. I have a very good tree cutting system I was just wondering how easily it could be implemented with the procedural trees and your batching system. Realistic cutting of trees requires mesh destruction or the tree model to be seperated prior to placing in game. I'm just wondering if we can use our own models to achieve this out just the ones in your package. It's quite hard to get dense realistically interactive foilage in unity without large performance drops. I am hoping your package can help.

    Below is a prototype of my old tee cutting system to get the general idea of what I'm asking for.
     
  12. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    This is very cool :)

    It would need a few extra steps to make this work with the above system.

    One though to make it easier is to decouple the lower part (base and chopped pieces as axe hits) from my tree and use the upper bark part of your system (the one tha falls, minus the leaves - brances) as the base bark for my tree (any prefab can be used for the bark, leaves and brances in my system, basically is fully customizable and can even have multiple layers like fruit, leaves etc).

    Then when the tree gets chopped, it would simply fall with a script, like a simple rotation of my tree (which is possible in real time, since everything is parented to the root) or with applied physics ( a bit more work to get it right, but still possible)

    The best part is that the procedural can do all kind of effects after the base is ready, like have leaves fall when you chop or branches or the tree bend and everything between.

    The performance is a matter of how many such trees you want to have and your occlusion system. For chopping you would need to batch the tree individually for best results, this means about 5 draw calls without shadows and 10-15 with shadows for each tree.

    Of course the sky is the limit with LOD and re-batching, but there is a limit in batch groups, since decombine in big groups creates large spikes. I will focus on making the batching multithreaded if possible in future updates, or find a way to reduce these spikes, but for now you dont want to decombine big groups in general.
     
    Jaqal likes this.
  13. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    I forgot to mention that in future updates, the plan is to apply Particle Dynamic Magic systems on the leaves, so there can be Turbulence and leaf motion when they leave the tree, plus collisions without a collider from the mesh side etc

    This will further simplify the procedure to control the leaves and other items on the tree.

    Spline based growth and vines are also a next step, the splines base is already integraded in INfiniDy, so hopefully this will come in the first update.
     
  14. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    UPDATE:

    I have been working endlessly on making the batching system multithreading and after 14 hours straight today i have it working and splitting the work in multiple threads :)

    It is still not perfect, since for some strange reason it adds some extra triangle count that should not be there at each batching, it is very strange, but hopefully i will have an answer to that by tomorrow and release the system with a complete static and dynamic system that will also be multithreaded !!!

    EDIT: From some tests, seems that the problem does not happen in the first instantiated tree, so that is good news and it should probably be easy to fix (hopefully) :)
     
    Last edited: Dec 16, 2014
  15. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    UPDATE:

    I just solved the multithreading problems and now it works like a charm, the batching does not introduce big spikes even on my very old non gaming laptop !!!

    As of today, the INfiniDy Trees pack will also include a fully multithreaded static and dynamic batching system, which is also fully customizable and all source code is provided.
    .
     
  16. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286


    UPDATE:


    The demo with real time tree growth is almost done, using the new batching system with multithreading and extra options like tree bending.

    I have also added a method to save the various tree parts for use later as prefabs.

    Demo trees take 16 draw calls with shadows (and 5 without).
     
  17. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    UPDATE:

    New performance optimizations have gone in the system, some ideas i had about further optimizing worked great and now the system is blazing fast, i can recombine around 50 trees with minimal impact in the game.

    I will now create a system to group the trees in 50 item forests, each forest will take only 5 (without shadows) to 20 draw calls (with shadows) and can have up to 50 trees.

    The split to tree groups should also allow interactivity (decombine should be much faster when interacting with trees on demand) if max tree number per group is kept low (5-6 trees). So i will add a parameter to each tree that will put it in the right holder, interactive trees will automatically create smaller groups and will take more draw calls and back trees will form up to 50 tree groups for max speed.
     
  18. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286

    UPDATE:


    I have finilized a first demo and also added much more functionality, like a toggle option that will place any tree to a high priority low member group in order to interact with very fast. For example if the collider of the tree receives a chop from an axe, it can toggle the tree to a high performance interactive tree group on collision and handle any motion to the tree (make it fall etc) and then it can be re-grouped in another low priority tree group.

    All that is now handled automatically by the system. Also even more optimizations have gone in and perfrormance is even better. The multithreading is really making a day and night kind of difference.

    I am uploading two videos from the current demo and will post them asap.
     
    Last edited: Dec 20, 2014
  19. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Video of the WIP
     
  20. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286


    A tree made by changing the video trees branch prefab, took only one minute to do the changes, using Unity tree system to shape the branch prefabs and a color change to the leaves.

    One of the main advantages of the system is that any prefab can be used with a lot of control over the distribution and layers.

    The question is whether i should release the system at a lower price for everyone to toy with, since the base is now almost ready, or take my time and also bring as good art as possible with many tree types etc.
    This could take a lot of time though and the pack would have a far bigger initial price.

    So, please let me know what you would like me to do. Of course the art packs will come later, that is planned no matter how the pack will begin its life.
     
  21. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Here is a first demo of the new system, this is just a base too, much more will be added to it, like procedural mesh growth along splines and physics based directionality etc. The system will get a lot more polishing and optimizing until release.

    Demo link: https://dl.dropboxusercontent.com/u/79230236/INFINIDY/TREE/INfiniDy Tree WebPlayer DEMO1.html

    Note that this demo has dynamically changing trees (the rootless version will move when hero is close). When the hero is away from trees, the draw calls are reduced to 5-15 per tree group (interactive trees are grouped by 2-3 and static by 12-25). When the hero is close to an interactive tree, the draw calls are increased while it moves, just for the 2-3 trees in the interactive group.

    Opinions on the demo and suggestions would be great and will greatly help in shaping the final system.
     
  22. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286



    Two more pics, showing the source material used to create each tree and how easy it is to add items per branch and mix leaves

    I use cubes at the branch base for debuging (though it is also a nice artistic result :) )
     
  23. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
  24. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286


    UPDATE:


    A new video from the WIP new demo that will show the asset with Sky Master environment.



    The first final demo has been released.

    InfiniTREE demo
    https://dl.dropboxusercontent.com/u/79230236/INFINIDY/TREE/InfiniTREE DEMOv1.0.html


    Also a third demo is WIP, that will have controls over each individual tree during instantiation !! so every tree can be radically different based on the parameters entered to the growth script on the fly. This will further showcase the vesatility and possibilities of the system.

    In the first update i will also have a system that will align grass to the terrain normal and this will also bring a rock spreading feature, that can be used as decals.
    .
     
    Last edited: Dec 30, 2014
  25. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286



    UPDATE:

    Now that the first version has been submitted, the current work in progress will be the spline and mesh generation system.

    I already have the system to grow mesh along my splines and along physics based paths, so the base is ready and will expand from there.

    I post some pics from the InfiniDy thread, with the spline system, which will be used to create branches, direct trees along a path and make roots grow around trees and towers :)

    The first update will definitly be a huge one.
     
  26. Jaqal

    Jaqal

    Joined:
    Jul 3, 2014
    Posts:
    288
    Very cool. I will be trying this out soon!
     
  27. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Great :), if you want let me know how the demos perform on your end and what else would be useful to have in the system.
     
  28. Jaqal

    Jaqal

    Joined:
    Jul 3, 2014
    Posts:
    288
    I away from home atm but I certainly will when I get there. I've been keeping my eye on this.

    I am still curious about the tree chopping as I'm making a survival game. So in your batches that have interactable trees they are decombined once hit? That sounds really great. I am wondering how this works if the trunk needs to be cut for realism as we discussed before. We could simply move a tree into its transform with the cut mesh once it is decombined if that's not what your already doing. The biggest thing for me will be being able to use different types of trees as I so many different areas in my game!

    Anyway I'll post some feedback once I test this out.
     
    Last edited: Dec 31, 2014
  29. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Since the trees do indeed get decombined on the fly, it is easy to add a choping feature. I will work on that for the next update, so i can have a good sample. Now the interactive tree is activated when the hero is close, but could also be collider based activation, maybe with a script attached to the tree bark collider, which will trigger the decombination and let the tree fall in any way desired.

    The details of the effect can vary, for example the bark can be a compound object with three parts, one will be a top part, that will be be programmed to fall with the rest of the tree, a lower part that will remain static and a particle effect that will emit wood chips at each hit of the collider (that can happen as the tree gets chopped). If more detail is needed, the tree may also alter its bark upper part based on how many times it has got hit.

    This change does not need full dynamic status and will only decombine per hit, the tree fall will need the more expensive dynamic state until it falls down. Once it falls, there is an erase option implemented that can be used to erase the tree from its group and add a pickable object or anything else.

    Of course that is just one way to go about it, there can be multiple other methods.
     
    Last edited: Dec 31, 2014
  30. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    Just my opinion, but these kind of don't really look like trees. The branches are much too straight (too low poly?) and don't seem to grow out of the trunk but rather just suddenly jut out at an obscure angle. The branches also seem to taper linearly and aren't `wiggly` enough to look organic. They look like what it might look like if you made a tree out of metal tubes. Is this just the way you've demo'd it or can the tool do something a bit more lifelike?
     
  31. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Since any prefab can be used for branches, the sky is the limit in the artistic style or realism vs something more abstract.

    For example one of the trees has a less straight branch style (pic below).That is up to the user to define for the specific case.

    Branches can also be Unity Tree Creator meshes, so any unity tree part can directly be used as branch or bark, leaves etc

    Some of the pics above are rather old too and just tests with straight parts, the new models have more organic branches, so nearly all the early pics are now irrelevant and were just for the initial testing.



    Here is a sample of how the above trees are assembled, the source parts are the bark and branch in front, that are made with Unity Tree Creator and are completly changable as any Unity Tree, with spline control etc. The leaves are textured quads.



    The starting growth point is completly customizable and the root bark as well, so the point that the first branches emit can be control by the right bark model and height scaling settings. In the demo i have a bark that already defines the start of a branch, which of course could be changed in seconds in the Unity Tree Creator to have only the bark and no initial branches.
     
    Last edited: Dec 31, 2014
  32. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    UPDATE:

    I just realized that this system could also provide a full LOD method for Unity Free. So i will also add much more LOD options in the next update, plus a mode that will grab the terrain normals for rotation, thus the LOD system could be used with a spread system as well, for much more than trees (like rocks etc).

    Another idea i am playing with is a occlusion culling system, that will use bounding boxes to determine what to shut down and what not.

    The work with the splines and mesh generation is also progressing very well, hopefully i will have a demo soon.
     
    Last edited: Jan 4, 2015
  33. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286


    UPDATE:
    Progress on the mesh generation. Branches can now grow with base splines or based on user input, both the spline and grow target can be directly manipulated in the game.
    .
     
    twobob likes this.
  34. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286

    UPDATE:

    The UV mapping is almost done as well, only a few details missing for finilizing the mesh generation base and start working on the full growth and optimizations. Also will allow the use of forces on the branches, like local attractors etc

    The mesh above is grown initially on a spline and then by manipulation of the blue target position. The system will offer hybrid growth (direct manipulation, physics based and spline based growth)
     
  35. Sykoo

    Sykoo

    Joined:
    Jul 25, 2014
    Posts:
    1,394
    This looks pretty cool!
     
    nasos_333 likes this.
  36. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Thanks :)

    This spline & mesh generation system will further enchance the control over the tree growth effects, and will also be used for both modeling in the editor and real time manipulation.

    I am now working on polishing the branch shape. I use a sample circle for the profile of the extrusion, but i can use anything and even change the profile shape mid way with a different spline or anything else, for more powerful modeling. Also the placement of the sections is not 100% polished yet, that is why there is some twisting, but i will also have this twist as a feature (since it actually looks cool to have as option).

    I can also create extra polygons at the seams, for smoother look.
    .
     
  37. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    UPDATE:

    The connection system for the branches to the bark is progressing well, i now have full control of the branch base in both local and world space and i can adjust it to any situation. This can also be used to form the bark base and i am working on some ideas for more options on this as well.
     
  38. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    InfiniTREE has been released to the store !!!

    Enjoy half price for a few days !!!. The pack is going to grow with multiple new systems, like splines and mesh growth.
     
  39. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286

    UPDATE:


    New upcoming feature: Bark shaping (or mesh in general). This system will allow mouse painting on a bark mesh to further sculpt its finer details.

    I think something like this will be vital in giving the tree the exact look required. I will also evaluate how this could be used in real time.

    New upcoming feature: Modifiers. Bend, twist and more mesh modifiers wll be available to use with the tree mesh.
     
  40. odival

    odival

    Joined:
    Jun 11, 2014
    Posts:
    57
    you're blowing my mind man. =O
     
    nasos_333 likes this.
  41. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Thanks :). The system is just in its first steps too, i want to pack it with a huge number of more cool features, like the spline and mesh generation which is going great already, deformers, mesh painting and much more. The base for all these systems is already done and working, so hopefully i will be able to pack most at the next update.

    The goal is to provide an as complete tree creation and real time generation/manipulation suit as possible.

    After the programming is all done, i will focus on creating a more optimized and artistic library of trees too, beside the sample trees included in the current version.
     
    Last edited: Jan 10, 2015
  42. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    UPDATE:

    Video of the WIP - Spline system addition, with spline based multi branch mesh growth. Directed (or physics based) branch growth in real time is possible after the initial spline growth, all in run time.



    Each of the branches can be individually controlled at any point. This new system will be combined with the main one, or can be used as standalone as well.

    I will expand a bit and present a webplayer demo soon.

    Make sure to grab the pack at the ARTnGame SALE - 50% off all packs (Sky Master, InfiniTREE, GI Proxy, Particle Dynamic Magic, Advanced FX Creator)
     
  43. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    UPDATE:

    Besides the very big updates, like the whole new spline system and dynamic spline based mesh generation, i am also working on an Ambient Occlusion baker and proper shaders that will enable the automation of adding ambient occlusion data and rendering to the trees.

    The first version of this system will come in the next update. A real time version is also planned to follow later, if it makes sense from a performance standpoint.
     
  44. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    UPDATE:

    A chop trees example scene has been created and will be inluded in the next update. A demo will arrive soon as well.
     
  45. Velo222

    Velo222

    Joined:
    Apr 29, 2012
    Posts:
    1,437
    I really love the IDEA of this. But not so much the graphics of it. At least not the ones in your pictures. But the idea itself, and the potential of it is pretty cool.

    I know you said above it can be replaced with other "art" styles etc. But......I dunno where i'm going with this exactly. I guess the concept of it is really pretty amazing, but the trees in your pictures don't look that realistic, or good to me.
     
  46. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    I understand that completely. The problem is that i am mostly a programmer and the (attempt) at finilized art in all my packs comes usually after the systems have been finilized, since i give them a priority.

    The plans are many, for both the next systems (spline and mesh generator) and assets, the latter will come last for various reasons, one of which is the fact that i would rather start creating pro assets that can readilly be used in a game after all systems are in, since some of the system might require remaking some of them.

    The other problem is that creating a library of trees that are game ready and for various possible platforms, would increase the pack price so much that would be hard for any indie developer to get, plus since it is not my specialty would probably take me a lot more than i can justify by the pack pricing.

    Thus the plan from my side is clearly to finilize the technical stuff until the system has everything (even cool features found in the $4000 SpeedTree, with the added perk that everything will work inside Unity and in real time also) and then i will focus on making a few game ready assets, perfected and appealing as much as possible.

    The system is also indeed made so that custom assets can be used and is compatible with Unity Tree Creator assets (As most samples are based on) and anything else that uses a mesh.

    There are also two major updates that when they will arrive will allow for even more organic details on trees, the mesh generator and the tree sculptor will both allow the further customization of trees to whole new levels and these are already working and are getting closer to release. When those are done and out, new trees with details from all three major systems will be made and i will post them here for evaluation before release.

    I hope the above make sense
     
  47. Velo222

    Velo222

    Joined:
    Apr 29, 2012
    Posts:
    1,437
    Yes, I know the feeling :) I consider myself the same.

    I see what you are saying. And believe me, I don't pretend to know what all goes into it lol. I'm sure it's not easy at all. I might wait for the updates then, and evaluate your package at that point.

    Anyways, just wanted to give you some feedback from a first time viewer of your asset :) Again, though, I think it's a great idea, so I wish you good luck.
     
  48. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    Thanks for the feedback, it is always welcome and make me work faster :), as it increases both drive and morale.

    The only certain thing is that i will try to the best on my ability to provide the coolest assets i can as the pack grows, plus an amazing and dynamic system from a technical point of view. All these systems were very complex indeed, definitly one step above anything else i have done so far.
     
  49. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    UPDATE:

    Some WIP update for the mesh generation and spline based growth.

    - The system is nearly ready for the "semi dynamic end state" growth case (dynamic growth and then branches can be manipulated by transform). There are only two issues left, the smooth connection to the parent, which is 80% done (i control the base vertices completly and need to adjust them to the parent ones) and the rotation of the growth sections that need to be tweaked a lot, to avoid strange looking polygons and twists.

    - The system will also offer the "full dynamic end state" mode, which will be more expensive, but will allow the manipulation of the grown mesh directly by spline nodes. This will give total control over the tree shaping in real time, but will have to generate or extend a spline to do so, thus will be a bit more expensive, but these splines can be deactivated and actually in my spline system there is no update unless the spline changes, so is already partly handled. I will start working on this in parallel, i already have a working example of fully spline controllable mesh (the wall sample in my InfiniDy pics), so will be trivial to implement.

    - Each branch will grow independently of the rest, thus it will be possible to erase and otherwise control each branch individually.

    Let me know what you think of the two approaches and what else i could add in the system, i am always open to more ideas.
     
  50. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,286
    UPDATE:

    The "full dynamic end state" mode is working as standalone and now i am working towards integration to the core system. The leaf system is also in grogress.