I originally posted this short tutorial in NewTek's forum back in 2007, it's a simple trick but may still be useful.
The goal is to create evenly spaced holes on the surface of a sphere, and to do so as easily as possible.
Finding the loophole (no pun intended)
Holes punched on a mesh should be spaced equally. In figure 1 left we can see there is an underlying hexagonal structure in the mesh.
Fig 1 middle shows an hexagonal pattern, where the central hole is a single point. Fig 1 right shows how Catmull Clark's "extraordinary points" (technical name of those nasty points where many edges converge) resemble exactly the structure we were looking for.
That's the loophole we were looking for! and to exploit it we'll have to do the following:
- Add a sphere, set it to Tesselation to get a nice hex pattern, set division to 5 (or more, for more holes).
- Select Catmull Clark subdivisions from the SubD Type drop down. Press Tab. Make sure in General Options (key o) the Catmull Clark level is set to 1. Press Ctrl-D to freeze the subd into polygons.
- We now have the shape in figure 2 left, press 'w' while in point mode and press the plus sign next to ">4 Polygons". This selects all the extraordinary points, like in figure 2 at the right.
- Select Multiply > Rounder, open its numeric panel with 'n', select Round Points, 1 Rounding polygon and OpenGL polys like in figure 3. The inset distance and OGL % value will determine how tightly spaced your holes will appear. My sphere was big, 1,5mt in radius. Also, assign a name to the new surface, in this case 'hole'.
- Go to poly mode, 'w', select by surface the 'hole' polygons and kill them.
- To give the mesh some thickness use a thickener plugin, or do it the old way with Ctrl-C, 'f', Shift-F and drag inside, Ctrl-V, 'm'. Then, go back to subd-mode with tab. And you have the model in figure 4.
And this is the final result: regular spacing of holes over a spherical surface
A small update: creating radially spaced holes on a flat mesh
I typed the tutorial directly on NewTek's forum, so to add it here, I had to look for the original thread. And I found some more messages that I never read. Among them there was a request about using this method with flat surfaces while keeping the radial distribution of the holes.
Flat surfaces are easy, it's just a matter of arraying hexagons or octagons. Keeping the radial distribution is a bit harder, as there's no loophole here. I'm a bit rusty with modeler, but that's the best way I have found so far:
- Create an hexagon, select it and use Multiply / Subdivide / Make Pole to turn it into 6 triangles
- Subdivide (Shift-D) the mesh two times and you'll get a finer mesh of triangles, select those highlighted in the figure below left
- Copy them, then Undo the last operation. This will make the mesh less dense.
- Paste the copied polygons into another layer, select the center point and create a Selection set for this point (as shown in the picture below, at the right). This is the trick that will allow us to select the points to be rounded.
- Now set the first layer as a reference, and use Multiply / Duplicate / Particle Clone to create a surface where the point we selected -the center of our hexagonal substructure- is aligned with the reference mesh vertices.
- Select and delete the polygons not belonging to the original hexagon, shown below at the left
- Now you can go in point mode, select the points belonging to the selection set, remove the boundary points from the selection, and proceed with the original tutorial for rounding the holes, as shown below at the right. The boundary points can be turned into a circle with spherize and a little scaling.
The number of subdivisions you do in the first step (before hitting Undo) determines how many holes the mesh will have. This method is not as elegant as the one for spherical meshes, but works in practice. I'll recheck it, because there may be an easier way to make this work.
Meanwhile, here's an example of the generated mesh - there are some shading errors because I didn't insert an extra loop while extruding the base. Oh well...
Max is a published author, has been producing commercial 3D animation since 1989, and his softwares have been sold in 31 countries around the world. He has taught compositing and animation both online and in classrooms. Anybody who has seen Big Bang Theory refers to him as Sheldon — he thinks it's a fair comparisons but doesn't quite get why it's supposed to be funny.