not bad for a start, perhaps add some noise to your trigger pattern so it looks less like an expanding sphere or add a slight per point trigger offset so they don't trigger all at the same time.
You are getting a bit of stepping.
Also consider different plants growing at different speeds. The grass might grow faster than the other plant. Again, implement a per point triggeroffset.
Also the animation feels as if it pops at the end of the growth cycle. It would be nice If your grass/plants grow from 0->1 and “sway softly in the wind” from 1->2 and that the blend from growth to swaying is seamless. If it doesn't need to interact, consider making a few animation loops.
Also, just to make the picture complete (even if it is a test) add a ground object so your grass doesn't just float in mid-blackness. This may also lead you to using your growth points to procedurally displace the terrain a little if you wanted to.
Found 247 posts.
Search results Show results as topic list.
Work in Progress » WIP: growing grass
- pclaes
- 257 posts
- Offline
Houdini Indie and Apprentice » Direction of a polygon
- pclaes
- 257 posts
- Offline
Perhaps try a clean sop -> orient polygons and follow it with a reverse if you need to. Then a facet to compute your normals.
Technical Discussion » Tendril like smoke
- pclaes
- 257 posts
- Offline
It looks to me like a combination of two sims:
1) normal smoke sim played normally for the first second with smoke streaming outwards.
2) played in reverse:
smoke sim sourced from curves (L-system or exponential 2D noise pattern (just a high contrast noise pattern… extreme gamma curve) with a radial mask). Also fairly low diffusion so that smoke does not travel very far from the source.
See if you can capture that logo animation, convert it to frames and play it backwards - it should show you that the animation for the tendrils has been reversed.
As for the technical details, do a search for “ink” and “million particles” and “delayed load”.
1) normal smoke sim played normally for the first second with smoke streaming outwards.
2) played in reverse:
smoke sim sourced from curves (L-system or exponential 2D noise pattern (just a high contrast noise pattern… extreme gamma curve) with a radial mask). Also fairly low diffusion so that smoke does not travel very far from the source.
See if you can capture that logo animation, convert it to frames and play it backwards - it should show you that the animation for the tendrils has been reversed.
As for the technical details, do a search for “ink” and “million particles” and “delayed load”.
Technical Discussion » point snap SOP?
- pclaes
- 257 posts
- Offline
Can be done quite easily with pointclouds in a vopsop. I did this as well as I had a need for pointsnapping too and couldn't find it as part of a default sop.
But yes, I agree this functionality should be part of the ray or fuse sop.
But yes, I agree this functionality should be part of the ray or fuse sop.
Houdini Lounge » is there a Contained Fluids Hip file
- pclaes
- 257 posts
- Offline
I'd recommend to build it yourself. It is well explained and I think you will learn the most by recreating it.
Even if someone shares it here, I would still want to create it myself to learn more about chops.
Even if someone shares it here, I would still want to create it myself to learn more about chops.
Technical Discussion » solaris nebula effect
- pclaes
- 257 posts
- Offline
Hi Joe,
thanks for sharing! I can't wait to test it myself . And learn from it as well.
This really deserves it's own thread. That way people can post their resulting images in it.
Great stuff!
thanks for sharing! I can't wait to test it myself . And learn from it as well.
This really deserves it's own thread. That way people can post their resulting images in it.
Great stuff!
Technical Discussion » point "birth" attribute?
- pclaes
- 257 posts
- Offline
You are basically “solving” your geometry. So either you trigger your points in pops or you use a sopsolver. Or you can use chops, but they are not multithreaded and might use the most memory.
sopsolver with multithreaded vops is the fastest way I think.
You will need two attributes: “trigger_frame” and “trigger” which you can use in your sopsoplver or voppop to trigger all kinds of things.
Have a look at the attached file. I added points to show it works when changing topology, but the main focus is on the trigger. The changing topology is not that tricky.
sopsolver with multithreaded vops is the fastest way I think.
You will need two attributes: “trigger_frame” and “trigger” which you can use in your sopsoplver or voppop to trigger all kinds of things.
Have a look at the attached file. I added points to show it works when changing topology, but the main focus is on the trigger. The changing topology is not that tricky.
Houdini Indie and Apprentice » Generative modeling of wobbly sticks: workflow challenge
- pclaes
- 257 posts
- Offline
I've simplified the setup to the bare minimum with only the core functionality in there. Also some more notes on the various operations.
Some of this comes down to data management and really knowing your attributes and nodes a bit in depth. Specifically vector data vs float and what happens when that data goes through a transform or copy sop. Vector data will get modified, float will not.
With the carve sop you can extract points from a line, but it can be an expensive operation when dealing with a large number of primitives.
The other file had some more fancy controls such as that rotation in it. You could take some of the vopsops from this attached file and integrate it in the previous file or the other way around.
The reason why I use vopsops is for speed. When you are not generating or destroying geometry, but simply modifying data, vopsops can multithread and be very fast - even on large datasets.
In the file you will see that the carve sop, delete sop and add sop are the operators used to generate and destroy geometry. Everything else can be done with vops.
This file has different ways of solving the same task, both in sops as in vops. I hope by showing both you will understand the similarities and the limitations.
Vopsops take a while to get used to, but they can speed up your scenes significantly - I would recommend to try and put both files together and understand the vopsops by rebuilding them yourself. The scatter in the other file could just as well be replaced by the “carved end points” coming from this file. (You can also perform the rotation and translation of those points entirely in vops, and generate the lines afterwards. - This would be faster than the copy sop as stamping is expensive.)
working with a list of lists generally happens by using the point number as an index to import attributes in a vopsop.
You can sort or group points and make subsets by branching them off, performing an operation on them and merging them back in with the original stream. Either you perform the operation on an individual group, or you delete everything not in the group. Or you delete by expression/attribute/pattern…
Good luck!
Some of this comes down to data management and really knowing your attributes and nodes a bit in depth. Specifically vector data vs float and what happens when that data goes through a transform or copy sop. Vector data will get modified, float will not.
With the carve sop you can extract points from a line, but it can be an expensive operation when dealing with a large number of primitives.
The other file had some more fancy controls such as that rotation in it. You could take some of the vopsops from this attached file and integrate it in the previous file or the other way around.
The reason why I use vopsops is for speed. When you are not generating or destroying geometry, but simply modifying data, vopsops can multithread and be very fast - even on large datasets.
In the file you will see that the carve sop, delete sop and add sop are the operators used to generate and destroy geometry. Everything else can be done with vops.
This file has different ways of solving the same task, both in sops as in vops. I hope by showing both you will understand the similarities and the limitations.
Vopsops take a while to get used to, but they can speed up your scenes significantly - I would recommend to try and put both files together and understand the vopsops by rebuilding them yourself. The scatter in the other file could just as well be replaced by the “carved end points” coming from this file. (You can also perform the rotation and translation of those points entirely in vops, and generate the lines afterwards. - This would be faster than the copy sop as stamping is expensive.)
working with a list of lists generally happens by using the point number as an index to import attributes in a vopsop.
You can sort or group points and make subsets by branching them off, performing an operation on them and merging them back in with the original stream. Either you perform the operation on an individual group, or you delete everything not in the group. Or you delete by expression/attribute/pattern…
Good luck!
Houdini Indie and Apprentice » Generative modeling of wobbly sticks: workflow challenge
- pclaes
- 257 posts
- Offline
Houdini Indie and Apprentice » Generative modeling of wobbly sticks: workflow challenge
- pclaes
- 257 posts
- Offline
In the attached file I've included two ways to go about it.
A simple way with little control, but fast proof of concept and a more elaborate way with vopsops with a lot more control.
EDIT: oops, didn't see point (D) - lets see if I can put that in.
A simple way with little control, but fast proof of concept and a more elaborate way with vopsops with a lot more control.
EDIT: oops, didn't see point (D) - lets see if I can put that in.
Technical Discussion » Delayed load takes a lot of time before rendering process
- pclaes
- 257 posts
- Offline
I have posted information on my blog regarding this very topic:
http://www.peterclaes.be/blog/ [peterclaes.be]
The answer as to why it is so slow is because all that point/instance information is written into the ifd file. In my vrayprocedural instancer it is not. It is very fast to generate the ifd's because it only creates a single procedural and that procedural will then grab all the points that have been cached to disk before.
But you need to compile your own vrayprocedural, you can not do it out of the box as far as I know. I have shared the source code and a description on how to get started here:
http://www.peterclaes.be/blog/?p=151 [peterclaes.be]
Other users have tested it on Windows 7 as well as linux and it compiles with a couple of warnings. Also the motionblur issue is not sorted yet, but it might get you started with the HDK a lot faster if you are willing to dive into it.
http://www.peterclaes.be/blog/ [peterclaes.be]
The answer as to why it is so slow is because all that point/instance information is written into the ifd file. In my vrayprocedural instancer it is not. It is very fast to generate the ifd's because it only creates a single procedural and that procedural will then grab all the points that have been cached to disk before.
But you need to compile your own vrayprocedural, you can not do it out of the box as far as I know. I have shared the source code and a description on how to get started here:
http://www.peterclaes.be/blog/?p=151 [peterclaes.be]
Other users have tested it on Windows 7 as well as linux and it compiles with a couple of warnings. Also the motionblur issue is not sorted yet, but it might get you started with the HDK a lot faster if you are willing to dive into it.
Houdini Indie and Apprentice » how to get the outline of two partly overlapping polygons
- pclaes
- 257 posts
- Offline
This is using that circle fitting technique. Doesn't work with every shape, but most convex shapes should be fine and even concave shapes that are not to extreme should work too.
In this case it is fairly exact, but a bit more computationally expensive then perhaps other techniques.
In this case it is fairly exact, but a bit more computationally expensive then perhaps other techniques.
Houdini Indie and Apprentice » how to get the outline of two partly overlapping polygons
- pclaes
- 257 posts
- Offline
How accurate does this need to be?
I have had to approximate shapes in the past and I used a “circle/sphere shrinking” approach.
You basically put a low resolution polysphere around your objects, snap them to the object with a ray sop, subdivide, snap them again with a ray sop, subdivide, snap them again… In 2D you use a circle.
This will give you an approximate shape, like a rough collision mesh.
If you want high accuracy I think you will have to experiment with the clip sop and with the new geometry clipping nodes in h11 (the ones to do the voronoi type clipping).
I have had to approximate shapes in the past and I used a “circle/sphere shrinking” approach.
You basically put a low resolution polysphere around your objects, snap them to the object with a ray sop, subdivide, snap them again with a ray sop, subdivide, snap them again… In 2D you use a circle.
This will give you an approximate shape, like a rough collision mesh.
If you want high accuracy I think you will have to experiment with the clip sop and with the new geometry clipping nodes in h11 (the ones to do the voronoi type clipping).
Technical Discussion » Bullet physics implementation and other stuff
- pclaes
- 257 posts
- Offline
cybermax
If somebody know about next alternative way, please let me know.
In SOPS? nope, as far as I know, feedback and file sop are the only way in sops. In DOPs you have the sopsolver, but I've got a strong suspicion you wish to stay out of DOPs .
Technical Discussion » trying to study microSolver, but how ??, please enlight me!!
- pclaes
- 257 posts
- Offline
There will probably be some part of the paper that is new and requires some custom math or vops node, but as mentioned in my thesis most of the calculations you want or need to do already exist through the microsolvers.
I highly recommend you to have a look on page 16-17-18 of the thesis where it covers the section on vortex confinement. This really shows how a lot of the math can be translated into microsolvers. You do require a certain base level of math - you need to know what a cross product does for example.
The vortex confinement micorsolver is an otl made up of lower level microsolvers. That is why I find it such a good example. It shows how to manipulate your field data.
When I was studying some of those papers I found a lot of the papers are not that difficult, they are just written in “a difficult way”. It takes a bit of time to get used to reading papers, but you a lot of the concepts are not new and often papers are focusing on optimizations of previous techniques.
The way I often thought about it it is by treating it as if the operations would be taking place on a particle system or how I would do it if I were working with particles, simply because I already had a lot of experience with them. Not everything translates like that, but a lot does - and I find prototyping some math in vops/vex on points in a vopsop with a sopsolver quite fast.
Then from there you can create a custom field in dops and perform the operations with a gasfieldvop or with the existing microsolvers.
About “the hard math”… you don't need to know too much math to get started. What is so nice about Bridson's book is that he builds up the Navier-Stokes equations from Newton's “F=ma”. His book is a collection of several papers he published over the years and I find he has a nice easy to follow writing style. As soon as you don't know something -> wikipedia is your friend .
I am a very visual guy, so if I don't understand something I will:
*)draw a picture/graph,
*) implement the math in a vopsop and apply it to a sphere/grid to test and see what it does, then step by step see what the math does to the end result and reverse engineer so I get it to do what it needs to do.
*) watch a physics video tutorial (Stanford/MIT have free classes on their websites) or ask a colleague to take a little bit of time to explain it to me.
*) Also often some of the things I am trying to do are already implemented in games/processing, and often they share source code beside their tests/applications, you can have a peek at how they do it. - with the added benefit that they have to cut corners to get their speed. They will often also share their sources of info/references so you have the code as well as the papers.
Also it seems I keep posting this a lot lately as I got tired of posting the same books, but if you haven't seen this list, it helped me in my learning process:
http://www.amazon.co.uk/Technical-Directors-books/lm/R3ES60SQKYX1EM/ref=cm_lmt_dtpa_f_1_rdssss0 [amazon.co.uk]
Good luck with it!
I highly recommend you to have a look on page 16-17-18 of the thesis where it covers the section on vortex confinement. This really shows how a lot of the math can be translated into microsolvers. You do require a certain base level of math - you need to know what a cross product does for example.
The vortex confinement micorsolver is an otl made up of lower level microsolvers. That is why I find it such a good example. It shows how to manipulate your field data.
When I was studying some of those papers I found a lot of the papers are not that difficult, they are just written in “a difficult way”. It takes a bit of time to get used to reading papers, but you a lot of the concepts are not new and often papers are focusing on optimizations of previous techniques.
The way I often thought about it it is by treating it as if the operations would be taking place on a particle system or how I would do it if I were working with particles, simply because I already had a lot of experience with them. Not everything translates like that, but a lot does - and I find prototyping some math in vops/vex on points in a vopsop with a sopsolver quite fast.
Then from there you can create a custom field in dops and perform the operations with a gasfieldvop or with the existing microsolvers.
About “the hard math”… you don't need to know too much math to get started. What is so nice about Bridson's book is that he builds up the Navier-Stokes equations from Newton's “F=ma”. His book is a collection of several papers he published over the years and I find he has a nice easy to follow writing style. As soon as you don't know something -> wikipedia is your friend .
I am a very visual guy, so if I don't understand something I will:
*)draw a picture/graph,
*) implement the math in a vopsop and apply it to a sphere/grid to test and see what it does, then step by step see what the math does to the end result and reverse engineer so I get it to do what it needs to do.
*) watch a physics video tutorial (Stanford/MIT have free classes on their websites) or ask a colleague to take a little bit of time to explain it to me.
*) Also often some of the things I am trying to do are already implemented in games/processing, and often they share source code beside their tests/applications, you can have a peek at how they do it. - with the added benefit that they have to cut corners to get their speed. They will often also share their sources of info/references so you have the code as well as the papers.
Also it seems I keep posting this a lot lately as I got tired of posting the same books, but if you haven't seen this list, it helped me in my learning process:
http://www.amazon.co.uk/Technical-Directors-books/lm/R3ES60SQKYX1EM/ref=cm_lmt_dtpa_f_1_rdssss0 [amazon.co.uk]
Good luck with it!
Technical Discussion » trying to study microSolver, but how ??, please enlight me!!
- pclaes
- 257 posts
- Offline
Or you could try this website .
http://www.peterclaes.be/tutorials/pct_0007.pdf [peterclaes.be]
(Have a look at the references I looked at all the way at the end for more info.)
Julien (bunker) posted some useful info here too:
http://forums.odforce.net/index.php?/topic/12098-some-questions-about-volume-fluids/ [forums.odforce.net]
And this books takes you step by step building towards the fluid equations which is nice:
http://www.amazon.co.uk/Simulation-Computer-Graphics-Robert-Bridson/dp/1568813260/ref=sr_1_1?ie=UTF8&s=books&qid=1292414950&sr=8-1 [amazon.co.uk]
http://www.peterclaes.be/tutorials/pct_0007.pdf [peterclaes.be]
(Have a look at the references I looked at all the way at the end for more info.)
Julien (bunker) posted some useful info here too:
http://forums.odforce.net/index.php?/topic/12098-some-questions-about-volume-fluids/ [forums.odforce.net]
And this books takes you step by step building towards the fluid equations which is nice:
http://www.amazon.co.uk/Simulation-Computer-Graphics-Robert-Bridson/dp/1568813260/ref=sr_1_1?ie=UTF8&s=books&qid=1292414950&sr=8-1 [amazon.co.uk]
Work in Progress » Procedural Tubes
- pclaes
- 257 posts
- Offline
Houdini Indie and Apprentice » how to calculate volume of a geometry regardless of it shape
- pclaes
- 257 posts
- Offline
*) append a measure sop, set it to volume.
*) append an attribpromote sop, set the attribute to “volume”, promore from primitives to detail, promotion method to sum.
Now you have the “volume” detail attribute that should contain the total volume value.
*) read the help file on the measure sop, it states the above.
*) append an attribpromote sop, set the attribute to “volume”, promore from primitives to detail, promotion method to sum.
Now you have the “volume” detail attribute that should contain the total volume value.
*) read the help file on the measure sop, it states the above.
Houdini Indie and Apprentice » Exploding an object into curves... How to?
- pclaes
- 257 posts
- Offline
So each “curve” becomes a single primitive?
This is how to break line segments into primitives (there is almost no other way except for foreach and HDK - I have found the carve to be the fastest):
http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&p=96818#96818 [sidefx.com]
Here's another solution (fairly expensive workaround though):
-) add a wireframe sop, turn off round corners, set the radius to 0
-) append a convert sop, convert to polygons, set connectivity to Columns, set Divisions per Span to U:1 and V:1.
-) append a delete sop, delete by range (defaults will delete every other primitive, which is what you need)
As you can see this has a lot more overhead, also some of the attributes are lost in the process, so you will have to find a way to attribtransfer and attribpromote them correctly.
This is how to break line segments into primitives (there is almost no other way except for foreach and HDK - I have found the carve to be the fastest):
http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&p=96818#96818 [sidefx.com]
Here's another solution (fairly expensive workaround though):
-) add a wireframe sop, turn off round corners, set the radius to 0
-) append a convert sop, convert to polygons, set connectivity to Columns, set Divisions per Span to U:1 and V:1.
-) append a delete sop, delete by range (defaults will delete every other primitive, which is what you need)
As you can see this has a lot more overhead, also some of the attributes are lost in the process, so you will have to find a way to attribtransfer and attribpromote them correctly.
Technical Discussion » Using the Houdini_HDK with window enviroment and V.S
- pclaes
- 257 posts
- Offline
thanks for your efforts!
in regards to the specified format, I simply meant this:
http://www.sidefx.com/index.php?option=com_content&task=blogcategory&id=191&Itemid=345 [sidefx.com]
and here are the specs:
http://www.sidefx.com/images/stories/tutorials/tutorial_submission.pdf [sidefx.com]
It doesn't matter if it is easy, this question gets asked over and over again, so a tutorial is a good idea.
in regards to the specified format, I simply meant this:
http://www.sidefx.com/index.php?option=com_content&task=blogcategory&id=191&Itemid=345 [sidefx.com]
and here are the specs:
http://www.sidefx.com/images/stories/tutorials/tutorial_submission.pdf [sidefx.com]
It doesn't matter if it is easy, this question gets asked over and over again, so a tutorial is a good idea.
-
- Quick Links