Bob Posted August 22, 2012 Share Posted August 22, 2012 Hello everyone, I am working on a tool to output variations of plant assets for use in a real-time game engine. My general approach is to create a dynamic line skeleton in l-system language, distribute leaf/twig planes with a copy node and create the volume of branches. Vertex colors are also applied for ingame wind-animation. The available polywire does not fulfill my needs and so I am trying to create something similar. What does it need to do in addition to polywire functionality: 1. Twist according to/along with l-system turtle normal/up vector 2. Merge/Blend branch pairs where they meet -even after resampling the incoming curve (my way to reduce polycount, especially towards the ends of the branches) 3. Output useable UVs, one unfold and relaxed cylinder (one seam) per branch. 4. Adjust shape of the trunk (bulges at the base or better strength over length). I have done this before and would like to loft circles to nurbs surfaces, which should give proper UVs,too. The main problem here is that when I want to reduce the divisions over the length (using $WIDTH value), the polygon output looks wrong whatever node I use. Polywire does this task very well. Attached is what I have so far. Another functionality I want to implement is proper vertex color distribution. In the Unreal Development Kit I am multiplying the wind vector with the red channel of the vertex color. Along the l-system the cd should grow from black to a maximum red value of X at the branch tips (I guess using the $arc value. This needs to be applied to the polygonal geometry later, of course. The leaf planes need a gradient that goes from the red value of the branch they grow from to 255(max). This should be doable but first I need to solve the branch geometry problem. I hope somebody has ideas, for I am stuck at many fronts here trying all kinds of solutions for a long time already. I left the scale reference mesh and a rockTool in the scene, in case you're interested. Thanks in advance! Bodo vegetationTool_bodoschuetze.zip 1 Quote Link to comment Share on other sites More sharing options...
Bob Posted August 27, 2012 Author Share Posted August 27, 2012 (edited) Here's another solution for Twisting, lobing and diameter over total length for the trunk -as well as an approach of nesting more than two l-systems. The sticky notes inside the file have more questions. I am a little tired of trial and error since weeks. Tools like growFX for 3ds max do all I need for around 260€ so I think I have to give in for the sake of productivity. I would love to see something like this in Houdini though .I guess I lack the skills to do it on my own. However, I'm posting this in hope to find someone who is willing to give it a shot. Greets, Bodo TrunkTest.hip Edited August 27, 2012 by Bob Quote Link to comment Share on other sites More sharing options...
zarti Posted August 27, 2012 Share Posted August 27, 2012 (edited) hi , havent yet touched the Lsystems of houdini , but regarding the question on 'sticky5' note : is there a way to NOT have the delete node delete the point normal information of everything? yes , you can 'protect' normals . in your file TrunkTest i used and Add SOP ; > delete geometry but keep points and later rebuilt the geometry using 'Polygon' tab of same add node . so , delete9 and attribcopy3 were unnecessary .. -- back on topic : maybe you can skip the Lsystem way and try to work more with conventional nodes . maybe a year ago i started doing something similar ( a TreeDA ) in my free time . from what i remember it was doable , at least for my future needs . it was mostly intended to be used for designing / modeling trees one by one ( artist friendly with many viewport controls ) , but im sure that could had been possible to make it totally procedural too ( generate multiple-versions-automatically ) . .goodluck ! edit Reason : my English =P Edited August 27, 2012 by zarti Quote Link to comment Share on other sites More sharing options...
Bob Posted August 28, 2012 Author Share Posted August 28, 2012 Thanks for the AddSOP idea, Zarti. Perhaps I should try the tool without l-systems. But the creation of the underlying skeleton is not my main issue -it is the creation and control of the mesh around it. Best, Bodo Quote Link to comment Share on other sites More sharing options...
zarti Posted August 28, 2012 Share Posted August 28, 2012 my idea then , was to build branches using as their base random polygons from the trunk . once selected , there are different ways to build branches ; copy , polyextrude , sweep , etcetera ., . the Sweep node was my preferred ' method ' . .. starting from existing polygons has a big advantage ; you will never fail to perfectly join trunk with branches . ( theoretically ) with some experimentation , even UVs might ' run ' smoothly too . .hope this helps too ! 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.