7
$\begingroup$

What would be the best method for making regularly spaced holes in a cylindrical mesh? Similar to the vent holes you'd see on gun barrels like these:

MG34

MP18

Without creating any n-gons, having good topology, and not excessively increasing the tri/polycount overall (this is for models that would potentially be used in a game). It would be good to know how to do this in a way that would work where the holes overlap on the x axis of the cylinder if you see what I mean, like the MG34 barrel, and where they don't, like the SMG barrel.

$\endgroup$
11
$\begingroup$

Being a huge fan of modifiers, I've tried this solution here, which keeps the modelling geometry as simple as possible (I guess). You can see the results here in this Blend file:

There are two layers, I've experimented a bit with the topology of the base mesh to reduce shading artefacts. Unfortunately, they cannot be avoided completely.

Procedure

You can start off with laying down the polygons highlighted in this screenshot:

enter image description here

A rather elaborate modifier stack will then turn this into the pipe geometry you're looking for. I won't explain all of them as you have the Blend file too, but I'll talk a bit about the first Array.

enter image description here

The thing is, here I'm using the object offset option. The Array I defined basically rotates the mesh around the empty by 180 degrees. The merge option is turned on in all three arrays, and the limit set to 1mm in my case, to make sure the neighboring points are merged together.

enter image description here

Now that you have the alternating geometry in place, you can use simple arrays to get a flat base mesh. A simple deform modifier bends that into a pipe shape, and the rest (solidify, bevel, subsurf) is optional.

enter image description here

You'll notice that a seam is going through at the ends. That's because there unfortunately is no merge option in the simple deform modifier, neither is there a remove doubles modifier. I wish there was so badly! If you have to remove the seam, apply the first three arrays and the deformer, and then remove doubles.

You'll notice shading artefacts as pointed out in the beginning. Using the geometry below, those artifacts become less apparent, as they happen in a more logical place:

enter image description here

This is a wireframe on that final result (Layer 2 in the Blend file):

enter image description here

| improve this answer | |
$\endgroup$
9
$\begingroup$

My approach here would be to use vertex bevel coupled with the loop tools add-on.

Here for the sake of example, I started with a cylinder with 16 vertices, and added 8 loop cuts.

  • In vertex select mode, select a pattern of vertices that will be the location of the holes in your object.
  • Use vertex bevel, to bevel the seleced vertices with Ctrl+Shift+B and
    use the clamp overlap option by pressing C
  • Switch to face selection with Ctrl+Tab >Face and subdivide the selected faces a few times (4-6 will do). -Then delete them.
  • With those faces deleted, switch to edge selection with Ctrl+Tab>Edge, and Shiftselect a couple of the edges in the new holes. With a few selected, use the select similar menu option, Amount of Faces Around an Edge to select them all at once with Shift+G
  • Press W to bring up the specials menu, and go to Loop tools>Circle or just press W>L>C

If needed, you can change the pivot point to individual origin here, with Ctrl+.(period) and scale the holes a bit larger or smaller.

Here is a .gif of the procedure:

enter image description here

| improve this answer | |
$\endgroup$
  • $\begingroup$ The downside of this is the creation of ngons... $\endgroup$ – user1853 May 21 '17 at 2:05

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.