I'm just learning Houdini (this is my first post here) so I'm hoping someone will find this question obvious and help me out…
The Orbit POP has many different center types, but they all seem to be ways to define a point about which everything orbits. But what if I want everything to orbit about the axis without introducing axial motion, to simply orbit around a line? Like a stack of pancakes on a turntable…
Mike Anderson
Orbit POP: how do I use a line as the center?
10501 13 2- mikela
- Member
- 27 posts
- Joined: July 2005
- Offline
- Ondrej
- Staff
- 1072 posts
- Joined: July 2005
- Offline
Each individual particle can orbit around a different center point. For example, try a default location and a default orbit. Set the orbit center to be the center point, turn on override center point, and set the z component to be $ID/100 and hit play. This results in the first particular orbit around (0, 0, 0.01), the second around (0, 0, 0.02), and so on.
Hopefully that can get you started.
Hopefully that can get you started.
- mikela
- Member
- 27 posts
- Joined: July 2005
- Offline
- Ondrej
- Staff
- 1072 posts
- Joined: July 2005
- Offline
- tallkien
- Member
- 225 posts
- Joined: July 2005
- Offline
- mikela
- Member
- 27 posts
- Joined: July 2005
- Offline
There is a Side Effects demo that demonstrates the orbit around the tangent of a spline very nicely. It's a tornado entitled “Vortex,” and maybe someone here can tell you where to find it. I got a copy from a friend and could post it to my own server if I hear on good authority that Side Effects won't mind.
I tried to make my own tornado by assigning point normals to samples on a spline, with some success, but I was flabbergasted when I discovered someone at Side Effects had built something with the same features, but built much more elegantly. I'm still learning from it.
The demo creates a curve with point normals pointing along the curve, and then uses it as input for two identical Source POPs. One Source POP goes to a Group POP whose group is the Orbit POP's center Group. The other goes to a Property POP, then an Upvector POP, then an Instance POP, then a Group POP (the source group for the Orbit POP). This chain of POPs describes the particles in orbit around the curve. The particles' axes are described in the Property POP's “Orbit” tab as $NX, $NY, $NZ, plus some noise. This works because the particles are birthed on the curve and take on the curve's normal. The Property Pop is also used to define the radius, speed, and orbit index. The Upvector POP defines the particles' individual upvectors according to the $OAXISX, $OAXISY, $OAXISZ defined in the Property POP. The two group POPs are combined in a Collect POP, then funneled into the Orbit POP.
Hope I didn't confuse you too much…I think I confused myself a little. So maybe I'll post that vortex.hip next time I check back here…
Mike
I tried to make my own tornado by assigning point normals to samples on a spline, with some success, but I was flabbergasted when I discovered someone at Side Effects had built something with the same features, but built much more elegantly. I'm still learning from it.
The demo creates a curve with point normals pointing along the curve, and then uses it as input for two identical Source POPs. One Source POP goes to a Group POP whose group is the Orbit POP's center Group. The other goes to a Property POP, then an Upvector POP, then an Instance POP, then a Group POP (the source group for the Orbit POP). This chain of POPs describes the particles in orbit around the curve. The particles' axes are described in the Property POP's “Orbit” tab as $NX, $NY, $NZ, plus some noise. This works because the particles are birthed on the curve and take on the curve's normal. The Property Pop is also used to define the radius, speed, and orbit index. The Upvector POP defines the particles' individual upvectors according to the $OAXISX, $OAXISY, $OAXISZ defined in the Property POP. The two group POPs are combined in a Collect POP, then funneled into the Orbit POP.
Hope I didn't confuse you too much…I think I confused myself a little. So maybe I'll post that vortex.hip next time I check back here…
Mike
- tallkien
- Member
- 225 posts
- Joined: July 2005
- Offline
Amazing coincidence (if there is such a thing) coz last night i was hacking the exact same demo
I wasn't aware that the source POP would carry along point normals if the existed on the source SOP, Some more of houdini's voodoo at work :wink: I figured the property and upVector pops would have some significant role to play in what I was trying to achieve, just went right past $N? :?
My previous company had ordered an eval of houdini5 some time ago so I was lucky to have access to the demo material. Lifeline for us n00bs
Anyway thanks a lot mikela, really appreciate it
One question though, couldn't quite understand the Orbit Index= $ORIGIN+1 bit
What exactly is the Orbit Index and how is it used?
Really wish more studios in India would start using Houdini 8) Just love it
I wasn't aware that the source POP would carry along point normals if the existed on the source SOP, Some more of houdini's voodoo at work :wink: I figured the property and upVector pops would have some significant role to play in what I was trying to achieve, just went right past $N? :?
My previous company had ordered an eval of houdini5 some time ago so I was lucky to have access to the demo material. Lifeline for us n00bs
Anyway thanks a lot mikela, really appreciate it
One question though, couldn't quite understand the Orbit Index= $ORIGIN+1 bit
What exactly is the Orbit Index and how is it used?
Really wish more studios in India would start using Houdini 8) Just love it
- tallkien
- Member
- 225 posts
- Joined: July 2005
- Offline
- cytrox
- Member
- 3 posts
- Joined: July 2005
- Offline
I had also a look at this demo, but didn't played with it yet.
I should still be available at www.vislab.usyd.edu.au, but I don't know the exact url. (something like http://www.vislab.usyd.edu.au/sidefx/cd2_5.X.XXX, [vislab.usyd.edu.au] but can't remeber the exact version).
IIRC, the actual implentation of the POP network differs from the one suggested in the comments.
Instead of birthing 101 particles at each frame with a lifespan of 1 frame (so that the particles represent the current position of the curve), simply 101 particles get birthed at frame 1 with a lifespan of 100 secs.
Perhaps you can't animate the curve because of that?
Cheers
Jens
I should still be available at www.vislab.usyd.edu.au, but I don't know the exact url. (something like http://www.vislab.usyd.edu.au/sidefx/cd2_5.X.XXX, [vislab.usyd.edu.au] but can't remeber the exact version).
IIRC, the actual implentation of the POP network differs from the one suggested in the comments.
Instead of birthing 101 particles at each frame with a lifespan of 1 frame (so that the particles represent the current position of the curve), simply 101 particles get birthed at frame 1 with a lifespan of 100 secs.
Perhaps you can't animate the curve because of that?
Cheers
Jens
- tallkien
- Member
- 225 posts
- Joined: July 2005
- Offline
IIRC, the actual implentation of the POP network differs from the one suggested in the comments.
Instead of birthing 101 particles at each frame with a lifespan of 1 frame (so that the particles represent the current position of the curve), simply 101 particles get birthed at frame 1 with a lifespan of 100 secs.
Yeah I figured that part out. The comments just were'nt making any sense. I modified the source to actually birth particles at each frame and live for one frame, so at any given frame the spline group has 101 particles that follow the animated curve closely enough( the count doesn't change so i assume thats ok). The problem is the particles' center. The orbitting particles no longer orbit around individual particles, instead they start orbitting around 0,0,0. This only happens if the spline is animated. I just added a simple xform before the carve_out sop. The Orbit Axis is behaving as expected (using $N?) . I have a feeling $T* also needs to be passed down, just not sure how or where.
will fool around some more and get back
thanks
tallkien
- Shannon
- Member
- 48 posts
- Joined: July 2005
- Offline
- cytrox
- Member
- 3 posts
- Joined: July 2005
- Offline
I just played around a little with it, and I think I got it to work (well kind of).
I removed the group1 node, and set instead in the source1 the birth group to ‘spline’ and impulse activation to constant 1,
and changed in the orbit1 node the orbit index from particle id to particle order,
and now the particles behave correctly when the spline curve is animated at SOP level (just added an xform directly after the model_spline_curve SOP).
The only thing is, during the first few frames a few particles go crazy, but after that, everything seems to work fine.
I removed the group1 node, and set instead in the source1 the birth group to ‘spline’ and impulse activation to constant 1,
and changed in the orbit1 node the orbit index from particle id to particle order,
and now the particles behave correctly when the spline curve is animated at SOP level (just added an xform directly after the model_spline_curve SOP).
The only thing is, during the first few frames a few particles go crazy, but after that, everything seems to work fine.
- tallkien
- Member
- 225 posts
- Joined: July 2005
- Offline
- cytrox
- Member
- 3 posts
- Joined: July 2005
- Offline
-
- Quick Links