UV Tangent discontinuities at seams

So probably the easiest way to demonstrate this problem is with a picture:

I know that seams can have tangent discontinuities, but here, they really shouldn’t be this kind of discontinuity. None of the tangents should actually have any Z component to their vector at all. This is just a UV sphere at default rotation, with the poles cut off because they’re going to cause (unavoidable) problems with tangents anyways, with the view pointing roughly toward the positive world X.

If I had to guess at what’s going on here, I’d say that small errors in the Z component of the tangent from triangulation are getting magnified by the discontinuity in the X component of the tangent (it switches from -1 to +1). If this vector is being determined naively, by just lerping vectors and re-normalizing, it would probably look something like this.

This is one of those issues where it’s kind of questionable how much it’s a bug, how much it’s a feature request. I’d expect that this is probably creating some issues for anisotropy that are probably being missed due to the typical subtlety of anisotropy. Not sure if I should make a bug report or not.

Issue exists for Eevee as well, but it seems to me that it might not be fixable for Eevee, while it ought to be fixable for Cycles. I encounted this trying to set up my own anisotropy for use in Eevee.