Search - User list
Full Version: Rotating pyro and smoke source
Root » Houdini Indie and Apprentice » Rotating pyro and smoke source
eschwab
For some reason no matter how I translate this it doesn't work correctly.
So if I want a smoke or fire source that has velocity in a specific direction. I added a v attribute with velocity in the Y axis only. It works as expected but if I rotate the pyro source the velocity stays in the Y direction and does not rotate with the object. What is the correct way to do this?


reuben94
Something like this?
eschwab
reuben94
Something like this?

Yes that works! I'll have to go through and see what's different between yours and mine. One thing I noticed was I was doing
v@v = {0,1,0};
and you were doing
v@v = set(0,1,0);

Is one way more correct?
reuben94
I always use ‘set’ whenever i'm defining a vector. It's not always necessary, but I do it regardless. I don't fully understand it myself, but using a set was necessary because I was multiplying by a channel float ‘mult’. Without ‘set’ my ‘v’ values default to 0.

I don't think the ‘set’ function was your problem. I'm guessing your problem had to do with global and object space. I'm assuming the pyro source node is creating values that stick to global space. In your case, you want them to stick to object space. That's what i've done in my example, by defining ‘v’ before my transform node.

It's like the tube is a canvas and the ‘v’ attribute is a painting of an arrow pointing upwards. The transform is just some guy rotating the canvas 90 degrees. The arrow is still pointing up in object space, but just rotated in global space.

I'm not a professional on this topic, so that might not have made much sense.
eschwab
Ok I found out what was happening. I was having a hard time getting my @v into the volume so I was using the velocity parameter in the Pyro Source. The reason why it wasn't working was because it doesn't transfer the @v if your Pyro Source uses volume. Your example used surface. To use the volume you have to put in an Attribute Transfer node in to add the @v to the volume that is created.
reuben94
I see. You can also use a vdbfrompolygons if you just want to use the whole tube as a volume. You just need to create a fogvdb and source ‘point.v’ in ‘surface attributes’. Either way works.
eschwab
Thank you for all the help. I actually tried that first and for some reason it wasn't working for me. I just redid a test real quick and it worked though.
I also learned another trick at the end of your nodes CONVERTVDB to save some memory.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB