When working with low poly models I've found that they're prone to heavy distortion like in the image above, even though it's UV map is square and clean (IMO), simple objects like this distort heavily along where they're being triangulated. However when I subdivide the exact same model the UV map's distortion is fixed, I assume because of the extra polys?
Why does this happen? and is there anyway I can fix this distortion without subdividing/increasing the polycount. Any help would be greatly appreciated!
Replies
Or you keep it this way, which is fine, with not much texture space wasted, paint in a 3d software, and don't bother about it. Just check that the softwares you use for painting/baking and final display are triangulating polygons the same way or you'll get issues. Hence it is advised to force the triangulation before exporting.
though it will look nasty !
though the best easiest and quickest solution is to avoid textures that make the shearing in these situations look too obvious ie avoid checks Things like low poly hair show up this kind of mapping issues a lot.
- On this pixel {
}- Find the triangle picked by the UV coordinates of the pixel (it's a point-in-polygon test in UV space).
- Project the mesh 3D triangle onto its own plane, giving a 2D triangle with the exact same shape.
- Using the same vertex order in both the UV triangle and this 3D-projected triangle, find the 2D transformation matrix (ref 1, ref 2) that maps from the UV triangle to the 3D-projected triangle.
- Sample the texture by transforming the pixel UV coordinates with that matrix and grabbing the color in whatever is that new location.
}Even with some one time preprocessing (2nd uv generation and render to texture) your best case is doubling UV memory cost and doubling your texture reads,
I still wouldn't lay the object out like that unless was supposed to look faceted, just chuck some more geometry at it
The main issue with the seams here is that they could be visible with a small texture resolution + mipmaps leaking when you don't have aniso filtering for instance.
Anyway, just don't add seams everywhere just to avoid a slight distorsion.