View Full Version : cutting a hole in a curved surface
Starbase1
6th October 2011, 04:03 AM
I periodically hit this issue, and I generally can bodge my way through - but I thought iot worth trying to find out how an expert would do it!
Not least as this is seems to be the clearest example I've had.
In this case I have a simple fairly wide cylinder, with a cylindrical flat bottomed hole / indentation in the side, radius about 1/4 that of the large cylinder.
If everything worked the way I want, I'd be able to do a boolean subtract to make the hole, select the edge, and then use rounder or edge bevel to make a small sloped area around the rim, and take the sharpness off the edge.
But as anyone who has tried it will know, if you are lucky enough not to have a crash, you will get awful smoothing artefacts at best, and some points mysteriously leaping away from the surface at worst.
So is there a reliable way to do this?
Nick
Woody
6th October 2011, 05:06 AM
Hi Nick,
There are a few different ways this could play out. Have you got a reference image of what exactly you are trying to achieve?
tangster
6th October 2011, 06:26 AM
In cinema4d I normally project a disc onto the surface and use that to create the polygons for a depression/hole/extrusion.
I delete the quads around the projected disc, which has the same number of edges as the edge loop left by the delete polygons, then bridge the surface and the disc together and bevel. Works best with subdivsion.
Starbase1
6th October 2011, 06:50 AM
Tangster - the ways I know in lightwave would not produce a polygon flow like you show - thanks for the tip though!
Woody - The tangster iollustration is pretty much what I am after. Though I really need a more general technique - I often seem to need to cut smooth holes into curved surfaces, and it generally drives me nuts! I could probably generalise from a solution to this one though...
Nmajmani
6th October 2011, 07:49 AM
My way of going about to do this usually involves stencilling the hole onto the surface, and then using that to extrude in and then weld the points at the other end. I gave up on boelean a long time ago when I realized it had very limited uses. I find the welding trick to be much easier.
Also, probably as an added tip, to avoid smoothing artifacts you could try to convert your quads into triangle ploys. Quads don't always smooth as well as triangles, and most of the time you cannot tell at the end anyhow. But that's really a style choice in modeling.
Starbase1
6th October 2011, 08:02 AM
My way of going about to do this usually involves stencilling the hole onto the surface, and then using that to extrude in and then weld the points at the other end. I gave up on boelean a long time ago when I realized it had very limited uses. I find the welding trick to be much easier.
Also, probably as an added tip, to avoid smoothing artifacts you could try to convert your quads into triangle ploys. Quads don't always smooth as well as triangles, and most of the time you cannot tell at the end anyhow. But that's really a style choice in modeling.
I've gone via stencil before - it helps with the smoothing if I do it twice, shrinking the cutter slightly the second time to constrain the smoothing to the endge of the hole. But then I end up with very small polys which make edge bevel or rounder die every time.
In my experience tripling the n-gons makes smoothing worse - I seem to end up making big merged polys then cutting across point to point along the axis. But its messy, hard work, and not always possible to do elegantly.
Rigel
6th October 2011, 08:25 AM
I don't know if you're doing this in sub-d or polygon.
In poly modelling I:
1) Stencilled the disc onto the cylinder
2) Selected the polys in the disc
3) Fired up MultiShift
4) First shift, Inset 5mm, Shift 0mm (helps keep it smooth)
5) Second shift, Inset 5mm Shift -2.5mm (creates a small bevel)
6) Third shift, Inset 2.5mm Shift -5mm
7) Fourth shift, Inset 0 Shift -2cm
8) Closed MultiShift
9) Selected one of the points furthest back on the Z axis, copied its Z coord, selected all of the points in the bottom of the indent then used Set Value (press v) to set all of them to the same Z coord (flattens out the bottom).
10) Two more shifts in MultiShift, Inset 2.5mm Shift -5mm and Inset 5mm and Shift -2.5mm to create a bevel at the bottom.
The result can be seen here. This was a default 24 sided cylinder, 24 sided circle with the default smoothing turned on.
http://www.foundation3d.com/uploads/instruction/2011/10/34-06-911743_tn.jpg (http://www.foundation3d.com/uploads/instruction/2011/10/34-06-911743.jpg)
Starbase1
6th October 2011, 08:55 AM
Thanks Rigel - but I think your picture shows the problem I am trying to avoid - the highlight on the left edge of the hole looks odd - not symetrical. Which I strongly suspect is because its a non planar n-gon.
And if you triple something like this, the triangles start to show up in the highlights,
If I do a stencil around the hole, as mentioned earlier, it helps to hold the problem areas close to the hole, but I still often end up with a manual process of splitting the ngons avoiding edges that go diagonally across the cylinder.
Meurig
6th October 2011, 09:14 AM
Bare in mind that how it looks in the modeller viewport isn't necessarily how it will render. OpenGl specularity often doesn't correspond with how renderers deal with surface smoothing.
On the other hand, Rigel's geo there is pretty messy and I wouldn't recommend doing it that way, at least not without cleaning it up afterwards.
What Tangster has in the pre-subdiv state is what you should aim for as the poly layout is sensible and will cause a minimum amount of stretching, you can stencil the cylinder into your object and then manually tidy it up until your wires look like Tangster's do. Dodgy cutting is just an unfortunate side effect of boolean/stencil operations.
Edit: One tip I'd give is to use cylinders with as small a number of segments as you can get away with, it makes the interaction between multiple cylinders much more simple. Stick with 6-12 sided and subdivide the result.
Starbase1
6th October 2011, 09:25 AM
Bare in mind that how it looks in the modeller viewport isn't necessarily how it will render. OpenGl specularity often doesn't correspond with how renderers deal with surface smoothing.
On the other hand, Rigel's geo there is pretty messy and I wouldn't recommend doing it that way, at least not without cleaning it up afterwards.
What Tangster has in the pre-subdiv state is what you should aim for as the poly layout is sensible and will cause a minimum amount of stretching, you can stencil the cylinder into your object and then manually tidy it up until your wires look like Tangster's do. Dodgy cutting is just an unfortunate side effect of boolean/stencil operations.
Edit: One tip I'd give is to use cylinders with as small a number of segments as you can get away with, it makes the interaction between multiple cylinders much more simple. Stick with 6-12 sided and subdivide the result.
Very good point re the OGL preview.
Number of sides - this comes up all the time when I am detailing the sides of rockets - and all too often I want to get close to the edges of stages, so 120 sides for the big cylinder is a lot more commonly what I need.
Sounds like the way to go is to do a boolean subtract, then rebuild all the polgons connecting to the hole.
Any thoughts on smoothing off the edge?
Rigel
6th October 2011, 09:32 AM
The first video in this thread (http://www.foundation3d.com/forums/showthread.php?t=6247) might help you as well.
Gordon Robb
6th October 2011, 03:40 PM
If your talking about poly modelling rather than sub patch the issue s simple. Rounder prefers to have 4 edges coming off a point that it is rounding. Sometimes when doing what you're trying to do, you end up with 5 edges. Easiest way to do it is stencil slightly begged than you need, inset with multi shift (enough to fit your rounder in), merge all the polies in what you want to be the disc then use bevel or extender before shifting it till it becomes planar. This should leave you with nice 4 edged points to run rounder on.
Gordon Robb
6th October 2011, 04:03 PM
Quick test of what I meant. Needed minimal clean up cause some of the points were so close to each other.
Starbase1
6th October 2011, 04:12 PM
Gordon, that sounds brilliant, amd thanks for taking the time to work an example for me. I get the pronciple here!
Meurig
6th October 2011, 04:25 PM
That gives a nicer result in terms of the way the hole is cut into the tube, the orthographic angles are clearly nicer, but it still leaves a big mess of n-gons which will be really untidy when tripled. Lightwave is fairly tolerant of N-gons but really they should be avoided, they get tripled at rendertime anyway and in a fractal way so they're more likely to spaz out than if you quadrangulate everything tidily yourself, forcing the renderer to read the polys as you intended rather than as it thinks best.
Starbase1
6th October 2011, 04:32 PM
That gives a nicer result in terms of the way the hole is cut into the tube, the orthographic angles are clearly nicer, but it still leaves a big mess of n-gons which will be really untidy when tripled. Lightwave is fairly tolerant of N-gons but really they should be avoided, they get tripled at rendertime anyway and in a fractal way so they're more likely to spaz out than if you quadrangulate everything tidily yourself, forcing the renderer to read the polys as you intended rather than as it thinks best.
I see what you mean.
How would you do it?
Gordon Robb
6th October 2011, 04:39 PM
I was trying to show a quick way. If I was being tidy, I would stencil, then clean up so that all I had was a nice circle stenciled that only left 4 pointers, then multi shift it, bevel, and rounder. But in truth the way to do it 'right' and clean is to use sub patch with a lot fewer polys, as you said Rhys.
Starbase1
7th October 2011, 04:59 AM
I was trying to show a quick way. If I was being tidy, I would stencil, then clean up so that all I had was a nice circle stenciled that only left 4 pointers, then multi shift it, bevel, and rounder. But in truth the way to do it 'right' and clean is to use sub patch with a lot fewer polys, as you said Rhys.
Not at all - thanks for the clearest explanation of the area where I was having mnost problems, which I'd summarise as preserve quads at all costs!
Starbase1
7th October 2011, 05:26 AM
OK! My first try at this has given much better results trhan I used to get!
To summarise, for those who haven't been keeping up:
Did a stencil of a disk into the curved hull.
Selected that area, and did a multishift to srink it a bit.
Did a second multishift to pull it down - doing this in one go gave distortions, so I multi shifted down a tiny amount, then moved it into position.
I then cut across the shap and made a poly for a circular flat bottom.
Results are shown as an OGL grab, and a render
I might try it again with more polys on the cutter, but the principle seems VERY sound.
Many thanks to all who took the time to respond.
:tu:
Nick
Woody
7th October 2011, 05:38 AM
Nice one Gordon, glad you got it sorted Nick.
I'm with Rhys on the technique here though, just to be tidy I'd clean it up as quads, but if it renders correctly...then no worries. ;)
Starbase1
7th October 2011, 06:03 AM
Nice one Gordon, glad you got it sorted Nick.
I'm with Rhys on the technique here though, just to be tidy I'd clean it up as quads, but if it renders correctly...then no worries. ;)
Well, I'm now getting something that looks good, which is the main objective! (And apologies I should have included a wireframe, now with this message)
But as we are on the sibject, tips on fixing the long surrounding polygins would be appreciated. When I tried in the past I ended up either doing an extra stecil outside the ones shown here - this seemed to limit the problem but not fix it completeley, or in a similar vein I'd knife across perpendicular to the main cylinder.
I'd be tempted to split the long polygons along their length to make them quads - but if I do this I end up propogating it up the entire length of the rocket. And that gets really messy when the line of the spliut hits the next feature.
Perhaps I should combine the ideas, cut across above and below, and then hack around to split and make quads...
Incidentally, there is a plan behind all this - I'm currently doing a fairly rough model of this rocket, but sometime soon I am thinking of taking on as a new project, going for a simple well documented rocket, (maybe even this one), and seeing just how well I can do it - maybe right down to accurate shapes and details on the screw heads.
Nick