5/19/2008

05-19-08 - 4

I fixed some more issues in chuksh with moving files using wild patterns. All that code is so old and gross; I wrote that stuff when I was in college and some of it is badly broken. I did do a good thing making wild patterns an opaque type, but I failed to make correct standard conversions from wild specs to strings, which means I incorrectly convert literal reserved chars to wilds, and then also don't back convert right either. I keep just patching the problems because I don't want to have to rewrite all that stuff in my more modern code base, but someday I'm going to have to revisit all that. At the moment I'm somewhat scared that there could be ways to accidentally lose some files (not sure if that's actually possible or not).

I talked to Ignacio a bit about the problems with tangent spaces. Ignacio wrote a while ago about how the standard seam break thing that people do for flipped tangents is BS. I actually feel that the whole way that has become standard for us to make tangent spaces is very primitive. The standard way is to use the UV mapping as a handy way of getting a continuous direction field on your mesh. That is indeed convenient since you already have a UV mapping, but it may not be the most natural way to get good tangent spaces. For one thing, there's a big difference - the tangent spaces are constrained by the normals on each vertex, and the UV mapping was made without consideration of those normals. This is of course why you get tangent space flips and degeneracies even with decent UV mappings such as LSCM.

Using the UV mapping is sort of a quick hack to get tangent spaces, and it works okay, but really we should just be optimizing the tangent spaces directly. Your vertex normals are a constraint so each tangent space has 1 DOF, a rotation angle of the tangent around the normal. You want to optimize the tangent spaces to be continuous across the surface of each chart on the mesh, and specifically constrained to have no flips or degeneracies.

I haven't thought about this a whole lot yet, but I did find that Bruno Levy et.al. have a new paper out that's basically on this topic : N-Symmetry Direction Field Design

No comments:

old rants