Adding detail to subdiv mesh without creating long loops

Hi,

If I want to add a round hole in a square object, I can do this:

http://www.halfgaar.net/posts/2007-01/roundhole.png

But when I want to make a square hole, is there another way than this to do it?:

http://www.halfgaar.net/posts/2007-01/squarehole.png

Meaning, another way than by adding the extra loops that extend all over the object?

Things like this seem to yield nothing but errors, as you can see:

http://www.halfgaar.net/posts/2007-01/errorhole.png

This is a simple example, but I often find myself adding edge loops all over the model, only to be able to model a certain shape in the front. I’d rather avoid this.

Here is the blend file, should you need it to show me your technique.

You could do it like this.

Attachments


OK, bad example :slight_smile: Take this cube with a hole in it:

How would you make that hole a square hole, without adding extra loops around the entire cube? Again, the blend file.

For reference, I’m working on a dune2 harvester:

http://www.halfgaar.net/posts/2007-01/harvester-preview.jpg

Of which the wire looks like:

There are a whole bunch of loops going over the entire object, just for the detail on the front. I’m hoping there is a more efficient way of modeling detail, that is escaping me at the moment…

You could crease the edges surrounding the hole (box-select vertices making up edges of the hole, Shift-E, move mouse to change value).

I have never been able to get what I want with creases. Also, they won’t help with the real-world situation. I guess I lack modeling skills, which I want to improve :slight_smile:

Creasing would only sharpen the corner radius of the hole, the hole itself would still be round. I think you need to add at least 2 edge loops at 90 deg to each other that intersect on the centreline of the hole.You can then use this extra geometry to fade out polygons, the edge loop i have around the square hole has 16 vertices, i reduced this down to 8 vertices where it connects back to the cube.

Attachments




Umm, ahh, err, that is… Make creative use of your resources. Yeah, that’s it! :smiley:



Separate the front from the back.

Attachments


CD38 has it right… try selecting a group of faces and then setting the edge value like in this image. I find it helps to set the value in the Median Crease directly, instead of “shift e” I would think that this would be the ideal way to do this. :slight_smile:

Attachments


Actually yea i was wrong about the crease method it does work if you select all the edges around the hole not just the circular ones, which is what i did when i tried it.I tend to not use crease for some reason ,do creases uv map ok , i think you get a lot of stretching.
Another thing you could do is rather then using lvl3 subsurf, use lvl2 and just add more loops/detail in where you need it .For instance around the hole use 8 vertices insted of 4, i think that way you’ll end up with fewer polys.On you mesh you could apply the lvl1 subsurf which would add the extra loops that i put in, then use the methof i did to got from 16 to 8 vertices but only use lvl2 subsurf.

With creases, I always get errors like in the first attachment. With the traditional way (attachment 2), this doesn’t happen. Also, I’d like to be able to get as much out of non-crease subsurfs as possible, just for the sake of modeling skills.

Cutting the mesh in half is also not really an option. For this model it could work, if you don’t see the seam, but for more complex models, it won’t.

Another thing you could do is rather then using lvl3 subsurf, use lvl2 and just add more loops/detail in where you need it .For instance around the hole use 8 vertices insted of 4, i think that way you’ll end up with fewer polys.On you mesh you could apply the lvl1 subsurf which would add the extra loops that i put in, then use the methof i did to got from 16 to 8 vertices but only use lvl2 subsurf.

When I say that the model becomes to complex, I’m talking about the base model, not the subdivided result. So, the actual subdiv level is not important. It’s about the vertices and edges I have to maintain, not what the renderer has to calculate.

But, the solution with only two extra edge loops is pretty good. Not only because of the reduced number of loops, but also because there are no edges very near each other where they shouldn’t be. On a flat surface, this wouldn’t be a problem, but on a slightly curved surface, you would see a sharp line, which this method avoids.

Attachments



Hazza, with your technique, you can also do it like this:


It’s just like what you did, but then with the extra edge loops deleted (alt-select on the loop, x, delete edge loop).

I just tried it , good call i never noticed that. Using this method you can keep adding more and more localised detail.

Attachments


Building on Hazza’s method, I came up with one without additional edgeloops, but with two instead of one line along the faces of the extruded hole. Might be useful for some situations, so here it is.

http://www.postimage.org/aV2asvE9.jpg

Edit: haha, halfgaar and Hazza! Seems we were all working on improving those methods! Have to study yours, looks very good.

Do you also have a fast way of creating such a topology? Manually extruding edges, scaling down, adding faces, etc, is kind of labor intensive.

I dont know if this method is any quicker then yours but here goes.

Select a face and delete it, select the 4 edges of the hole, extrude and scale in a bit.
subdivide multi 2 cuts these new edges.now make the triangles created into quads, i found converting to triangles would not work, i think because these would make concave quads.
what i did instead was deleted the middle edge, selected 4 verts and pressed f to fill face for all four positions where triangles where created.

Attachments




Upon closer inspection, there are still errors in the mesh using this technique:


Using Sanne’s method (the one on the right), the result is cleaner (the black-patch error is most visible at subdiv level 2. And yes, I calculated normals outward):


However, there are still some slight errors (left Hazza’s method, right Sanne’s):


I wonder what exactly is the cause. I thought non-concaveness at first, but making the polygons concave doesn’t fix it.

Edit: for the interested, the blend file.

Ok, all faciousness aside, :wink:


Select faces, Extrude>>region, escape, subdivide


Extrude>>Region move into interior


Ctrl + (twice) to expand the selection, n for transform properties panel set median crease to 1.000


select only interior faces, delete them


Nice square hole in a subsurfed mesh.

There is a problem with artifacting around the edges if Set Smooth is used along with subsurfing. In this case, the faces adjascent to the edges of the cutout had to be Set Solid, while the rest of the cube is set smooth. To avoid messing up the rounded edges with square set solid facets, I selected the faces adjacent to the hole and subdivided them, then only Set Solid the faces shown below.


messy, but quick and accurate. Most of the tri faces created by the last subdivide are in pairs, so if it’s a concern, they can be converted to quads with Alt j.

In all honesty, I think that method produces too unclean results (zero dimensional triangles, fiddling with smooth/solid to avoid patches…). I always like to keep my mesh topology very clean.

You did teach me a nice trick though, which is ctrl +/-. I didn’t know that was possible…

Below is the pattern I use for adding square holes and limiting edge loops to an area. The holes will render without artifacts.

http://members.shaw.ca/rjplus/insethole.jpg

http://members.shaw.ca/rjplus/detaila.jpg

GreyBeard

Quite frankly, I didn’t see what the problem was with loops going to the back of your harvester model. I mean, if you are going for super low polycount for a game application, the holes would be a texture rather than modeled in anyway. If its for an image, well, nobody sees your mesh. Still, it’s an interesting way to pass a Sunday morning. :slight_smile: