Crossfade Seams: Why is this not a thing yet!?

So I have been working with 3D textures for over 20 years. Started editing the textures from a game called Carmageddon and then years later moved to a program called Extreme 3D, from there to 3DS Max and been with Blender for over a decade now and the one constant that has been a thorn in my side for all these years is SEAMS. Yes, like that, in CAPITAL LETTERS! I’ve turned to several different approaches to mask, hide or delete seams, but it’s always been a pain in the butt. And today, after working for 18 hours straight in my latest project, I had a painful realization; Why not crossfading them during bake or press a button and let the software crossfade them. Blender already sort of has this; if you set your texture projection method in your texture node to “box”, right there, you can blend the seams of the box projection, why isn’t there an automatic seam blend setting? It’s like rotating normal maps in 90° increments, it’s surprizingly “easy” to do with an algorithm, yet I haven’t seen it anywhere but specialized software. Why isn’t seam blending a thing yet?

1 Like

I agree, it’s kind of weird that there aren’t any tools to do this. Even a simple “bake distance to nearest seam” would improve things, and I can’t imagine that’s too complicated (at least in world space or uv space, which would be fine anyways).

But I don’t have anything near 20 years of experience, and it seems to me that it’s not nearly as simple as box blend or normal map swizzling, so maybe I’m not doing it right? It seems to me that you need 3 unwraps for every UV map and the distance-to-seam for at least two of those unwraps.

The limit on UV map count in Blender makes this especially hard to do manually. Not enough wiggle room to leave anything unbaked…

I may have 20 years of experience, but started using nodes and PBR fairly late, I’m by no means a wizard (yet), even so, I imagine this could be achieved with a disgustingly sickening node tree that extends for miles and miles of node groups of packed node insanity that makes my eye twitch just to think about it. Or maybe even a script.

But I don’t think it needs 3 unwraps, the approach I was going with, is let’s say 10 (arbitrary number) units of blend inside the island, and then some kind of non-euclidean approach, where the program draws 10 units of the surrounding islands, copying pixels from those islands and arranging them in this band of 10 units inside the first island, then blend THAT, either linearly or exponentially or whathaveyou. This (or your 3 unwraps approach) would be too expensive to calculate on the fly, which is why I used the word “bake” in the post, but yeah, that’s the idea.

The devil is in all those details-- copying and arranging adjacent islands is what the unwrap does. Or, if you’d rather, what a UV stitch does. I was hoping you had an ironed-out procedure that beat mine for simplicity :slight_smile:

I don’t imagine it working on-the-fly because of those details. (Although you don’t have to unwrap/stitch every face, just the ones you need to blend, so there can be some saving because of that.)

Obviously, on the fly would be nice, even though I don’t see it happening. But even without doing it on the fly, automated tools for baked cross-seam blends would be nice to have.

Well, in my approach you must have already unwrapped your model, this hypothetically works independently of your unwrapping. So, like… you have your thing unwrapped, THEN apply this post-process that copies pixels from the surrounding islands inside the specific island in a band around the inside of that island, and then do that for each island, then blend that band, so I figure the hardest part in all this is the whole copying pixels and drawing them inside each island, because you need to take into account the deformation and it may not work for ALL topologies. That said, whatever the result is, it’s better than nothing, which is what we have now. And even a bad blending can be fixed with some clone brush shenanigans. I imagine this would shave off a ton of work off the pipeline.

I don’t have much experience with this but wouldn’t projection poly painting over the seam work?

I usually just try to keep seams at hidden spots and do things procedurally with Substance painter.