Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


eoinobroin last won the day on December 14 2016

eoinobroin had the most liked content!

Recent Profile Visitors

2574 profile views

eoinobroin's Achievements


Newbie (1/14)



  1. Hey Eduard! I've done a lot of testing over the last week and have figured out a solution that may be easier for you to to implement. The pivot based wind is great (and will certainly be used in the future), but for lower LODs (where entire leaf clusters need to be on a piece of low poly geometry), it seems that vertex colors offer the most benefits, while having a really strong integration with GrowFX. Here is my current work in progress setup in UE4: This wind shader is entirely driven by vertex colors using a single model exported straight from GrowFX(no pivots or any detaching) You can see the vertex colors affect the model at different intensities (still some bugs to iron out with the leaf gusts in the more intense section). Basically GrowFX offers a near perfect implementation right now- the only thing that is missing for this wind solution to work fully is the "Paint vertex color gradient down paths of instanced meshes" option. This gradient along path option is currently greyed out for instanced meshes as discussed above, but being able to mix the inherited values, random values per element, and gradient for instanced meshes would allow for the most possible control with very little work ( I didn't realise how good the vertex color integration was with GrowFX until a few days ago) Here is an image of the mesh with the colors applied, to explain: Blue strength = branch bend strength Green strength = random bend offset Red strength = leaf bend strength As you can see, the red has very little influence on the leaves as they are instanced meshes, and the trunk/branches are GrowFX cylinders. Ideally, I'd want the leaves to have a strong red strength at their tips (using a gradient like so): I hope this feature can be implemented for instanced meshes like it is for GrowFX objects, as it will be a perfect solution for getting really nice wind weights very quickly! Thanks!
  2. Here are a few realtime scenes running in Unreal Engine 4, using GrowFX to create 100% of the foliage (using Megascans textures and instanced geometry planes for the leaves). A real pleasure to work with GrowFX- such a powerful tool!
  3. Hey Eduard! Thanks so much for taking the time to look into this- I think it could be extremely powerful for realtime applications, and a very valuable and efficient way to get foliage rigged fast. The way pivot based realtime wind works is a combination of rotation through each pivot (trunk/branches/leaves all separately rotating) and vertex weighted bending. This animation is done in Unreal Engine- so is possible to do a lot of customization in real time (stormy directional winds/ huge amount of variation over one instanced asset through simple randomized values per instanced asset- here is an extremely basic test made in engine using a single instanced grass clump, hopefully you can see the potential it would have for trees/bushes/plants: ) You can see when tweaking the shader that each blade moves on its own axis, and it's easily possible to tweak the direction/strength/randomness + any other custom variables right in engine. Simple typical game wind just runs a noise mask over the entire mesh to make it move, but the result looks very poor and cheap/not realistic. Having access to the pivot information baked to a texture (where each pixel represents a pivot location) means that it is possible to get much more natural and realistic movement while keeping good performance. Unreal Engine 4 for example provides a pivot painter script that allows that pivot texture to be created quickly from a model that is set up correctly (proper linked hierarchy/all elements on their own pivot). This then gives the power to create really powerful dynamic wind shaders. So, knowing this- the assets will all still be created as normal in GrowFX, the big change is just how they are converted to a mesh at the end. All that would be required is each element separate, and each branch/leaf/trunk hierarchy preserved, and then the script from Epic Games (Unreal Engine) will be able to create the pivot texture in one click! I can create a video outlining the workflow if that would help understand? The model presented in the video was a quick simple asset created in GrowFX (instanced meshes for the leaves) and then converted to a single editable mesh. I then manually detached all leaves from the stems, manually moved the pivots for each leaf back to their original relative positions, manually moved all stem pivots to their origin and then linked the leaves to the stems using the max link tool to create a hierarchy. I then was able to run the script from Epic Games to create the pivot texture for use in UE4. So you can see that if the information was available from GrowFX when converting, it would have been possible to rig in a matter of seconds! Regarding your specific question- since the pivots are baked in a hierarchy, the engine knows the relative position of the leaves to the branch- so if the branch bends, the leaves will follow and hold their correct position on the branch, even though the whole mesh has been collapsed to a single editable poly before exporting from Max.
  4. To summarize and hopefully make things clearer- to get really convincing + deep realtime wind in UE4 (without expensive bone rigging), you'd need to implement a way to: Retain original pivots of ALL paths (converted to separate editable meshes) Keep hierarchy intact (the ability to retain the parent and child relationship of the meshes over multiple levels (essentially the same as if you took all leaves that belonged to a particular branch of a tree and used the link tool to associate them to their branch- and do this for all branches of a tree) Right now this impossible to do even manually for anything remotely complex). The same idea would apply to linking all branches of a tree to the trunk. Paint vertex color gradient down paths of instanced meshes (This is lower priority but still very useful and important for creating bend/random weighting along with the pivot rotation) I do realize that this functionality may be very difficult to pull off, but if there is any way to retain the information, it'd be extremely useful! Thanks!
  5. Does the second script line "gfx_.GenerateOneMesh 1 x;" relate to the path number or element number? Being able to access and bake the original pivots for all leaves/stems/branches makes it possible to quickly create really deep and realistic realtime wind in UE4. Right now the solution is to create the GrowFX object, convert to a mesh and then manually detach ALL elements, reset their pivots, and then link certain element selection sets to the paths that they are tied to in order to have proper hierarchical wind. It becomes extremely difficult and tedious to do it manually this way, but since GrowFX essentially has most of that information to begin with (pivot info per element, elements attached to each parent path, hierarchy), it seems like it would be possible to retain that information with a few tweaks! I'd love to setup this script, but I'm not sure how to get it to work without getting errors! Here is a quick video of a simple test I made running in UE4 ( ). This simple object took hours and hours to detach and manually reset pivots/assign to paths when in theory, the information could be accessed in GrowFX. If you have any ideas to find a more efficient solution, I'd love to discuss it! Thanks a lot for your time! EDIT: I have also experimented with a different script that allows rigging by hierarchy- so if I made for example 3 different stems with leaves attached as children, added each stem in GrowFX as instanced meshes, and then clicked "use Hierarchy" which would bring in the linked leaves to GrowFX- then make a bush with a count of say 50 instances, if it was possible to convert each stem as a separate object with the same pivot as in GrowFX (bringing the leaves hierarchy with it), then rigging for ue4 would be a 1 click process! Because the hierarchy / link / pivot information is lost when converting to a mesh in GrowFX, it's currently not possible to do that without going through every single path manually and detaching all leaves which isn't a feasible option for many assets. Thanks!
  6. Thanks for the reply Eduard! Unfortunately both scripts are throwing errors (even when matching the number of meshes in the second script) "sequence index out of range"- I'm probably not setting it up right! I found a temporary solution to just apply the vertex color gradients to the instanced geometry meshes BEFORE processing in GrowFX, but for assets larger than grass, this may prove to be an issue. I saw in this post: https://exlevel.com/forum/index.php?/topic/285-about-instanced-geometry-vertex-color/that you had planned on implementing the "Coloring along path" function to instanced geometry- are those plans still in place? GrowFX is truly an amazing piece of software, just some small things holding it back from being really efficient with custom geometry (scanned atlas cards).
  7. Thanks for the reply! Explode did indeed separate them, but the pivot information was lost unfortunately. Basically for a simple case like grass, the input instanced geometry cards all have the correct pivot, and GrowFX deforms the mesh along the path which starts at the pivot point of the mesh. Since GrowFX currently doesn't support vertex colors along the path of an instanced mesh, I've been trying to use an external script to add the colors after converting to an editable mesh, but I guess that is more complex than I initially thought, if GrowFX can't export with pivot information! Thanks for the help!
  8. Hey! I'm looking to essentially convert a GrowFX object to an editable mesh but not combine all paths (many instanced meshes) into one mesh, instead have them all be converted into separate meshes and retain their pivot ( the start of the path). For example, if I had a patch of grass, I would want each individual blade as it's own editable mesh with the pivot coming from the start of the blade. Is there an easy way to achieve this? Apologies if it's a simple task, still learning Max coming from Maya! Thanks!
  9. I actually think I may have phrased my initial question poorly. By 25% of the leaves I meant for example if there were 100 paths and I wanted to put a noise modifier on a random 25 paths out of 100, but then apply another modifier to a new set of randomly picked 25 paths from the full 100. Right now it seems to affect the same 25 even when changing the seed offset, and the only solution seems to be just duplicating the initial distributor and then dealing with the two separately which can be a pain if you are frequently changing values. Thanks for your time and efforts!
  10. Thanks for the reply Seems like a much better solution as opposed to creating a whole other distributor and having to change two sets of values for each tweak which is what I've been doing so far! Will try it out and see how it goes!
  11. Hey! Love GrowFX, really amazing piece of software! I'm having trouble achieving a specific outcome- for example, if I wanted to give a random 25% of the leaves a twist modifier, and then assign a different modifier to a NEW random 25% of the leaves, it seems that the result always affects the same leaves, even tweaking the seed offset which seems like it should assign a new random % seed but doesn't change anything for me across any of the modifiers I've tested. Any help here would be greatly appreciated! Thanks, Eoin
  • Create New...