michaelb-01 Posted September 25, 2014 Share Posted September 25, 2014 I'm trying to create a high resolution procedural tree model (without using SpeedTree etc). I looked into L-systems but thats not much use for a more detailed model that is made of one mesh. This is a really interesting tutorial (and has been posted before) - http://www.andyboyd3d.com/siggraph_talk/img27.html But i'm wondering if theres a procedural way to create the branches (seen here - http://www.andyboyd3d.com/siggraph_talk/img32.html). I'm guessing this part was actually done manually but it would be great to have a procedural method! Cheers, Mike 1 Quote Link to comment Share on other sites More sharing options...
sebkaine Posted September 25, 2014 Share Posted September 25, 2014 (edited) http://disney-animation.s3.amazonaws.com/library/tangledProcTrees.pdf Recursive particle emssion is an interesting way with - collision with boudary object - particle avoidance check the recursiveSplit exemple in houdini doc as a starting point. i've attach a rough test ... recursive.hipnc Edited September 25, 2014 by sebkaine 1 Quote Link to comment Share on other sites More sharing options...
michaelb-01 Posted September 25, 2014 Author Share Posted September 25, 2014 Thanks Emmanuel, Thats an interesting read and video! I think generating the curves is the easy part; I found L-systems unintuitive so I spent a couple of hours making a basic tree generator in vex (i've attached an early version) but the tricky part is generating interesting and geometry with clean/smooth joins etc. Thats why I was looking at the above tutorial to see if it can be procedurally modelled without first using curves.. vex_tree_v1.hip Quote Link to comment Share on other sites More sharing options...
sebkaine Posted September 25, 2014 Share Posted September 25, 2014 (edited) to generate great and clean mesh i think openVDB could be the Light ... - you generate particles, - from those particles you generate curves - you add a layer to tweak/clean those curves in SOP - from those curve you generate a volumetric object - you sculpt the detail in volume - then you build a mesh with openVDB with Volume->Mesh Object i've never done trees but it could be a possibility for investigation ... ps : cool and interesting stuff in your hip thanks ! Edited September 25, 2014 by sebkaine Quote Link to comment Share on other sites More sharing options...
michaelb-01 Posted September 25, 2014 Author Share Posted September 25, 2014 Yea I was thinking about that but I don't have a huge amount of experience with openVDB. I'll look into it more now though. Thanks for your help! Ha no worries, I just found it a lot more intuitive to write something like that than using L-systems, with some work it could probably be quite useful. Quote Link to comment Share on other sites More sharing options...
eetu Posted September 25, 2014 Share Posted September 25, 2014 It's a bit harder to get nice meaningful uv flow the volume route, but for sure it would be a nice way to get interesting shapes. Quote Link to comment Share on other sites More sharing options...
sebkaine Posted September 25, 2014 Share Posted September 25, 2014 (edited) openVDB is the light , it is just a killing features of Houdini, just for this feature it is impossible for me to go back to maya ! The sooner you learn it ! the better ! i think that you are making a confusion beetween L-System and Recursive System L-System are PITA to use if you're not a math genius , But particle approach is imo the most efficient because if you devise it cleverly you can generate a raw tree with very precise control then tweak all in SOP. With particles you also have age and degree of birth (L0, L1, L2, L3) and thus you can store those info to use them to remap your pscale and the force of the noise you apply to disturb your branch. VEX is also cool but i am not sure it will be as efficient as using POP. Other alternative when you are lazy ... http://www.onyxtree.com/ @eetu yes i haven't think about uv's ... good point ! ... PTEX ? Edited September 25, 2014 by sebkaine Quote Link to comment Share on other sites More sharing options...
papicrunch Posted September 25, 2014 Share Posted September 25, 2014 Hi, for UV you can generate tube along the curves, then "smooth" intersection branches with vdb (power) closestPoint. Next just find some way to Alpha blending the overlaping face. See my file, Have fun vdb_tree_CLP.rar 1 Quote Link to comment Share on other sites More sharing options...
michael Posted September 26, 2014 Share Posted September 26, 2014 just going to butt into this thread and ask if anyone has a (reasonably) procedural way of generating a curve from a branch...like a line down the center... Quote Link to comment Share on other sites More sharing options...
sebkaine Posted September 26, 2014 Share Posted September 26, 2014 (edited) Michael could you be more explicit with a drawing/image or an exmple ? i don't get exactly what you want ? I am trying to find a set of video where a guy use some procedural cell development algo. Recursivity is interesting but it produce chaos if you don't control the expension. So you have to add some sort of flocking behavior law to - avoid collision - keep coherence in the growing process I am sure someone here has already see this kind of stuff where the cell propagate like an intelligent organism. they split after a certain amount of time without touching each other and by keeping a velocity that go outward. I think they use something like this in V-gro tools Edited September 26, 2014 by sebkaine Quote Link to comment Share on other sites More sharing options...
sebkaine Posted September 26, 2014 Share Posted September 26, 2014 (edited) Gotcha ! Diffusion limited aggregation // theorie http://en.wikipedia.org/wiki/Diffusion-limited_aggregation http://classes.yale.edu/fractals/panorama/physics/dla/dla.html http://paulbourke.net/fractals/dla/ // code http://www.astro.rug.nl/~offringa/Diffusion%20Limited%20Aggregation.pdf http://formandcode.com/code-examples/simulate-dla // houdini http://zephmann.com/aggregation.html http://nccastaff.bournemouth.ac.uk/jmacey/MastersProjects/MSc09/Cashmore/ http://forums.odforce.net/topic/6310-diffusion-limited-aggregation/ Edited September 26, 2014 by sebkaine Quote Link to comment Share on other sites More sharing options...
eetu Posted September 26, 2014 Share Posted September 26, 2014 There's also a simple setup in the archaeological layers of my lab thread, http://forums.odforce.net/topic/8471-eetus-lab/?p=56274 I even found the hip file attached. It's from H9.5 so the feedback is done with a finicky file save-load setup, of course a Solver SOP would be better these days.. ee_aodla_05.hip 1 Quote Link to comment Share on other sites More sharing options...
michaelb-01 Posted September 26, 2014 Author Share Posted September 26, 2014 Michael could you be more explicit with a drawing/image or an exmple ? i don't get exactly what you want ? Hi Seb, Originally I was just wondering if there was a way to do this step procedurally in this tutorial (http://www.andyboyd3d.com/siggraph_talk/img32.html). For that (simple) example I wouldn't have to worry about collision or avoidance as I could generate branches sufficiently far away and grow them mostly along the normal of the trunk with some noise so they should never collide. So its a procedural modelling question. It just means this way I should be able to get an interesting, homogeneous mesh with whilst retaining good UVs. The stuff you listed with intelligent behaviour would definitely be more interesting though! Michael, I was wondering this too. I guess it would be some kind of 3D straight skeleton? Thanks for all the help! Mike Quote Link to comment Share on other sites More sharing options...
michael Posted September 26, 2014 Share Posted September 26, 2014 yeah, it's to opposite of generating a tube with a curve...you have a tube but want to generate a curve that runs down the center... if you're building a tree yourself you'll likely start with a curve and generate a branch from there, but if you already have a tree and want to say, add some wire deformation to a branch, it would be helpful to be able to get a curve that follows the branch... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.