2
$\begingroup$

I'd like to know how to make a particle system only emit from where two meshes touch, regardless of mesh density. i.e. if a laser were to hit a mesh, sparks would be emitted from wherever the laser is touching the mesh.

Thanks in advance!

$\endgroup$

1 Answer 1

6
$\begingroup$

I will not dive deep into explaining, but show some basics.

Main thing here is to have dynamic Vertex group, created by Vertex Weight Modifier, that correspondes with collision spots.

  1. Duplicate mesh you want to cut (in this case I prefer Alt+D to share data);
  2. Create new vertex group, add all vertices in it;
  3. Add Subsurf modifier with 2-4 levels of division. High levels produce more accurate collisions, but are slowing things down.
  4. Add Vertex Weight Proximity modifier with Laser-mesh as target (set it to geometry - faces, adjust lowest/highest values).
  5. Add Mask modifier with the same Vgroup as in previous modifier, but invert it with Arrows button near Vgroup name. At this step, all geometry that is too far from Laser faces will be cut off in order to emit only from intersections. NOTE: Mask modifier is needed, because Density option in PS is kind of glitchy with dynamic Vgroups.
  6. If you need to render emitter object along with particles, you can optionally add Shrinkwrap modifier (target is original mesh) with a small offset to avoid Z-fighting.
  7. Add Particle System on top of it (it is important to enable Use Modifier Stack in PS settings, otherwise effect won't work). Also tweak Start frame to match the frame, where Laser intersects mesh first time. In other words Start frame should compensate travel time of Laser or mesh will emit particles too early.
  8. Same purpose as in step "6". Add Laplacian Smooth modifier, it helps to smooth jagged geometry after Mask modifier did its job.

Open GL preview:

enter image description here

$\endgroup$
6
  • $\begingroup$ While the GIF you posted looks exactly like what I want, I've not been able to replicate the effect with your information. Would you mind clarifying a little bit and/or posting some screenshots? $\endgroup$
    – Legoman
    May 8, 2018 at 0:28
  • 2
    $\begingroup$ Added more info. What step exactly doesn't work for you? $\endgroup$
    – Serge L
    May 8, 2018 at 8:06
  • $\begingroup$ Thanks for the added info. However, I'm still not able to get the effect to work...The VertexWeightProximity modifier seems to be working properly, as does the Mask, but the particle system is only emitting from the first point that the laser touches the surface. $\endgroup$
    – Legoman
    May 8, 2018 at 19:57
  • $\begingroup$ Post some screens of what you got or upload stripped file to investigate the issue. $\endgroup$
    – Serge L
    May 8, 2018 at 20:37
  • $\begingroup$ i.stack.imgur.com/ZgVHS.png and i.stack.imgur.com/M9eeH.png $\endgroup$
    – Legoman
    May 8, 2018 at 23:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .