Subdivision Smoothing Angularity

I’m making a model of Battlestar Galactica’s Viper Mark IV, and I’ve run into a problem: the windows of the ship are being rounded off by the subdiv modifier. I’ve tried creasing the edges, but that only makes the rounded edges more pronounced. Also, the materials I added are being smoothed into faces where they should not be. Help?

Ps: The materials and lighting are simply to demonstrate the problem. They will be much improved for the final render.


You need to either tighten the topology in the areas you don’t want the subdivide surface modifier to make surfaces so rounded or separate the parts and remove the modifier.


The reason for this rounding comes from the modifier. As its name suggests, it subdivides faces in your mesh and creates new topology based on the actual one. For every quad face you get 4^n faces where n is the number of subdivisions.

In the picture I have a box shape (flattened cube) and a subsurf modifier with a level 1 subdivisions. On the right I have the original 6 faces and it gets subdivided to 24 faces (64^1 = 24) and gets rounded evenly.
On the left I’ve added 4 loop cuts near the corners to contain the subdivisions better, resulting much tighter corners and a lot more faces: 30 to begin with and 30
4^1 = 120 after the modifier has done its thing.

Yeah, I tried adding loopcuts around the window, but it didn’t help for some reason. Is separating the window the only way around it?

No I think something else is going on. It’s not always possible to separate pieces without problems if they’re in the key areas and wouldn’t be separate in a ‘real’ thing.

A .blend file would help to take a closer look. You can attach one in the forum (advanced) posting as attachment or upload it in and share the link.

Here it is. The topology isn’t fantastic, but I don’t think it’s terrible… rather I hope it isn’t.


Viper.blend (1.12 MB)

You need extra edgeloops across the corners, not just along the edges. Here is one way to do it:

Edit: I forgot to mention that I noticed you still had unapplied scaling on your model object. This can mess up all sorts of things, including insetting, shading and UV unwrapping. I applied the scaling (Ctl-A in object mode) before doing anything else.

Best wishes,


When you tried to crease, you have probably not creased all of the edges that need to recieve a crease value, you need to crease the external edge loop and the internal edge loop of the window as i’m sure you tried already.

But then you need to crease the edges that are at the angles of the windows too and that’s what you probably didn’t do as without those specific edges being creased, the windows boundaries are rounded :

MCollett, that makes tons of sense and looks quite fantastic, and I totally forgot about applying the scaling… Thank you. Sanctuary, I’ll keep that in mind whenever I crease. Changing to [Solved].