5
$\begingroup$

How do you tell if verts are inside of another mesh using geometry node and store them as boolean attribute? I tried the attribute Proximity node but it returns absolute distance to object so couldn't tell if the vertex is inside or outside the other mesh. Assume both mesh are manifold.

$\endgroup$

1 Answer 1

10
$\begingroup$

(Updated.. see below)

In Blender 3.0a, there's a Ray Cast node. So you can fire a ray in an arbitrary direction from each point in the modified geometry, seeking only the target geometry. Intervening objects are ignored. 'No hit' returns 0. If-and-only-if the source vertex is inside (a manifold) target, there will be a hit-point, whose normal is backfacing to the ray.

enter image description here.

Update for GN Fields:

enter image description here

(Blender 3.2b)

$\endgroup$
2
  • $\begingroup$ Clever ! I have a feeling this node's going to be used in a wild range of ways :) $\endgroup$
    – Gorgious
    Jul 18, 2021 at 21:41
  • $\begingroup$ @Gorgious Yup! Agreed. I reckon it could often be used to wriggle out of doing tricky maths :) .. I don't know how expensive it is. If the BVH or whatever is already built, maybe not so bad. $\endgroup$
    – Robin Betts
    Jul 18, 2021 at 22:10

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.