Jump to content
MENOZ

fluid mapping

Recommended Posts

hello.

when i render a volume using a texture, the texture will not follow the movement of my volume as it deforms, it seems that the volume pass through the texture.

in maya fluids i can set the texture to be fixed in space, or setting them to GRID. this creates a grid that will deform the texture, and follow the fluid's movement.

in fumefx also i think there ise a sort of fluid mapping, i don't know if it works like the maya approach.

how can i do the same in houdini?

thank you!

Share this post


Link to post
Share on other sites
hello.

when i render a volume using a texture, the texture will not follow the movement of my volume as it deforms, it seems that the volume pass through the texture.

in maya fluids i can set the texture to be fixed in space, or setting them to GRID. this creates a grid that will deform the texture, and follow the fluid's movement.

in fumefx also i think there ise a sort of fluid mapping, i don't know if it works like the maya approach.

how can i do the same in houdini?

thank you!

which version of houdini are you using? Houdini 9.5 should import the rest attributes for you automatically when you are doing this from a volume. If you're using Houdini 9.1 or earlier you might want to get the newest version.

If that's not an option for you, you should be able to use a dop import node to import the rest volume from your dop simulation.

(these might help you if you're not sure how to do this)

Share this post


Link to post
Share on other sites

oh yeah, i see now :D

so the rest attribute that i found in the volume is the counterpart of the restSOP?

i see that in the billowysmoke shader there is a restVOP set to texture.

if i apply a texture to an object(non volumetric) and apply a restSOP, when i deform my object i don't see differences between setting the restVOP to "object" or "texture". the texture deforms correctly in both cases.

so what's the difference from object and texture space?

Share this post


Link to post
Share on other sites

i've done other tests..

i made a simulation using the rest parameter in the solver.

it renders ok, the texture is mapped correctly on moving fluid.

if i go inside the shader and change the restVOP from texture to object or world, the result is exactly the same.

why that?

from the restVOP help.

Checks if the geometry attribute

Share this post


Link to post
Share on other sites
so the options about the space are being used only if i haven't a rest attribute bound to the geometry?

Yes, that's right. It means that you can often get procedural noise/colors etc if you want without necessarily needing to do uv mapping. However, your objects will swim through the procedural stuff.

You use rest when you want stuff to stick to your geometry.

Share this post


Link to post
Share on other sites
Yes, that's right. It means that you can often get procedural noise/colors etc if you want without necessarily needing to do uv mapping. However, your objects will swim through the procedural stuff.

You use rest when you want stuff to stick to your geometry.

ok.

so the options about the space in the restVOP aren't used at all if the geometry has a rest attrbute, right?

sorry my insistence :P

thankyou for your explanation

Share this post


Link to post
Share on other sites
ok.

so the options about the space in the restVOP aren't used at all if the geometry has a rest attrbute, right?

sorry my insistence :P

thankyou for your explanation

As far as I understand, this should be the case, yes.

Share this post


Link to post
Share on other sites
As far as I understand, this should be the case, yes.

thank yo so much!!! :notworthy:

Share this post


Link to post
Share on other sites

can i use the rest on a ISOoffset volume?

how can i do to make it works?

:o

Share this post


Link to post
Share on other sites

i can't find the way to "stick" a volume texture on a ISO ffset volume...

nobody knows how can i do? :(

Share this post


Link to post
Share on other sites

You can create your own three rest volume primitives with the Volume SOP then figure out some way to advect (or move) the volume rest attributes along with your evolving volume if it is deforming or make it up as you go along.

I attached a simple hip file on how to take any incoming geometry and make it renderable with the billowy smoke shader which uses density and rest. I added a trivial time based offset in the second Y rest volume. See the expressions. You can also change the scale of the rest attribute by multiplying and adding to the expressions. $X*0.5 + 1.5 is one example for the first X volume.

iso_volume_with_rest.01.hip

Note: The volume primitive can have a completely different resolution than the rest volumes. See the example file above.

Note: The three Volume Mix SOPs can be replaced with a single VOP Volume SOP and build up the same setup in VOPs.

-jeff

Share this post


Link to post
Share on other sites
You can create your own three rest volume primitives with the Volume SOP then figure out some way to advect (or move) the volume rest attributes along with your evolving volume if it is deforming or make it up as you go along.

I attached a simple hip file on how to take any incoming geometry and make it renderable with the billowy smoke shader which uses density and rest. I added a trivial time based offset in the second Y rest volume. See the expressions. You can also change the scale of the rest attribute by multiplying and adding to the expressions. $X*0.5 + 1.5 is one example for the first X volume.

iso_volume_with_rest.01.hip

Note: The volume primitive can have a completely different resolution than the rest volumes. See the example file above.

Note: The three Volume Mix SOPs can be replaced with a single VOP Volume SOP and build up the same setup in VOPs.

-jeff

thank you so much!

i'm trying to find a way to change the value of the rest voxels, but i can't put in relation the movement\deformation of my object to the value of my voxels.

i should find the value of the voxel with the deformed geometry, and then subtract from the value of the non deformed geometry. i think this should be the way... but i should find the way to change the value of the voxels along with my deforming geo.

how can i put in relation a deforming geometry to a grid of voxels? maybe some space change in vop shader from uv to world? :wacko:

Share this post


Link to post
Share on other sites

i found this thread...

http://forums.odforce.net/index.php?showtopic=7175

from what i understood, i should import my volumeSOP into a dop scalar field. and then bring it back to SOP level. :blink::D

i think something missing..

i guess that i should calculate the rest arrtibute at the DOP level, and then bring it back to SOP.

it's right? for the moment i have no idea on how to do that.

should i use a custom solver with some gas rest microsolver?

this should be the way?

Share this post


Link to post
Share on other sites
thank you so much!

i'm trying to find a way to change the value of the rest voxels, but i can't put in relation the movement\deformation of my object to the value of my voxels.

i should find the value of the voxel with the deformed geometry, and then subtract from the value of the non deformed geometry. i think this should be the way... but i should find the way to change the value of the voxels along with my deforming geo.

how can i put in relation a deforming geometry to a grid of voxels? maybe some space change in vop shader from uv to world? :wacko:

Depending on what you're trying to do, you may be better off putting a point rest attribute on your geometry, scattering points on your geometry, and then copying metaballs to the points and rendering these as volumes. You may find that this workflow is easier than trying to build stuff with an iso offset.

Share this post


Link to post
Share on other sites
Depending on what you're trying to do, you may be better off putting a point rest attribute on your geometry, scattering points on your geometry, and then copying metaballs to the points and rendering these as volumes. You may find that this workflow is easier than trying to build stuff with an iso offset.

thankyou! it works with metaballs!

but the iso offset it's better because it fills the object.

i had no time to try again with the dops.

anyway here's my question: initialize the rest attribute in SOP with the volume SOP and volumemixSOP and then exporting to DOP is meant to affect the rest scalarFieldDOP by running a simulation, right? and not necessarily involving gravity.. dispersion.. diffusion effects of some kind. right?

thankyou

Share this post


Link to post
Share on other sites
thankyou! it works with metaballs!

but the iso offset it's better because it fills the object.

i had no time to try again with the dops.

anyway here's my question: initialize the rest attribute in SOP with the volume SOP and volumemixSOP and then exporting to DOP is meant to affect the rest scalarFieldDOP by running a simulation, right? and not necessarily involving gravity.. dispersion.. diffusion effects of some kind. right?

thankyou

You can create any field in SOPs, and bring it into DOPs and perform operations on it there however you wish. I honestly am not sure how one would get a rest volume to advect properly based on sop level animation though.

Share this post


Link to post
Share on other sites

which version of houdini are you using? Houdini 9.5 should import the rest attributes for you automatically when you are doing this from a volume. If you're using Houdini 9.1 or earlier you might want to get the newest version.

If that's not an option for you, you should be able to use a dop import node to import the rest volume from your dop simulation.

(these might help you if you're not sure how to do this)

rest field generation has to be enabled in advanced tab in order to use rest field in pyro2 in H12 I guess.

Edited by cloudfx

Share this post


Link to post
Share on other sites

You can turn on dual rest on pyrosolver

I've successfully got rest2 vector type field [rest2.x rest2.y rest2.z] however, it is not working with volume vop, which means that if I used the rest position to apply aanoise and multiply with my density, it just remove all the density that I assume rest value is 0? no data?

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

×