UV unwrapping is the precipitous drop after having finished my Viper model. In Blender, before preparing it for export to Painter, the model looks good. Not great, but pretty good.

The original, in Blender

As I think I mentioned before, I relied on the “Smart Unwrap” feature of Blender, because I am lazy and because I have no idea what I’m doing. That seemed to work OK, but what did I know? Looking at this unwrap job, I am not in a position to say what’s good or what’s not:

What could possibly go wrong?

When I took this monstrosity over to Painter, this is what happened:

…I shouldn’t have asked.

I suppose by the time the Galactica reached Earth, whatever Vipers they had probably looked like this. As a noob to this whole modeling and texturing thing, I had absolutely no idea how to solve this until I ran across a video by a small elf of a man (in visage and voice) who was complaining that his models looked like crap in Painter.

Turns out that video lead to a “no shit?” moment: the patchwork image is a result of overlapping UV islands. So from my totally-new-to-me, reductionist point of view, here’s the why that’s bad.

When unwrapping a model, you are basically flattening it out so you can eventually apply 2D content over the top of it. When doing this by hand, modelers have to consider each face of the model, locate it on the UV image, and make sure that the proper texture is applied so that the face(s) in question have the correct display. The results of an unwrap need to be confined to a specific resolution area, like 1024×1024, 2048×2048, 4096×4096, and so on. Anything outside of these bounds doesn’t get to participate in the texturing.

Smart Unwrapping, then, allows Blender to do what Blender thinks best, which turns out isn’t really all that awesome for anything more complex than a single object. It will unwrap all objects and put them within the same UV confines. It’s then up to the artist to take every single damn part and move it, resize it, rotate, or whatever needs to happen in order to pack all of the “islands” into the bounds of the single map. I didn’t do this part, so I got my patchwork Viper in Painter because Painter assumed I had done the proper thing and arranged my UV islands on one single layer. I can’t paint an area and expect the system to know that I mean “only apply this to layer two of four”, so Painter just…paints all islands that overlapped the coordinates I was working with. This whole lesson is, of course, Common Sense. In order to unwrap properly, one must get all islands within the UV bounds without overlap.

Or do we?

There’s a newer style of island arrangement called UDIM, which adds a third coordinate to the U and V coordinates — the “U” dimension (hence UDIM). This system allows for UV islands to be spread out horizontally and vertically across multiple resolution confines, and each confine can actually have different resolutions (mixing HD with 2K and even 4K is OK) so that the really detailed parts of the model can get the hi-res treatment while less important parts can get lower-res textures.

My interest was pure laziness: I wanted each object in the scene to have it’s own UV container so I wouldn’t have to move islands around. I made the larger parts of the model a 2K texture, while parts you couldn’t see, or which didn’t need high resolution textures were lower. And when I exported this into Painter, I got this:

How nice!

The problem is that this is still a lazy way of doing it; not that UDIM was developed because someone didn’t want to put in the work. It was developed by WETA for use in the Lord of the Rings films (you know, the movies with a metric shit-ton of VFX?). Another problem is that UDIM is still the newest kid on the block, so it’s not supported, or not completely supported, wherever fine 3D models are used (like game dev, VFX, and so on).

I can work with this in Painter, but the bottom line is that I’m going to have to bite the bullet and learn to work with the grunt work involved with proper UV unwrapping.


Owner and author.

Leave a Reply

Your email address will not be published. Required fields are marked *