In this tutorial I will show you how to create a mesh from the particles.
The best way is to create a new scene for the meshing purpose. In this case you will have a possibility to create a mesh in any desired frame.
If you will create a mesh in the scene where you have a whole tree for particles simulation, then you can see your mesh in a first frame only.
Well, open your scene, with simulated particles. Save scene using File->Save as.. and give a name like BreakingDamSurfacing.py.
Delete all nodes except Root, Camera, Global, your Cache node with particles in a Read Files mode and a ParticleShape node.
Refresh the scene to visualize your particles.
Now we are ready for meshing our particles. To make it, there is a node called ‘ParticleSurfacing’.
So, let's create a ParticleSurfacing node from the Converter in NodeGraphEditor:
The main parameters of the ParticleSurfacing node:
1. Marching cube – The default algorithm proceeds through the scalar field, taking eight neighbor locations at a time (thus forming an imaginary cube), then determining the polygon(s) needed to represent the part of the isosurface that passes through this cube. The individual polygons are then fused into the desired surface.
1. Blinn – treats the individual particles as meta-balls, extracts faces after operation.
2. ZB05 – This is a new algorithm but calculation speed is slow so it is still developing.
ParticleRadius – Radius of blending particles (The standard ratio of particle size set from the global node)
SubGridResolution – the resolution for creating a mesh.
For example, if the value is 4, the resolution for creating mesh will be 4 times bigger than the resolution of the simulation.
In general, the higher the value, you can get more detailed mesh, but if the density of particles are small from the sub-grid resolution of per cell, small holes can easily be made so the particle density and sub grid resolution shall be considered properly.
Iteration - Number of smooth iterations(The larger the number of iterations, the mesh surface will be smooth, but detailed features may be lost)
Strength - smoothness of surface (needed when using the Blinn method)
Isosurface – the depth of the surface mesh generated from the surface of the water (needed when using the Blinn method)
All other parameters are linked with a Global node by defaults.
Connect the output outData of the Cache node to the input Particle of the ParticleSurfacing node.
Well, now we need to cache the mesh and visualize it in the viewport.
Create a Cache node from the File:
Enter the path for cache files in FileName, for example:
Your disc://your project folder/Cache/BreakingDam.%4d.%4d.tri
Connect the output Mesh of the ParticleSurfacing node to the input inData of the Cache node.
Now create a MeshShape node from the Shape:
Connect the output outData of the Cache node to the input inDstMesh of the MeshShape node.
Click the Refresh button on the Playback panel to create mesh in the first frame of the simulation and display it in the viewport.
Now you can choose desired frame and start to adjust the settings of the mesh in a ParticleSurfacing node:
As you will finish with settings, you can start generating the mesh.
Click on the Play button of the Playback panel to generate the mesh using single core, or hit Start of the Server Setting Window to generate the mesh using a multithreading.
That is all.
Written by Mikhail Korovyansky