Triangles, "thin" polygons, and normals.

Having some issues with my low poly models. I find using triangles to be unavoidable when creating a low poly model. All quads are doable, but would increase the tri count by quite a lot. Does it really matter? Am I worrying too much about having as few tris as possible?

Here’s some pics:


At first I though the triangles were the issue. But one of the warped edges is actually a quad. However it’s “thin”. Could that be causing the issues? Or is it both?

Also, Shouldn’t normals compensate for this issue?

Should I just not worry about tri count? That pistol is 2k tris. Finished it will be about 3.5k. When checking out the ARK mod, I noticed they didn’t seem to worry too much about tri count. Their pistol I think is 23k tris, without any LODs… Maybe I’ll just not worry so much and go pure quads. Any advice would be appreciated.

It’s most likely an issue with the smooth groups or your normal map, or both. Are you baking from a high poly mode? What program are you baking in? What 3d modeling app are you using?

This thread talks about it a bit

It’s still a good idea to avoid super thin tris, but quads vs tris really isn’t the issue here.

Model being made in blender. Baking done from high poly in Substance, without a cage. Can’t figure out how I’m supposed to even make a cage for something that is complex.

As for smoothing groups, I still don’t quite understand it. I thought having a single smoothing group produced artifacts, but aren’t normals supposed to hide them?

EDIT: What you linked helped. However now in the places I’ve marked “sharp” I have this issue:


You should definitely watch these 2 videos.

Basically you need to try to control the smoothing on your low poly model before you bake your normal map, especially if you are not using a synced normal map workflow. Even with a synced workflow, extreme shading variation can cause artifacts when the normal map is compressed, and when the normal map is mip’d to a lower resolution version of the texture.

For a synced workflow with UE4 you need to use a baking program that supports mikktspace, make sure you are using that option. And when you import your 3d model, you need make sure “import normals and tangents” is selected in one of those drop down menus. Also UE4 doesn’t support synced normals for skeletal meshes.

Regarding smoothing groups. Imagine you have two connected triangles, which share one edge, in a modeling package. What smoothing groups do is define how these triangles will be exported, more specifically how their vertices will be exported. If triangles belong to the same smoothing group then only 4 vertices will be exported and two of them will be used in two different triangle index lists and triangles will share normals at those shared vertices. If triangles belong to two different smoothing groups then they will be exported as 6 vertices and each triangle will have its own normal.
In Maya this is something called hard or soft edge. Hard edge will force triangles to have independent normals, soft edge will force them to share normals as they will share vertices.

Also, where there is a hard edge, you need to have a UV seam, if you don’t, you’ll get a seam on the normal map. You might as well have a hard edge on every UV seam.

Appreciate the help

I have seen all the handplane stuff before. Rewatched it all, and I have a better understanding of what he’s explaining this time, however I still just can’t get good results in UE4. It sucks that it looks perfect in substance but not in UE4. It sure makes testings things extremely time consuming… So far I’ve tried adding extra supporting loops, separate smoothing groups, and touching up the low poly. Nothing has given good results. I’m still very confused because shouldn’t normals fix these low poly issues? The handplane videos show that very clearly…

Could it be that my low poly just isn’t good? Would anyone care to check out the file? They can keep/use the high poly model… :slight_smile: (still unfinished but close)


Yeah post the lowpoly and I’ll show you how I would clean it up.

Honestly the whole project is a complete mess. I’ve been messing around for literally days trying to get great looking results.

Alright, so I’m having a much better time after figuring out soft/hard edges. Slight seam still visible. Will research how to get rid of it (if possible). That’s the last issue that is bugging me right now. Thanks so much for the help ZacD! Here’s my results.

Too bad it adds a huge amount of verts. Hope it doesn’t affect performance too much…



Ideally your lowpoly should look closer to this. I setup custom face weighed vertex normals on certain parts of the mesh to give it that flat look, but the same thing can be achieved by adding extra edge loops and hard edges.

I tried to do it as quickly as possible and focus on the most important areas, so I didn’t really touch or fix the entire mesh.

Also the UVs I did were really ****** and quick, and far from what I’d actually use.

And for that seam you are seeing, it’s most likely because you have a hard edge where there isn’t a UV seam.

Well I’ve been looking into “custom vertex normals” since your post and it seems amazing. Certainly it must be far superior to extra edge loops & hard edges, right? Since it not only adds no verts (I think), it also doesn’t add the visible UV seam.

Could I ask what program you did this in? I’d like to check out your custom vertex normals. I got good results myself doing it for the first time, but it’d be nice to see how you did it, and I can’t in blender.

Here’s my attempt at vertex normals… Fixed the shading issue + since I don’t need the hard edge there’s no visible UV seam


There was a UV seam there. Your Low Poly has the UV seam visible too. Did some research and I think it’s normal… Have you never experienced this? Here’s a pic of your low poly when I was checking it out:


Finally, here’s a side by side comparison of my attempt and of your low poly… I only did that side and the front part of the top. Clearly I didn’t do it correctly (even though it gave good results compared to before)… Will practice though. Again, thanks so much! Learned a ton today.