Author Topic: Boolean problem  (Read 881 times)

Philo

  • Newbie
  • *
  • Posts: 43
    • View Profile
    • Philohome website
Boolean problem
« on: May 09, 2012, 01:31:46 PM »
Hi all,

I have a scanned LEGO figure hair piece (in attached zip, hair.obj) and I want to cleanup inside where there are unwanted elements (scan support, unscanned areas). My idea was to "substract" head shape (head.obj) using boolean difference. But despite many tries with different mesh size, I can't get valid difference (always red). Boolean union works fine. Any hint?

Thanks in advance!

Edit:
OK, I found a way. I first deleted and filled the whole inside to get a smooth surface there, and then difference worked. Any other suggestion still welcome ;)
« Last Edit: May 10, 2012, 12:44:34 AM by Philo »
Philo

hieveryone

  • Full Member
  • ***
  • Posts: 128
    • View Profile
Re: Boolean problem
« Reply #1 on: May 10, 2012, 10:11:58 AM »
Apparently boolean operations present some issues from time to time. I tried to use remesh and to manually reduce the amount of detail from the hair, but both solutions didn't worked and proved to be too much time consuming anyway.

Instead I tried to make a boolean difference with the latest version of blender x64 and it worked at my first try (and it was quite fast too). You may want to smooth the subtraction borders inside of meshmixer just to be sure not to have overlapping triangles and you're good to go.

Philo

  • Newbie
  • *
  • Posts: 43
    • View Profile
    • Philohome website
Re: Boolean problem
« Reply #2 on: May 10, 2012, 11:08:01 AM »
Thanks, Hieveryone. Someday I'll take the time to master Blender, but at the moment the learning curve is tough to climb!
Philo

hieveryone

  • Full Member
  • ***
  • Posts: 128
    • View Profile
Re: Boolean problem
« Reply #3 on: May 10, 2012, 12:12:40 PM »
Actually I learned how to make booleans just to try this. It's just a couple of commands so it's easy to do. ;)
This is the video tutorial I used:
http://www.youtube.com/watch?v=_Ijg5zbHsMM&feature=related

RMS

  • Administrator
  • Hero Member
  • *****
  • Posts: 567
    • View Profile
Re: Boolean problem
« Reply #4 on: May 11, 2012, 05:54:37 PM »
Hi Philo, the problem is that the 'head' model is nearly coincident (ie locally co-planar) with the hair model in lots of places. This is a problem for the current meshmixer booleans implementation (I have some ways to improve it, but ultimately all boolean implementations have problems with coincident areas). Remeshing won't really help here, unless you remesh to a level that is small enough that the boundaries of the coincident areas can be resolved (which could be really high in this case).

One way to fix it is to scale up the head a little bit. But possibly this is not a reasonable solution for you.

Another is to use the D1 mode of VolumeBrush to "fill in" the hair interior surface, as in the image I have attached. If you do this in the right places the surfaces will be separated and the difference will work. It seems like the problem area is where the cylinder meets the hair around the rim at the front (under bangs etc).

To get a better view of what is going on you can select all that interior junk, and smooth it like crazy using the smooth tool. To get the selection you need to paint as much as you can and then right-click-and-drag to expand the selection, so it gets the hidden areas (this will pause for a second or two). Then run the Smooth tool and bang on the right-arrow key until things stop changing. See second set of attached images.


Philo

  • Newbie
  • *
  • Posts: 43
    • View Profile
    • Philohome website
Re: Boolean problem
« Reply #5 on: May 12, 2012, 03:49:07 AM »
Thanks, RMS. Indeed, the way I finally did it was more or less equivallent, instead of heavy smothing inside of head, I selected everything and did an "erase and fill".
Philo

RMS

  • Administrator
  • Hero Member
  • *****
  • Posts: 567
    • View Profile
Re: Boolean problem
« Reply #6 on: May 22, 2012, 06:56:55 PM »
just for posterity (in case anyone else comes back to this thread), I remembered an easier way to do the selection. Use the lasso mode of the Selection tool, by clicking on 'Switch To Lasso Mode' in the action bar. Then lasso the area you want to smooth. In most cases this will work better than the paint-expand method I suggested.

(Remember that the lasso strokes have to all be *on* the surface, but you can also draw a multi-stroke lasso, by starting each segment of line near the end of the last. And you can rotate the camera in between.)