mesh has some nearly zero tangents/bi-normals

Note that, if the object has UV coordinates that are very close together for two different vertices on each side of an edge, you may get this, because the math can’t calculate a good UV space direction when the two UV values are too close.

This is a problem in the source asset, and can’t really be fixed in the engine (unless you want to write and run some UV relaxation code, which will generally screw up the parts of UV mapping that are precise and good.)

There’s another problem with UV coordinates that are too close along an edge, too: The bilinear filtering will drop all the way to the smallest LOD level, causing texture cache missing, and also causing certain shader LOD approaches to make the wrong decision. (This second part only hits certain kinds of materials you can build, if you’re not using those, that’s not as much of a problem.) Plus it make the triangles that live next to these vertices to look blurry.

Unfortunately, it’s really hard to catch all things like this when building art – even the most deliberate 3D artist with 20 years of experience, can’t get everything right just by feel. Good tooling is needed to call out problems like these, and generally, the DCC tools (Maya, et al) do a ■■■■■■ job of providing feedback on things like this. A successful game studio will have to buy or develop enough plugins to catch these problems before they happen, to get all their art up to technical snuff.

5 Likes