Jump to content

Is it possible to up-res the new sparse pyro solver??


gramx

Recommended Posts

Hi,

Loving the speed of the new sparse solver in Houdini 18. I have a job where I have a medium res simulation and I need to upres it for final render without the motion changing to much. I would usually use the Up-Res shelf tool to set this up, but have found it doesn't accept the sparse solver as a source. Is it possible to manually set these up, has anyone tried it?

Thanks

Graham

Link to comment
Share on other sites

4 hours ago, gramx said:

Hi,

Loving the speed of the new sparse solver in Houdini 18. I have a job where I have a medium res simulation and I need to upres it for final render without the motion changing to much. I would usually use the Up-Res shelf tool to set this up, but have found it doesn't accept the sparse solver as a source. Is it possible to manually set these up, has anyone tried it?

Thanks

Graham

Hey Graham!

I think is all about to update the up-rez pipeline to make it sparse. I think is not that hard to do it!

Cheers!

Alejandro

Link to comment
Share on other sites

On 02/02/2020 at 1:57 AM, bunker said:

you can also duplicate your DOPnet and disable everything related to vel since you copy it from the loweres sim
eg: forces/buoyancy/vel advection/projection
then just copy "compute turb","ramp turbscale","primary noise" from the gasUpres solver and you get a sparse upres.
https://vimeo.com/388758247

Thanks for the tip :)

Link to comment
Share on other sites

  • 2 weeks later...
On 2/2/2020 at 3:57 AM, bunker said:

you can also duplicate your DOPnet and disable everything related to vel since you copy it from the loweres sim
eg: forces/buoyancy/vel advection/projection
then just copy "compute turb","ramp turbscale","primary noise" from the gasUpres solver and you get a sparse upres.
https://vimeo.com/388758247

Thank you Bunker, A simple hip would be great if it's possible.

Link to comment
Share on other sites

  • 2 months later...

Hi folks !

I am working on a sparse pyro upres on my 'sparse' time (lol). I tryed to automate as much as possible the process by normalizing inputs and coding a python script that copy and paste all the params of the lowres simulation to the upres node. So the only thing to work with after matching params from the script is the noise / dissipation of the upres.

I added a hip with hda in the link. The hip is annoted to guide you through the process.

https://drive.google.com/drive/folders/1H4Y0HNELDJ6lmHsM43eEI_lRgNuCEaxX?usp=sharing

 

the pipeline is fairly simple :
1. add a configure input node, it will merge all inputs from low res sim and source to normalize and rename fields

2. add the sparse pyro upres node

3. In the tab match properties of the upres node drag the lowres pyro and click match properties

4. enjoy

The sparse solver itself is a deeply modified sparse pyro where you basicly cancel all nodes relatives to vel advection / projection and import the vel from the lowres in copy mode. Then you can add your sources (without the vel or v sourcing since it has already been calculated in the lowres) and add some noise. Since vel is in copy your noise won't last in the sim so i created a noise channel in the smoke object that is advected by the vel and merge to the vel.

You can also simulate your low res without color and add color to your upres source and simulate an upres with color, it only needs a Cd and Alpha channel.

  • Like 5
Link to comment
Share on other sites

On 07/05/2020 at 6:18 PM, k2p8 said:

Hi folks !

I am working on a sparse pyro upres on my 'sparse' time (lol). I tryed to automate as much as possible the process by normalizing inputs and coding a python script that copy and paste all the params of the lowres simulation to the upres node. So the only thing to work with after matching params from the script is the noise / dissipation of the upres.

I added a hip with hda in the link. The hip is annoted to guide you through the process.

https://drive.google.com/drive/folders/1H4Y0HNELDJ6lmHsM43eEI_lRgNuCEaxX?usp=sharing

 

the pipeline is fairly simple :
1. add a configure input node, it will merge all inputs from low res sim and source to normalize and rename fields

2. add the sparse pyro upres node

3. In the tab match properties of the upres node drag the lowres pyro and click match properties

4. enjoy

The sparse solver itself is a deeply modified sparse pyro where you basicly cancel all nodes relatives to vel advection / projection and import the vel from the lowres in copy mode. Then you can add your sources (without the vel or v sourcing since it has already been calculated in the lowres) and add some noise. Since vel is in copy your noise won't last in the sim so i created a noise channel in the smoke object that is advected by the vel and merge to the vel.

You can also simulate your low res without color and add color to your upres source and simulate an upres with color, it only needs a Cd and Alpha channel.

Thanks for sharing this :)

 

Link to comment
Share on other sites

  • 4 weeks later...
  • 5 months later...

Hi @eunchae,

The basic principle of an upres is to make a new simulation with a pre-existing velocity grid that you use to drive a new dye (density / temperature).

Your new simulation should have smaller voxels and parameters close to the lowres (like temperature diffusion, flame amount, time step) if you want this new version to be close to the lowres. You then copy the lowres velocity and simply advect the upres by it. This way you only perform heavy computation like divergent free velocity (ensure the conservation of the mass of the fluid) and the boundary collision on the lowres, the upres solver only has an advect for the density / temperature / ect. all other nodes relative to velocity enforcement / computation are deseabled which allow you to quiclky compute the upres and skip all the heavy parts.

Then you can add a little amount of noise with an add operation to the copyed lowres velocity to give more details to your upres. This small amount is almost divergent free on a large scale so it should not be a problem. You can add any forces at this process in the upres, but, the divergent free velocity node being desabled, only already divergent free forces should be added. Otherwise your smoke will compress into itself. And you should only add forces that do not push your upres smoke to far from the lowres, since you simply copy the lowres velocity, no new velocity will be computed outside of this bounds. So, for example, adding a wind, which is divergent free, is not a good option since your smoke will crash into the bounds of the lowres.

There is some parameters that do not scale well with the upres, usually it is all parameters or operations that need neighbours voxels to be performed, like temperature diffusion. Since you change the size of the voxels, those operations have an overall result which is generaly not the same as the lowres. You could correct that by sampling the lowres version of the simulation and modify the output value, but you lose a lot of details by doing so. So in this case, it is better to slightly twik the upres simulation to perform better, by increasing or reducing the corresponding parameters. 

  • Like 1
Link to comment
Share on other sites

On 2020. 11. 9. at 2:49 AM, k2p8 said:

Hi @eunchae,

The basic principle of an upres is to make a new simulation with a pre-existing velocity grid that you use to drive a new dye (density / temperature).

Your new simulation should have smaller voxels and parameters close to the lowres (like temperature diffusion, flame amount, time step) if you want this new version to be close to the lowres. You then copy the lowres velocity and simply advect the upres by it. This way you only perform heavy computation like divergent free velocity (ensure the conservation of the mass of the fluid) and the boundary collision on the lowres, the upres solver only has an advect for the density / temperature / ect. all other nodes relative to velocity enforcement / computation are deseabled which allow you to quiclky compute the upres and skip all the heavy parts.

Then you can add a little amount of noise with an add operation to the copyed lowres velocity to give more details to your upres. This small amount is almost divergent free on a large scale so it should not be a problem. You can add any forces at this process in the upres, but, the divergent free velocity node being desabled, only already divergent free forces should be added. Otherwise your smoke will compress into itself. And you should only add forces that do not push your upres smoke to far from the lowres, since you simply copy the lowres velocity, no new velocity will be computed outside of this bounds. So, for example, adding a wind, which is divergent free, is not a good option since your smoke will crash into the bounds of the lowres.

There is some parameters that do not scale well with the upres, usually it is all parameters or operations that need neighbours voxels to be performed, like temperature diffusion. Since you change the size of the voxels, those operations have an overall result which is generaly not the same as the lowres. You could correct that by sampling the lowres version of the simulation and modify the output value, but you lose a lot of details by doing so. So in this case, it is better to slightly twik the upres simulation to perform better, by increasing or reducing the corresponding parameters. 

Oh my god... I was impressed with your kindness. It has helped me a lot. Thank you very much!!

Link to comment
Share on other sites

  • 1 year later...

Hi Guys!

I trying to implement those uprez solutions in my setup but i not getting an good result at all.

i followed the tutorial by @bunker, i haveing issues with colision, it seems that the uprez fire is overlaping the collider.

also the flames are getting crazy like going far from the low res bounds

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...