Jump to content
charliejh

Houdini 15 Rain Effect

Recommended Posts

Hello,

First post and relatively new to Houdini. 

Im looking to produce a rain effect. I figure the best way is to use a particle emitter from a grid. Basically for the shot I am doing, there is a car driving straight on a road and I need some rain to hit the front of the car and the windscreen. The rain needs to collide with the car and I am also looking to produce the streaking effect as the rain slides along the car.

My main question is how to emit less particles, randomly across the object its emitting from. Also, how do you make the particles tiny (raindrop size) rather than coming down in one giant blob. 

I've been looking for some tutorials for a few days now and I have found nothing.

Any help appreciated, thankyou

 

Charlie

Edited by charliejh

Share this post


Link to post
Share on other sites

hey Charlie,

I'm a beginner too, so I won't provide all the help, but,

for the giant blob default look of your particle, it is controllable with the pscale attribute. So if you add a "point wrangle" node after the node that display your particles (dop I/O node called import source if you used the shelf tool) and enter this : @pscale = 0.01;

you will control the particle scale. 0.01 is a 1cm particle.

The amount of particles is controlled in the "birth" tab of the POPsource in you DOP context.

For the rest, you'll probably need to break it down into falling rain -> spawn into little pop splash on car + spawn into constrained pop to car geo...

I can do that very well in 3dsMAX, but I', not there with houdini yet. Tho it should be an easy task for Houdini.

 

Share this post


Link to post
Share on other sites

Hey you could emit particles randomly across the grid by adding noise to the Cd attribute of the grid and emitting based on the color attribute and you can animate the noise if you want to for a more randomized look

Share this post


Link to post
Share on other sites

If you google the topic, it does lead back to a link on Od Force with an example file.

Share this post


Link to post
Share on other sites
5 hours ago, 6ril said:

I can do that very well in 3dsMAX, but I', not there with houdini yet. Tho it should be an easy task for Houdini.

LOL, having migrated from Max myself it's kinda funny to watch other people thinking some things will be as easy/easier than in Max - well, for this stuff, they are NOT. ;)

This is actually something that is really tricky to get working good in Houdini, compared to PFlow or Thinking Particles - grouping/streaming particles, having different rules for different particles. That's just not as easy to setup in Houdini. You would think they are, you have both streams and groups in POPs, but in reality, getting particles to behave, it's just not very easy.

  • Like 3

Share this post


Link to post
Share on other sites
2 minutes ago, Farmfield said:

LOL, having migrated from Max myself it's kinda funny to watch other people thinking some things will be as easy/easier than in Max - well, for this stuff, they are NOT. ;)

This is actually something that is really tricky to get working good in Houdini, compared to PFlow or Thinking Particles - grouping/streaming particles, having different rules for different particles. That's just not as easy to setup in Houdini. You would think they are, you have both streams and groups in POPs, but in reality, getting particles to behave, it's just not very easy.

maybe you're just not good enough yet with houdini, don't worry johnny, it will come ;)

Glad you had a LOL (really?)

Share this post


Link to post
Share on other sites

Yupp, LOL, because your assumption is one I have made myself and it ended up biting me in the ass - and I'm talking saltwater crocodile biting, not som Pug nibbling. But you know what, just because of this I'm gonna start a specific thread about doing recursive splitting using groups/streams inside a single POP. Time to take this sh!t to the next level. The TP level. ;)

As for not being good enough with Houdini, unless you are one of the developers, not sure anyone is - or that it's really possible, even... :D

  • Like 2

Share this post


Link to post
Share on other sites

How powerful is TP compared to POPs? I hear this a lot. So if we can lay out all the things that are easy to do in TP but hard in Houdini, maybe we can solve these problems by creating some setups. I also couldn't make very complex rules using POP streams. They feel a little incomplete to me.

Share this post


Link to post
Share on other sites
6 minutes ago, magneto said:

How powerful is TP compared to POPs? I hear this a lot. So if we can lay out all the things that are easy to do in TP but hard in Houdini, maybe we can solve these problems by creating some setups. I also couldn't make very complex rules using POP streams. They feel a little incomplete to me.

Sorry for the previous post but the forum completely bugged out on me, refused to let me delete or write anything in it.

Anyhow, regarding TP - yeah, it's a powerhouse in itself, trending on being a standalone application, so it's seriously powerful. But it's stuck inside 3ds Max, so that sucks. ;)

But the more important point is the workflow in TP, how you set stuff up. So you have groups (systems) and you have events (dynamics) and they are handled sequentially. When you understand the workflow, it's amazingly powerful, so easy to shuffle particles between groups and do stuff with them based on what group they are in. Dunno if this makes sense to anyone else, but it's kinda like if you were to stack POP networks into eachother inside a Solver SOP - so you would handle the groups in SOPs and feed them into different POP's depending on what group they were in, then feed the combined POP output back into SOP's - but do this for each timestep.

Oh, and a particle can be anything, including a mesh. And if you fracture it inside TP, each mesh fragment becomes a particle. It's crazy powerful, especially for doing recursive type setups, like fracturing based on rules and feeding the fragments back for fracturing again, etc... This is 100% setup and simmed in one TP network...

 

  • Like 2

Share this post


Link to post
Share on other sites

Oh, and I created this thread specifically to try to sort this out once and for all, how particles groups/streams are handled by the solver. Doing a setup like that just can't be that hard, at least if you know how. :D

 

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, Farmfield said:

Yupp, LOL, because your assumption is one I have made myself and it ended up biting me in the ass - and I'm talking saltwater crocodile biting, not som Pug nibbling. But you know what, just because of this I'm gonna start a specific thread about doing recursive splitting using groups/streams inside a single POP. Time to take this sh!t to the next level. The TP level. ;)

As for not being good enough with Houdini, unless you are one of the developers, not sure anyone is - or that it's really possible, even... :D

I salute you initiative ! I bet we will learn a lot following your thread, and I thank you in advance ;)

and by the way, I was kidding about you not been good enough, I haven't touch the pop world yet and I've seen stuff you made that are pretty cool.

Also, seems to me that you don't need to be one of the developers to be really good at houdini, I seen really amazing work here on the forum.

I'm pretty sure many forum members could tackle that pop challenge. Have you check the link Atom posted here?

Share this post


Link to post
Share on other sites

You wrote "good enough" - I just set my bar high! :D

As for the streams/groups - no, I'm not at all sure this is something easily solved. I believe SideFX implemented the streams to solve the inconsistent behaviour inherent with using groups in POPs, though not sure if they solved anything or just made it even more unintuitive, hehe... 

Oh, and what Atom posted was not about this issue, that was about getting particles to stick to a surface, follow and release from that surface. The issue I'm pointing to is spawning/replicating particles and/or handling them in streams/groups.

Share this post


Link to post
Share on other sites

The link provides an example for part of the effect, maybe the hardest part. This is a multi-step effect. The drops falling, the puddle splashes and the traveling along a collision surface.

Also Thinking Particles are in C4D as well.

Share this post


Link to post
Share on other sites

Thanks for all the replies everyone,

I think im just way too out of my league here, I dont understand where to tell where my particles are coming from (autodopnetwork?), or where to place the pop wrangle node, or how to add noise etc. 
 

I have a solid list of problems I have come across that have just absolutely spun me out and I cant make sense of past forum posts (ranging from 2003 onwards).

1) For the rain, is it best to use a fluid emitter from the particle fluids shelf, eg emit from a grid place above the road and car?

2) Or should i select the grid and hit source particles instead (in the particles shelf) this seems to make quick sphericle particles and i can make them look like water, but I do not know how to change their size, shape etc. And the main problem with this one is I cant make them collide with the geometry, even after making the geometry an RBD object

3)Speaking of geometry, what is the best way to import my animated geometry and camera into houdini (from maya)? fbx? abc? obj? I have tried all these and fbx seems to work best but it ruins my camera movement.

4) If i use a particle emitter (from particle fluids shelf), there seems to be an invisible bounding box (can see it when inside dopnetwork) that restiricts where the particles can appear. This is a problem because the straight road of which the car travels along is much much longer than this box, and so I cannot stretch the emitter to the length of the road. Is there a way to change the size of this bounding box?

5) Again, if using this particle emitter, I simply cannot figure out how to make the particles tiny (like raindrops) and have a solid distance from eachother. It just always looks like a torrent of water coming down rather than rain. 

 

These are my main problems. Sorry I know this must be pretty infuriating to try to explain but im just not too familiar with attributes and nodes in houdini. But i have the motivation to learn so here I am.

I've attached a file with the geometry imported via fbx, as you can see the camera is kind of stuck down the bottom rather than following the car closely. 

Thanks for all the help.

 

Charlie

Car.hipnc

Share this post


Link to post
Share on other sites

As far as I can tell, the SideFX rain OTL asset seems to have all the features you need. You need to reduce your car to a single object. Then you plug a grid into the Rain asset as the emitter, a grid into the Rain asset as a ground plane and your single obstacle object of the car. FBX is difficult to work with in these kind of situations because it is so distributed and there is a lot of extra work re-consolidating all those objects back into a single object. Try exporting the FBX file as an OBJ instead then re-create the car motion as an animation inside of Houdini.

In this setup I passed a PolyReduced version of the car to the Rain Asset for collision detect and it worked fine. I dropped the percentage to the floor, 1% of the original mesh geometry.

 

Untitled-1.jpg

Share this post


Link to post
Share on other sites

Thanks atom that was really helpful.

It helps to see all the node positions and how they connect. I have the rain working nicely and it collides somewhat well with my car geo. however, it seems the rain is sliding down the car on the sides but it is about a foot off of the car geo. This is a very small probelm as the car will be moving anyway and you probably wont notice. 

Re-animating the car in houdini isnt an option because I have been sent the camera movement and car movement from another team member and that would make their job redundant. After I have sorted the rain out with the car in a still position, then ill experiment with animation.

Also, how do I assign a material (water shader) to the particles? I have an environment light in place but just want to see what they look like with the basic liquid shader.

Thanks for the help

 

Charlie

Share this post


Link to post
Share on other sites

You wouldn't be re-animating the car in that sense, but rather you'd be doing some work to extract the car's animation being handed to you so that you could attach your own model to it and make it easier on you when it comes to simulation.

Here's a Wrangle snippet example from a similar situation I found myself in where I was being given an Alembic export of a car's animation from 3D Max, but at the same time (and on a very short schedule) I was wanting to make changes to the car's base geometry that of course would be very difficult to do on a moving Alembic file without a zeroed out car in it.

This code is what I ran on the emblems in the middle of each wheel. I did a blast to isolate only them from the car, and then in a ForLoop running on the primitives I built up an orientation matrix using two sets of opposite points on each emblem.

Quote

 

vector PX0 = point(0, "P", 20);
vector PX1 = point(0, "P", 12);
vector PY0 = point(0, "P", 1);
vector PY1 = point(0, "P", 7);


v@up = PX1 - PX0;
v@N = PY1 - PY0;

if (@ptnum > 0){
    removepoint(geoself(),@ptnum);
}

 

Point 0 here was the middle point of the emblems, and is the only point I was interested in keeping since I'd be running a Copy SOP with it later, an Add SOP after the Wrangle set to "Delete Geometry But Keep The Points" takes care of that. I then copied my wheel + tire geometry onto each of these points.

I did a similar thing to find a point on the car's body to reattach to as well, forming a basis of 4 opposite points on the roof of the car to built an orientation from. Then everything other than the wheels attaches to this point.

Share this post


Link to post
Share on other sites

You could take the FBX and export it back out as a OBJ sequence. Use that OBJ sequence as your File input for the collision object inside the rain generator. Extend the rain grid (or animate it) along the length of the road. Just don't merge the collision object back into the final rain output. You will have just the rain colliding against an invisible object. Put your rain material in the material slot. Use the original FBX for the rest of the scene.

Edited by Atom

Share this post


Link to post
Share on other sites

Thanks for the replies,

I worked it out, it was the transform node below the poly reduce, it was raised above the geometry for some reason but I just zero'd it back out. 

So far so good

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×