Correct me if I am wrong but it seems like there’s no way to transfer Field Density to PRT Density. Lets say I load in a FumeFX field in Stoke, pipe the Smoke to Density each voxel will have the same relative density value to the nearest FumeFX voxel density. However, if I create a PRT Field and specify the Stoke Density channel, it just generates PRTs that all have the same density value. Can’t it take the density value from the nearest voxel? Otherwise if I load an FXD sequence that has a nice falloff in density, it translates to a PRT sequence that has none of that falloff in density.
I cannot reproduce this problem.
I created a Field where the Density falls off from 1.0 to 0.0 in a Spherical volume with radius of 30.0.
I set the Field Grid Spacing to a large value 10, and the grid had only 10x10x10 voxels resolution.
I saved that to FXD.
I then loaded the FXD in an InputField node via another Field Magma which was also set to 10 units spacing
I copied the Smoke channel into the Density output of the Field.
I then created a PRT Field object to turn this loaded field to particles.
I had to use 15 subdivisions to get enough particles in each voxel.
When I rendered, each particle had a different density value based on where it was placed within the grid. The falloff was clearly still there. The large voxels were somewhat visible, but the density of the particles was definitely not identical - using (an updated version of) Krakatoa Particle Data Viewer, I could confirm that each particle had a unique Density value - if I sorted them by Density channel, there were no two particles with the same value! The values were very very low so that the sum of all particles in a voxel would produce the total value of that voxel. Adding more particles would further reduce the Density values.
I also tested with Field Loader converted to PRT Field, then copying the Smoke channel into Density - the result was the same.
I am not sure why your Density appears to be the same for each particle, here it seems to be doing the right thing. And Krakatoa PRT FumeFX does the same interpolation of channels as far as I know…
Hmm, I’ll post a couple of images in another post but an effect I’ve made with Stoke, transferred to Fume, simmed it a few frames with some heat and expansion – the result is a render that has a nice falloff. When I make the trip back to Stoke and render with the Stoke Atmospheric render it looks good but when using PRT Field and then Krakatoa to render I get a harsh outline (voxel mode). I’ll check if the density values are the same, maybe they are not, but they definitely don’t falloff to 0 the way the FumeFX render does. I wouldn’t expect them to look exactly alike but I would think it would fall off nicely rather than give me a sharp drop off.
I’ll try some more tests and break it down like you did rather than just try it on this particular effect so I can write a more informed post about what I am seeing and show results.
Did the voxel size match the grid size of the PRT Field, taking into account the sub-divisions?
For example, if the original grid spacing was 4.0, you exported to FXD (remains 4.0), imported back and created 1 particle per voxel and rendered with spacing of 4.0 in Krakatoa Voxel mode, it would NOT look good because there would be no interpolation whatsoever. If you set the Sub-Divisions to 3, each voxel will be subdivided into 4x4x4 sub-voxels and one particle will be placed in each sub-region, taking a fraction of the channels’ values. If you would set the Krakatoa Voxel Size to 1.0, you would see smoother results (and then you could increase the Voxel Filter to smooth it out further).
In my tests, I was rendering in particle mode with 10 to 15 sub-divisions, so the results were very smooth.