ShrinkWrap-Boolean Loop Problem

Hi there,

it seems to me as there is a bug with the shrinkwrap - boolean combo in Blender.
As you can see in the following image the red shrinkwrap geometry only touches
the cube in the center at with the end geometry of the half ring.

Without the boolean command the shrinkwrap modifier however perfectly projects
the red geometry onto the cube. The moment I add a boolean modifier to the cube
to cut the red object out the shrinkwrap result is kinda ignored and distorted.


Looks to me like a bug or is it a flaw in the way how the modifier data is passed down
to each object? Technically speaking the end of the modifier stack geometry the (the red
shrink wrapped ark) should be passed into the boolean modifier for the cube.

Here is a screenshot where the boolean modifier is turned off and the red object works perfectly.


Here is a video:
[video]https://drive.google.com/file/d/0Byzv_NlyKp_2eE1DMGhXanVNUmc/edit?usp=sharing[/video]

Blend File:
https://drive.google.com/file/d/0Byzv_NlyKp_2LXo5cUxvQVZXQTA/edit?usp=sharing

Short answer: Use a copy of Cube to shrinkwrap. It fixes everything.

Long answer: I wouldn’t call this a bug. Just a lack of communication from Blender. It should complain about a “circular reference”. You’re trying to get the difference of Cube with Circle which is shrinkwrapped onto Cube which is the difference of Cube with Circle which is shrinkwrapped onto Cube which is… (Should I repeat another time?) :wink:

I’m even surprised that Blender doesn’t freeze in an infinite loop.

Once you have a copy of Cube to shrinkwrap Circle onto it, the infernal circle is broken… and everything works as expected.

I see what you mean because the shrink wrap is projected onto the surface and when I add a boolean to the surface well the shrink wrap should update to the now booleaned surface … duh makes sense.

Actually if you clone the surface that the boolean modifier is added to, you can circumvent the issue.

The one clone has the ring shrink-wrapped onto it

The other clone uses the shrink-wrap result for the boolean modifier.

If any of the clones is modeled the geometry will update for both!