Taped UV Seams
Impossibly seamless unwraps
I was playing The Legend of Zelda: Tears of the Kingdom and was wondering how they managed to create seamless textures on organic models.
At first I thought they created two UV maps and blended between them. But then I found this Twitter thread where Keegan Keene describes how materials are blended in Skyward Sword. They don’t name the technique, so I’ll call them “Taped UV Seams” based on their tweets.
The idea is to create a mesh that covers the seam, and apply a material to it that fades in over the seam to hide it. This simple and lightweight technique has apparently been used in many games. I’m surprised that I haven’t stumbled across this before!
A variation on the technique is to instead of covering the seam entirely, place a tape on one side of the seam that continues and fades out the UV unwrap from the other side. I think this is the technique they use in the new Zelda game.
Benefits For Height Maps
If you use a height map for the terrain you only have to store the height of each point. This is possible because the location of each height point can be inferred by its location in the list of data. This takes up only a third of the data that true 3D data would, but it means you can’t create overhangs and caves.
But wait a second, Tears of the Kingdom uses a height map, but also has caves that blend together with the terrain, so how do they do it?
I believe they use taped UV seams to allow them to use the same materials for the terrain and their cave meshes, making everything blend really well together.
So if they want to have an overhanging cliff, which is impossible with a height map, they can use the same tiling grass and rock textures they use on the terrain on the cliff.
They’ve managed to create the feeling that they’re using a voxel-based terrain solution that some games use, but with simpler technology, a smaller memory cost, and while giving more control to artists than a voxel-based solution can.
This is a very nice solution from a technology standpoint.
Triplanar Mapping Comparison
Triplanar mapping is when you project a texture from the three axis directions and blend between them based on the direction the surface is facing (the normal of the surface).
It’s worth comparing these techniques, because they solve some of the same problems.
Here is a comparison of the similarities and differences between UV blending and triplanar mapping.
- Similarities
- The seams are faded so it looks more or less seamless.
- It works with tiling textures.
- Assets can be scaled up and down without affecting texel density since UVs can be scaled with it to compensate.
- UVs can be automatically offset for each instance to create variety.
- Advantages of taped seams
- There are fewer seams than with triplanar.
- You get to pick where the fading seams go.
- You can have sharp seams if you want to.
- You can have larger continuous areas without seams.
- You can have more directionality in the unwrap, which works well for things like trees, where you might want the grain of the wood to follow a certain direction.
- You don’t have to use tiling textures, it can be used as a general unwrap technique as well.
- It’s cheaper to render.
- Advantages of triplanar
- It requires less work, as you don’t have to UV unwrap or create tape meshes.
- It needs less data in the shader since UVs aren’t used.
- It can be used in entirely dynamic scenarios where geometry is created and destroyed on the fly.
Conclusion
Taped UV Seams is a cheap way to get seamless textures. It looks better than triplanar mapping, but requires more work.