How do I 'subtract' a 3D Sink from a 3D Cupboard-Board

geometry

#1

I have two separate obj. - a sink and a board (the top of a bathroom-cupboard).
The sink needs to be placed on top of the cupboard, sorta like this:


(for visualization, I put the objects into Blender; obviously, the actual problem exists in ThreeJS)

However, both objects overlap, so the board is still there where the hole of the sink is supposed to be.


Of course, I want the sink to '‘cut away’ from the board so it looks like this:

What options do I have to go about this?
Using a boolean to subtract the sink from the cupboard isn’t enough, because it won’t cut out the hollow space.
Is there a way to have the sinkhole considered a part of the boolean that cuts away from the cupboard?

Btw. this needs to be done with several sinks of various shapes and measurements.
Just adding an invisible cube with the same measurements as the sink to substract it’s mass from the cupboard is a possible, but undesirable solution (for it’d need to be redone for every sink individually + some sinks have round shapes).


#2

I would use THREE.ExtrudeBufferGeometry() for shapes with pre-defined holes for each type of sinks.


#3

You have three alternatives:

  • Export the countertop with the sink shape already cut out for each sink.
  • Export each sink with a corresponding “cutting shape” that you could use to perform the boolean operation.
  • Instead of cutting the geometry, you could use a different alphaMap on the top face for each sink shape.