Particle Fluid Tools v0.3.2 - Particle Mesher


(bashi) #1

Particle Fluid Tools V 0.3.2 (PFluid Tools)

Tools for Generating Surface on Particles.
V 0.3.2
UPDATE: Shrink has some Problems… will look into it later.
-ability to mesh multiple Objects and all Particle Systems in them.
(disabled again! might come later. -ability to Mesh Object Vertices (if Object has no Particle_system))
-Fixed “Metaball in Center” Problem

V 0.3.1
-implemented a different way of how the Metaball is created - much faster now!
-got rid of the Animation issue!
-Option to Shrinkwrap generated Mesh onto Particles (PointCloud). Allows for much thinner Mesh.

version 0.3.1 times: 1000 Particles - 1.6 sec, 2000 = 4.7 sec, 3000=10.4 min, 6000 = 34 sec 12000 = 3.23 min
(macbook pro i7, 2,6ghz) Note: Times vary on how much the Particles are ‘spreaded’/apart from each other.
version 0.2.1 times: 1000 Particles - 7-10sec, 2000 = 35-40, 3000=1min, 6000 = 5.6min



(Sample with 86’000 Particles, “over night, including crash” :wink:

See what it does:
video V0.21: http://vimeo.com/30437596

Button Explanation

MBall Size
-Size of generating MetaBall Elements

MBall Resolution
-Resolution, lower Number means higher Resolution. Usually something between 0.4 and 1 should do it. Mesh Size can get pretty high on low numbers. Also computing time takes way longer. Since we smooth the Mesh later it really must not be to high-Res.

MBall Threshold
-threshold for Metaball. (Have to find out what it exactly does :wink:

Shrink
-Let’s the generated Mesh Re-Align with Particles.
Skin
- Offset for Shrink. Higher number - less Shrink
(Note: There are issues with the Shrinkwrap Modifier, where it sometimes make Artifacts in Mesh. Therefore - if “Shrink” is enabled it does a pre smoothing of the Mesh trying to get rid of those)

Smooth
- Smoothes the Resulting Mesh (Smooth Modifier)
Mesh Smooth Factor
Sets Smooth Modifier Factor.

Mesh Smooth Iterations
-Sets Smooth Modifier Iterations.

Modifiers Apply
-Setting if the modifiers should be applied or not. (recommend ON for Animation)

Make Mesh
-Generates Mesh

MBall Frame Start
-Start Frame for Mesh Sequence
MBall End Frame
-End Frame for Mesh Sequence

Mesh Sequence
-Generates Mesh Sequence for selected objects. Add Modifiers, if enabled, and add Material Fluid to all of it. Set viewer and render visibility to according Frame and puts them into an Empty “Pfluid Meshes”. Note: currently a stupid system with all those Objects! I will make it better soon.

NOTE: There is some strange Bug which is: if you change the layer of the generated Mesh directly after it is generated it messes up the Modifiers on it. No idea why and shoudn’t be that much of a problem.

How to work with:
-Select an Object with a Particle System and click Make Mesh :wink:

(start Blender with Console - It Prints out some Information, esp. useful on animation - to see how much particles there are and which Frame is currently meshed, as well how long it took.)

To make Fluid u want to set the Particles to Fluid instead of Newton and check multiply mass with size, integration Method Verlet is faster, Subframes = 2 or more usually needed.

Be Aware: it is still under heavy developement, so make your Tests until you rely on it in Production. (isn’t his always the case with Blender :wink:

Future Plans and Ideas

-.Obj sequence export and Import
Speed Flatening? Means “squeeze” MetaBall Elements according to Particle Speed. Have to do some testing if it works and if it makes sense at all. RealFlow had/has this Feature.
Interpolate particles. Means take Position of Particle for example 3 Frames to make MetaBalls. Idea is to get better Mesh for low Particle count.
-Change of Mesh Modifier Settings (Subsurf, Smooth) after Mesh Sequence generation.
-Simpe/Advanced Mode? Expose or not certain Settings.
-Add Motion Vector (!)
-Particles Velocity -> Material ?

Finally i hope this Tool is of some use for somebody and i would like to hear what you think about it, workflow, issues, Ideas…

If you make something cool with it i’d like to see it :wink:

bashi

and finally download it:
PFluidTools032.py.zip (3.1 KB)


(ibkanat) #2

thanks for this will try it out. This something I have wanted to solve for awhile havent had lots of luck with metaballs in the past fairly limited on what the computer can handle.


(Alfa) #3

Very cool system.


(aermartin) #4

this looks really good, have tried to have meta balls as particles object it didn’t work so this might come handy. will give it a try this weekend.

good job!


(flokkievids) #5

had that problem too , you need to make the particle size larger , to see the metalballs :slight_smile:

btw nice script, especialy that animation button is nice :slight_smile:


(aermartin) #6

ah yeah ^^ I know I’ve done it before so it was weird. need to go beyond size 1.0 to see them.


(bashi) #7

thx

in the actual version (0.1) is something not right about the mball size and update behavior. will fix next days…

@aemartin
thanks. the metaball system has some different settings which affect the size like stiffness, and somehow the size_x , size_y… “sometimes”? don’t work?
@ibkanat
i create one meatball and add the elements in edit mode. while doing this the update method of the metaball object is set to never, otherwise performance is unusable.


(riftmaster) #8

Hi, I see you are planning to integrate obj sequences, Have you any idea when you think this feature will exist?

thanks, riftmaster


(bashi) #9

Hi riftmaster,

i’m actually thinking about to do obj sequence import and export as a separate add-on. What features do you need? Do you want to export the fluid mesh or an other object? I’m asking cause, it’s pretty easy to make a simple exporter, but a bit more difficult to make it work with all different kind of objects. So, please write me what you exactly need and i may do a simple usable mockup for your purpose.

bashi


(riftmaster) #10

I need an importer for realflow fluids, ie. an .obj sequence importer. unless there is another way?

I have a big job coming up, and need a way to integrate the two applications.

Thanks,
riftmaster


(bashi) #11

i’ve had a working .obj seq importer (as part of particle fluid mesher). It imported the .obj as a mesh each, set the view and render visibility (haven’t found a better way yet) and put them into an empty and a group ( to easier select them). It didn’t take frame number of nameX-1234.obj into account, but you could easy offset all objects.
Note: You’ve had to add file path to the .obj seq manually in the python script.

i don’t know of a way to import real flow fluids without .obj seq. But i don’t see as well a problem with .obj seq.

i will make a working version in the next days and send it to you, so you can make a test.

Just wondering, you’r using real flow 4, 5 or 2012?

greets bashi


(riftmaster) #12

thanks, for replying so quickly. I am using realflow 2012

riftmaster


(ibkanat) #13

I was looking into Est777 build of cortex vfx blender and alembic<sp?> it also includes partio. In the cortex library I noticed that there was a marching cubes point to mesh surfacing function. There might be a way to do this somehow?


(bashi) #14

@ibkanat
This Sounds interesting. I have to make some investigations about that.

edit: This Function would exactly do that. I just have to see how far i can take it, since I’m not a programmer :wink:

There is as well the PCL Library for Point Cloud Editing and Surface Reconstruction as well Kinect 3D Scan stuff. They had plans for python (is it called api). Would be great…


(mrk-z) #15

Hey, bashi. Thanks for this great script. I just started to test particles+mobj combination. And your addon is definietly come in handy.

“Speed Flatening? Means “squeeze” MetaBall Elements according to Particle Speed. Have to do some testing if it works and if it makes sense at all. RealFlow had/has this Feature.” – I REALLY want this feature to be here because i need something like that for my work. :smiley: I can help you testing your addon.

I wish you good. :wink:


(SHABA1) #16

This is a silly question but here goes. Can you explain more of what this could be used for. I downloaded it and installed it becasue your screen shots looked very ‘cool’ and yoiu had clear and very details instructions in your post( which is very rare) But I am still at a lost as to what it could be used for.


(chickencoop) #17

This is a very good script keep up the good work bashi


(bashi) #18

hi riftmaster,
the obj importer for your real flow obj seq isn’t finished yet, but as i said i’ll give you a working version the next days.


(bashi) #19

hi shaba1,

watch the video above, ifn’t you already have. Just take any Object with a Particle System and Hit the make Mesh Button. It basically takes the position of the Particles and puts “Morphing Balls” (Metaballs) there. Used to Render Fluid.


(bashi) #20

hi mrk-z,

have a look at v0.2 - Speed Stretching. Not shure thou if this is the feature your looking for. It makes the Metaballs longer in Particle Flight direction.