I am creating a hole pattern in this flattened cube using an object to subtract it with (boolean modifier) consisting of a lot of cylinders.

flattened cube with a double array of cylinders

The cylinders uses two array modifiers, one that iterates in one width and one in another, creating a matrix of objects.

153 seconds after I added the boolean modifier, I got control back. (When I have been running a similar scene on a macbook pro, blender crashed).

Applying the modifier takes the same amount of time. When the cylinders has been removed, the scene seems to be workable. Manipulating it will not cause wait time.

Is there an alternative method of achieving a hole pattern like this?

People have talked about faking the pattern with a shader. Is that the way to do it? How would I do that?

  • 1
    $\begingroup$ to fake the pattern use a texture with an alpha channel to control the transparency. Something like this: blender.stackexchange.com/a/50672/1853 $\endgroup$
    – user1853
    Jul 8 '17 at 16:52
  • $\begingroup$ That seems to be a nice workable solution unless you want some thickness in the hole punched object. $\endgroup$ Jul 8 '17 at 17:11
  • $\begingroup$ If the geometry to punch out is more complex than this flattened cube, a bent surface maybe, the operation could fail because the continous triangulation that blender does when applying a modifier creates really weird triangles, being in the way for smooth subtractions. $\endgroup$ Jul 8 '17 at 18:12
  • $\begingroup$ Also related: blender.stackexchange.com/questions/40997/… $\endgroup$
    – user1853
    Jul 8 '17 at 18:19
  • 1
    $\begingroup$ There are a few techniques listed here blender.stackexchange.com/questions/58811/… $\endgroup$
    – aliasguru
    Jul 8 '17 at 18:30

Edit 7th Oct 2019 - replaced link at bottom.

Please note, the results below are only available when rendered using OpenGL. (Top left of window --> 'Render')

When topology or even inconvenience becomes a nuisance factor or hurdle, the inviso effect in Blender can often save the day. (See below)

The project - several hundred holes are to be inserted into a slab of 'concrete'.

Make the slab, get it's texture etc settled. Then make just one cylinder. When there's a large number of cylinders, and the view isn't going to be up too close, reduce the walls to about 8.

Texture the sides to match the material they're to go through.

Assign the cylinder ends a separate material slot and set the opacity to 0.008, both speculars to 0. (main and transparency specular sliders.

Organise the ends to become inviso surfaces and make sure they don't render the cyl walls invisible. If they do, it's bound to be both end and side geometry in the cylinder holding each other's material slot in the Outliner panel. Get rid of any strips in there that don't belong.

When the cylinder can be peered through and still see it's sides, but not the slab of concrete, the inviso factor is working ok.

Insert the cylinder EXACTLY as required with the minimum amount protruding through the slab's surfaces.

Check that the cylinder has indeed become a 'hole' drilled right through the slab.

When all is ok, apply an array modifier to the cylinder. Duplicate the result and patterns as required.

The slab's topography has been left alone, so whatever is down the track shouldn't mind the presence of inviso holes because slab modifiers etc, wouldn't see them. Real holes however could pose a problem, particularly when they are large in number.



The full explanation has overwhelmed one at least, but in a nutshell set the surface's speculars to zero and the Opacity to 0.008. Deslect all with A to see it working. The Inviso's Transparency box (properties panel) in the "Display" tab may have to be ticked or unticked as explained in the "Thesis". You may also have to temporarily parent the cube to the cylinder in order to get it to peer through the cube. Unparent it again immediately and remove any strips in the Outliner panel that don't belong to the cube or cylinder. (Material links particularly)

How to put a mask into 3d space


I think you need to try out a specific add-on for your task. I have seen one called Box Cutter and its demoed on youtube, it probably has better code to handle the boolean operations than standard blender, lets hope.


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.