2020.20625 - Nvidia flow memory usage + conditions to destroy blocs?


Loving that volume shadow was added to flow, and finally playing a bit with it!
There are couple things that seem odd :smiley:

  1. It took me a second to understand the temperature was controlling when blocs got freed/destroyed.
    Would love to see more options exposed such as (in https://docs.nvidia.com/gameworks/content/artisttools/Flow/FLOWUe4_Grid.html)

Block Allocation

  • Velocity Weight Relative importance of velocity for allocation, 0.0 means not important.
  • Density Weight Relative importance of density for allocation, 0.0 means not important.
  • Temp Weight Relative importance of temperature for allocation, 0.0 means not important.
  • Fuel Weight Relative importance of fuel for allocation, 0.0 means not important.
  • Velocity Threshold Minimum velocity magnitude that is considered relevant.
  • Density Threshold Minimum density magnitude that is considered relevant.
  • Temp Threshold Minimum temperature magnitude that is considered relevant.
  • Fuel Threshold Minimum fuel magnitude that is considered relevant.
  • Importance Threshold Global importance threshold, to scale quality/performance.
  1. Seems related to 1. It seems blocs get destroyed with a pretty high threshold - in a pretty aggressive manner : if I keep temperature forever : cooling rate to 0, as well Temp damping and temp fade to 0 (also is temp damping similar as cooling rate? seems one is not needed), all the blocs stay, but with cooling rate non null, blocs get destroyed far too early (see videos below)

  2. Probably related to 2 : sadly getting the same popping with the blocs whether mem usage is 0.4 or 0.1 - though the mem usage of the TOP does go from 1.5 go to 5.6 gigs! Otherwise seeing no difference, is this working as intended?

This is with mem usage .1 : https://drive.google.com/open?id=1m5Xtfg7i_GB1c-c7gTzn3PJx8d5ImrVN
This is with mem usage .4 : https://drive.google.com/open?id=1RIfYSF0uPDcXru_85B5vmFQ2fiEja8o2

  1. Would love to get the cell size setting exposed, that seems like the main quality control setting.

  2. Sim size feels counter intuitive (I get a much higher fps with a bigger grid?) and linked to bloc size? Not sure how that relates to Virtual Grid Dimension

  3. Other controls I’d love to see exposed
    Rendering mode Provides access to useful visualizations, such as a density visualization (render mode 1) and a velocity field visualization (render mode 5). Render mode 0 is the default color map mode.

  • Velocity MacCormack Blend Factor Higher values make a sharper appearance, but with more artifacts.
  • Density MacCormack Blend Factor Higher values make a sharper appearance, but with more artifacts.

Also not sure what “Override Emitter Intensity Mask” does on the volume page, except I had to have it on to see the shadow.

Last thing that seems counter intuitive - I had to put a constant in the color ramp OP on the emitter otherwise it seems there’s a default white to black ramp?

Thanks a lot!

1 Like

Thanks for your feedback, this might take some time to get to but we’ll go through everything.

1 Like

Hi, I’ve been doing an internship with Derivative, and I worked with the developers on some of the Nvidia Flow stuff.

Now that you’ve mention it, I agree that it would be good to expose the allocation parameters, the simulation resolution (or cell size) and the rendering options. Hopefully those can be added to a release soon!

I think you’re right that 1-3 are all related. The mem usage param controls the max number of blocks allocated it doesn’t affect, their allocation rates at this time. The Flow system reserves memory for the maximum number of blocks, regardless of how many are currently being uses in the simulation, so that’s where the memory usage jump comes from.

The sim size doesn’t correspond directly to Unreal’s virtual grid dimension. Theirs is measured in simulation blocks, Our Sim Size is measured in world units, and changing the size doesn’t change the number of blocks in the simulation (i.e. it also increases the size of blocks). So, if you increase the simulation size without increasing the active simulation area, you’re effectively decreasing the resolution of the simulation, leading to your higher framerate

“Override Emitter Intensity Mask” does effectively enable shadows. When shadowing is enabled, the shadow values override the “burn” values in the grid. So, the “burn” material params in emitters basically become “light intensity” params. In most cases, you would need to adjust the emitter material to see shadows. “Override Emitter Intensity Mask” is there to automatically adjust them for you. That flow is kind of un-intuitive, but hopefully some updated docs will make it more clear.

The last thing, yes the default is a black-to-white colour ramp. We thought that would a more intuitive default than a flat one, so that you can see the gradient that comes from the color masks in the material. Interesting to hear your thoughts, though.

I hope some of this was helpful!

1 Like