Hi every body
1. how can i make fractal geometry in houdini? should i start coding? because i've heard fractal is some kind of l-system. can i use l system to make fractal geometry?
2. you have probably watched procedural forest- the intro tutorial-.if you add volume to the trees then they don't look right because they will interfere with each other. how can i solve this problem?
thanks
procedural modeling
11558 19 4- ramin22
- Member
- 70 posts
- Joined: March 2009
- Offline
- old_school
- Staff
- 2540 posts
- Joined: July 2005
- Offline
1. lsystems can be used to do fractals.
Take a look at the space filling Koch Curve example preset that comes with the Lsystem SOP.
To access the presets for any SOP, just press on the gear in the upper right of a parameter pane.
2. This is a difficult problem to handle right inside the lsystem rules. You “can” do this if you tackle each tree in turn. You use metaballs to grow the tree inside. Look at the Lsystem help for “Limit L-system growth inside a shape”. Just select any lsystem SOP and press the ? help icon in the upper right of the parameter pane and read the help for the L-system SOP. Actually the first question is answered right off in the introduction.
Growing lsystems and doing the meta test is quite slow.
It is probably better to prune the various trees after they are build and after they are “planted” to the ground using SOPs.
You can test to see if two or more trees are interacting with each other. Best to assign an unique id integer per tree as an attribute. Then iterate over each tree bringing in the trees around that tree and prune a percentage of the branches in the overlapping regions.
Metaballs are fantastic for this. Each tree is encompassed with a metaball. When two metaball fields interact the total weight increases. You can detect this inside a VOP network using the metaweight VOP. You can also add attributes to metaballs and iterate over all the metaballs affecting a position in space using the meta* VOPs.
I am sure there are other ways to deal with the overlapping tree regions but no matter what you do will involve pruning of some kind. That's what real trees do: When trees crowd each other, they steal light, branches don't get enough light, branches die, branches fall down. Nature always solves these problems quite elegantly.
Take a look at the space filling Koch Curve example preset that comes with the Lsystem SOP.
To access the presets for any SOP, just press on the gear in the upper right of a parameter pane.
2. This is a difficult problem to handle right inside the lsystem rules. You “can” do this if you tackle each tree in turn. You use metaballs to grow the tree inside. Look at the Lsystem help for “Limit L-system growth inside a shape”. Just select any lsystem SOP and press the ? help icon in the upper right of the parameter pane and read the help for the L-system SOP. Actually the first question is answered right off in the introduction.
Growing lsystems and doing the meta test is quite slow.
It is probably better to prune the various trees after they are build and after they are “planted” to the ground using SOPs.
You can test to see if two or more trees are interacting with each other. Best to assign an unique id integer per tree as an attribute. Then iterate over each tree bringing in the trees around that tree and prune a percentage of the branches in the overlapping regions.
Metaballs are fantastic for this. Each tree is encompassed with a metaball. When two metaball fields interact the total weight increases. You can detect this inside a VOP network using the metaweight VOP. You can also add attributes to metaballs and iterate over all the metaballs affecting a position in space using the meta* VOPs.
I am sure there are other ways to deal with the overlapping tree regions but no matter what you do will involve pruning of some kind. That's what real trees do: When trees crowd each other, they steal light, branches don't get enough light, branches die, branches fall down. Nature always solves these problems quite elegantly.
There's at least one school like the old school!
- ramin22
- Member
- 70 posts
- Joined: March 2009
- Offline
thanks for answering
1. but fractals i meant fractal geometry. i want the result to be some kind of surface not a bunch of lines.
2. metaballs look interesting and in the help it is written that it can be used to prune as you mentioned but how? i used the copy SOP to copy a metaball to points of an l system but don't know how can use it to prune
1. but fractals i meant fractal geometry. i want the result to be some kind of surface not a bunch of lines.
2. metaballs look interesting and in the help it is written that it can be used to prune as you mentioned but how? i used the copy SOP to copy a metaball to points of an l system but don't know how can use it to prune
- ragupasta
- Member
- 349 posts
- Joined: Aug. 2006
- Offline
ramin22
1. but fractals i meant fractal geometry. i want the result to be some kind of surface not a bunch of lines.
Turn on point attributes in an L-System, and append a polywireSOP. Now you have a surface. This method stops the broken joints if you use the tubes setting inside the L-SystemSOP.
By fracal geometry and surfaces I assume you mean something either quite abstract like this
http://art.bt-3d.de/fragment/index.html [art.bt-3d.de]
Or recursive surfaces like the file.
Also look inside VOPS, for a MandlebrotVOP. Thats a famous fractal.
- ramin22
- Member
- 70 posts
- Joined: March 2009
- Offline
- ramin22
- Member
- 70 posts
- Joined: March 2009
- Offline
- ragupasta
- Member
- 349 posts
- Joined: Aug. 2006
- Offline
No they wasnt made with L-Systems, just platonic solid and a few transforms fed inside a foreachSOP. Double click the for each sop and see. Real simple stuff.
For surfaces like terrains/oceans and such, using VOPSOPS is a good way of generating the displacements.
L-Systems are really good for doing things like trees, plants and human circulatory systems (veins and arterys). Although there are many applications for L-Systems, however I dont understand them that deep to pull off cool L-System related items.
For surfaces like terrains/oceans and such, using VOPSOPS is a good way of generating the displacements.
L-Systems are really good for doing things like trees, plants and human circulatory systems (veins and arterys). Although there are many applications for L-Systems, however I dont understand them that deep to pull off cool L-System related items.
- ramin22
- Member
- 70 posts
- Joined: March 2009
- Offline
- ragupasta
- Member
- 349 posts
- Joined: Aug. 2006
- Offline
- ragupasta
- Member
- 349 posts
- Joined: Aug. 2006
- Offline
- ragupasta
- Member
- 349 posts
- Joined: Aug. 2006
- Offline
- rurik2000
- Member
- 87 posts
- Joined: Aug. 2009
- Offline
Ragupasta, forgive my ignorance and thanks for sharing this file. I,m learning Houdini and am still not familiar with the various ways things can be done. May I ask why, in your paint hip file, you used the Material nodes in the paint network? Why do you need to go through them to pipe into your popnet?
And why do both materials need to be merged and piped into an out null?
If these questions are too basic for this forum, I apologize.
Thanks in advance
Alex
And why do both materials need to be merged and piped into an out null?
If these questions are too basic for this forum, I apologize.
Thanks in advance
Alex
- ragupasta
- Member
- 349 posts
- Joined: Aug. 2006
- Offline
For the materialSOP. The idea was to keep things as relative as possible, without splitting things into various extra nodes at object level. I should have really placed the materialSOP that is above the popnet, to the right side branch that runs into the merge node, however the fact that it runs into the popnet is for no reason other than my overlooking that. ops:
It still picks up that material at rendertime due to it also running into the merge node anyway.
As for why both branches need to be merged, is because the aluminium pipes (curves) are running into the popnet node to be used as collision objects. In doing this all you get from the popnet is the ouput particles and not the mesh that goes into it. So we merge together the particle output from the popnet and the aluminum pipes so that both can be seen by mantra when you fire off a render.
As for the nullSOP called “OUT”, trust me you will begin to do this all the time.
Basically if you are inside any context in Houdini and you need to reference the last node in the chain, inside an object node, then its easier to think “the node im looking for is called : /obj/paint/OUT”.
If you have a node heavy scene, its way easier to look for “OUT” inside the file browser, since capital letters always sits at the top of the list.
Hope I was clear enough, explaining things is not my best asset. :shock:
It still picks up that material at rendertime due to it also running into the merge node anyway.
As for why both branches need to be merged, is because the aluminium pipes (curves) are running into the popnet node to be used as collision objects. In doing this all you get from the popnet is the ouput particles and not the mesh that goes into it. So we merge together the particle output from the popnet and the aluminum pipes so that both can be seen by mantra when you fire off a render.
As for the nullSOP called “OUT”, trust me you will begin to do this all the time.
Basically if you are inside any context in Houdini and you need to reference the last node in the chain, inside an object node, then its easier to think “the node im looking for is called : /obj/paint/OUT”.
If you have a node heavy scene, its way easier to look for “OUT” inside the file browser, since capital letters always sits at the top of the list.
Hope I was clear enough, explaining things is not my best asset. :shock:
- rurik2000
- Member
- 87 posts
- Joined: Aug. 2009
- Offline
That just explained all my questions in the best possible way, thanks so much
I just started playing with the particlefluidssurface node, and can't really get it to look as smooth as what you have in your example. What is usually a good way to achieve this nice liquid look you have using that node? I'm trying to get water to run out of a faucet, but using the particle fluid approach is way to slow. A friend suggested using the particlefluidsurface approach, but I can't get things to not look blobby.
Thanks!
Alex
I just started playing with the particlefluidssurface node, and can't really get it to look as smooth as what you have in your example. What is usually a good way to achieve this nice liquid look you have using that node? I'm trying to get water to run out of a faucet, but using the particle fluid approach is way to slow. A friend suggested using the particlefluidsurface approach, but I can't get things to not look blobby.
Thanks!
Alex
- ragupasta
- Member
- 349 posts
- Joined: Aug. 2006
- Offline
It's really trial and error with the surface node. Step size parameter with give more detail to the surface mesh, but as expected this will slow things down somewhat.
Really its a tweaking game of parameters and trade-offs between the different settings.
The variance/noise of the particles in the particle system itself, step size, point radius scale, surface tighness, the method toggle are all settings you can play with to affect the surfacing. Some will work better than others. Also chck the toggle for “exclude lone particles” as well.
Also on the particle surace node, there is a filtering subtab, this really does smooth the surface out, but becareful setting this too high if you have lowered the step size significantly, things will slow down.
Really its a tweaking game of parameters and trade-offs between the different settings.
The variance/noise of the particles in the particle system itself, step size, point radius scale, surface tighness, the method toggle are all settings you can play with to affect the surfacing. Some will work better than others. Also chck the toggle for “exclude lone particles” as well.
Also on the particle surace node, there is a filtering subtab, this really does smooth the surface out, but becareful setting this too high if you have lowered the step size significantly, things will slow down.
- probbins
- Member
- 1145 posts
- Joined: July 2005
- Offline
- aiworks
- Member
- 130 posts
- Joined: April 2009
- Offline
Hi,
Take a look at the following link:
http://sweb.cityu.edu.hk/sm4123/ [sweb.cityu.edu.hk]
One of the tutorials (might be no. 8 or 9) deals with creating fractal geometry in Houdini.
Cheers,
Grzegorz
Take a look at the following link:
http://sweb.cityu.edu.hk/sm4123/ [sweb.cityu.edu.hk]
One of the tutorials (might be no. 8 or 9) deals with creating fractal geometry in Houdini.
Cheers,
Grzegorz
- rurik2000
- Member
- 87 posts
- Joined: Aug. 2009
- Offline
- aiworks
- Member
- 130 posts
- Joined: April 2009
- Offline
- smkam
- Member
- 7 posts
- Joined:
- Offline
Because the semester begins, and I would like to prepare some modification on the course notes, so I remove the PDFs temporary (will be added back on the lesson date).
Meanwhile you can download the “old” version of my notes:
http://sweb.cityu.edu.hk/sm5320/ [sweb.cityu.edu.hk]
Lesson 10 and 11 are about L-system and (a little bit) fractals.
Kam
Meanwhile you can download the “old” version of my notes:
http://sweb.cityu.edu.hk/sm5320/ [sweb.cityu.edu.hk]
Lesson 10 and 11 are about L-system and (a little bit) fractals.
Kam
-
- Quick Links