Jump to content

fluid mapping


MENOZ

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!

Link to comment
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)

Link to comment
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?

Link to comment
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
Link to comment
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.

Link to comment
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

Link to comment
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

Link to comment
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:

Link to comment
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?

Link to comment
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.

Link to comment
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

Link to comment
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.

Link to comment
Share on other sites

  • 4 years later...

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
Link to comment
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?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...