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$
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

| improve this answer | |
$\endgroup$
  • $\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 '18 at 0:28
  • 2
    $\begingroup$ Added more info. What step exactly doesn't work for you? $\endgroup$ – Serge L May 8 '18 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 '18 at 19:57
  • $\begingroup$ Post some screens of what you got or upload stripped file to investigate the issue. $\endgroup$ – Serge L May 8 '18 at 20:37
  • $\begingroup$ i.stack.imgur.com/ZgVHS.png and i.stack.imgur.com/M9eeH.png $\endgroup$ – Legoman May 8 '18 at 23:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.