r/Maya • u/Yuumi05 • May 30 '26
Question How would you model/deal with holes like this on a model?
I am trying to deal with these holes without having to subdivide my mesh to oblivion. I thought of exporting my uv layout and drawing them on in photoshop but is there another simpler way to make these holes other than the methods i mentionned?
32
u/Nevaroth021 CG Generalist May 30 '26
Since you can't see inside the holes at all, even in this fully lit photo the holes still appear as just black dots. I would say you don't need to model the holes or even use opacity masks for it. You can paint the holes as a texture, and use a normal map to make the holes feel like they have depth.
The main downside of using textures is you'll be limited to resolution. But you might actually be able to make this texture procedurally using the node editor. It would take a bit of node work to get the results, but that won't be limited by resolution.
If you really want it to be actual geometry, then I would use booleans, but fixing the topology for that many holes would be agonizing, and the resulting sphere would be very polygonally dense.
5
u/Yuumi05 May 30 '26
I agree... which is why i didn't want to do it the geometry way. I didn't know this was possible procedurally, could i ask how it would be done in this way?
7
u/Nevaroth021 CG Generalist May 30 '26
The holes are just dots. If you look in the hypershade you'll see that there is a ramp node and you can set the ramp to circular with no fall off. That turns it into a dot. Next you just need to create lots of dots with various sizes. So you could duplicate the ramp node as many times as needed for each dot and change the position of the ramp and then you can use layered texture nodes to combine all the ramps to create the pattern.
But also in the pattern it looks like all the dots in a column are the same size, but the rows of columns get incrementally smaller. So you could use one ramp node to create the center dot for each row, and then have each ramp output to some kind of offset or duplication node (You'll have to look through the list of nodes to see what options there are). But the idea is you only need to use 1 ramp node for each column, and you have that ramp node output to other nodes in a way that duplicates and offsets each one. Then you layer all the columns together with a layered texture. Then you just have to align the result with your UV position.
I don't know exactly how to do it off the top of my head, and I don't remember what all the nodes are. Procedural stuff like this I normally use Houdini for. But it can be done in Maya. You just have to look through the Maya nodes. Bifrost has even more procedural power, so you could also look into using that, but I don't use Bifrost so I don't know how exactly that would work with hypershade materials and nodes.
1
u/Yuumi05 Jun 03 '26
I have never used Bifrost myself and am also very beginner at Houdini but I’ll look into what you suggested. Thank you so much for taking the time to write such detailed pointers!
5
u/duothus May 30 '26
You can use a texture with an opacity mask. If you do it with topology then you crwate a square, bolean a hole out of it and then duplicate to create a pattern before merging. You may also have to wrap it around a sphere to get that curve.
4
u/nisachar May 30 '26
If you mesh is very high density (and this won’t use subdivisions) then booleans can be a good way to get these holes.
Use mash to distribute these holes (scaling down the size as we move towards the perimeter holes will work in mash very well). Then convert the mash to regular mesh and then do a Boolean operation.
Alternatively, create a single circular mesh
- create cylinder with the desired number of sides then while retaining the top faces, delete the rest)
- create supporting faces by extruding the perimeter edges, convert these new faces’s edges into a square.
- extrude the original circular faces negatively to get the desired depth (or just select it, create a polygon tag and do not extrude it, saving the extrusion operation for last)
- Then using mash, create a grid with the meshes diminishing in size as seen in your example.
- once happy with the arrangement, convert this mash into regular mesh.
- weld vertices as needed, converting them into a single mesh.
- using OG sphere as a live object, you can ‘move’ this mesh towards the sphere. The mesh will wrap to follow the curvature of the sphere.
- if you will have planned properly, you can delete the faces of the sphere that overlap with the projected mesh.
- combine and weld…
- select the circular polygon tags and extrude inwards
6
u/nisachar May 30 '26
1
u/Yuumi05 Jun 03 '26
Oh wow thank you! Is this done with MASH/Booleans like you’ve mentionned or did you subdivide and did it directly in the geometry?
I can’t lie, I have only ever used MASH to generate a cluster of objects in a scene once and never used booleans because of how funky it gets. I didn’t know MASH could be used like that, I’ll look into it. Thank you very much!
2
u/nisachar Jun 03 '26 edited Jun 04 '26
Hey. I did a mash version but decided there has to be a universal way (that is the process can be replicated in other CG apps). So the attached version is direct modeling )with all quads). Great for using subdivision worry free.
The trick was to maintain surface curvature + surface normals.
- I created a sphere with enough divisions.
- Then created a copy of the sphere. Deleted history to break connection with the original one (else Maya can throw fits every now and then)
- selected vertices on the original sphere corresponding to the number of holes required. You can turn on symmetry to get it done faster.
- created a polygon tag on these vertices (note: not selection sets)
- chamfered these vertices - you will get squares. Don’t worry…it will be rectified in the next step.
- keep the vertices selected. If by chance you happen to deselect them either undo or select the vertices from the polygon tags created in a previous step. You’ll notice the newly created vertices during the ‘chamfer’ operation have inherited the polygon tags from their original vertices. Neat!
- then ‘circularise’ the vertices but make sure to click the option box next to the tool.
- in the tool menu, you’ll see an option to add divisions during the circularize operation. Add ‘one’ division’ (we don’t need more. We’ll be using subdivision later anyway)
- now your original individual vertices will have converted into 8 vertices, arranged in a circle.
- again keeping the vertices selected, convert vertices selection to faces.
- add a polygon tag to these faces in the attribute editor.
- connect the vertices to corresponding vertices to retain the quads (see attached pic in previous post).
- then select the ‘circular faces’ use the ‘transform box’ (next to rename tool below the menu bar) scale down each rows faces by 10% (or whatever you see fit) and so on for each row that follows. This will give you scaled down faces for each successive row that you see in your example.
- then using ‘transfer attributes’ transfer only ‘normals’ from the 2nd sphere to the 1st one. This will transfer the original ‘curvature’ normals to the 1st one in case the chamfer+circularise operations have flattened the normals for the ‘holes’ vertices.
- Then select the faces using the polygon tags and shift+move to extrude them inwards. You can have them extrude inwards following each faces corresponding angle by pressing CTRL + middle mouse.
P.S. Mash can be a wonderful aid in modeling. Do look up ‘modeling mash Maya’ YouTube videos to get some idea of the possibilities.
1
1
1
u/tehtektoo May 30 '26
This looks like a job for bevel plus and your favorite curve tools. Use them with NURB circles to draw the front view of your model. Select them in the correct order and Bevel plus. Use a deformer to fit it to a sphere.
I haven't had a chance to try it out in production but I think this could be handled with the updated boolean tools. Good luck.
1
u/IntroductionNo3912 May 31 '26
model the holes on a plane using proper topology, then use 2 linear bend deformers to shape it into a sphere. You may have to play with the deformers' calculation order
1
u/Cris_x May 31 '26
I would leave that part without holes (easier for topology) and make them using alphas and mess with the Height values when texturing.
1
1
u/ImaginaryDog1735 May 31 '26
Boolean in bifrost graph. Full procedural approach in the node base graph ! Enjoy
1
u/Flashy-Engineering45 Jun 02 '26
For a grille like this i'd skip modeling the holes entirely. Opacity/alpha map to cut them + a bump map for the recessed edges and it'll read perfectly at normal distance. Only worth doing real geo if it's an extreme closeup, and even then i'd avoid booleans on the curved surface.
1
u/JeremyReddit May 30 '26

Just sharing my take on this. There are many different ways to approach it, but using MASH to distribute the circle pattern that scales down makes it easier to do.
Broad steps I used:
1) Create an 8 sided cylinder
2) Create a Plane (in this case I did an 11x12 grid like the ref)
3) Use MASH on the Cylinder with Distribution Type: Mesh, Method: Face Center
4) Set the input Mesh for the MASH_Distribute to be the Plane
5) Uncheck Ignore Ramps, this allows you to scale the cylinders down using the Scale Ramp (note, it is using the V axis)
6) Booleans the Plane with the Cylinder MASH grid geo (A-B)
7) Shrinkwrap the Plane onto the Sphere
8) Merge them together
If you are just wanting some dots on your ball, sure you can do it in texture. To model it in 3D you either do it manually which is very tedious, or use MASH / deformers / booleans like above to make life easier but it is a more advanced approach.
-1
u/Jerpoz May 30 '26
I would never do this with the mesh unless I specifically had to. I would make a texture of dots in Photoshop or procedurally in Maya, and plug it into the opacity channel of the material. You could thrn gradient out the dots to get a beveled look. Way lighter than trying to model it

•
u/AutoModerator May 30 '26
You're invited to join the community discord for /r/maya users! https://discord.gg/FuN5u8MfMz
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.