Carmack devises globally unique texturing scheme


— 3:05 PM on May 1, 2006

This interview with John Carmack is worth a read. He's talking mainly about the MegaTexture technology that he hacked up for the upcoming Enemy Territory: Quake Wars. I had read some of the hype about MegaTexture tech before, but I didn't fully understand its implications before reading this interview. I knew ET: Quake Wars would render expansive areas of outdoor terrain using a modified version of the Doom 3 engine, and I knew MegaTexture was related to that. But that's not the whole story. MegaTexture allows all of the terrain for an entire map to be covered by a single, massive, unified, 32K x 32K texture—so that there are no repeated patterns at all. Texture management is handled in a pixel shader program.

Globally unique texturing is a pretty substantial milestone in game graphics. As Carmack notes in the interview, we've come to accept repeated textures in games because they've been used as a necessary form of compression. Once that constraint goes away, we should see a big step up in perceived visual fidelity. I don't think the effect probably translates well into stills, but you can see screenshots of ET: Quake Wars at the Shack. They have a preview of the game, as well.

Oddly enough, Carmack says the code needed to do the needed virtual texture management and the like is not terribly complex (about a page of pixel shader code) or resource-intensive (it will require newer graphics hardware but isn't especially demanding.) The MegaTexture technique has its limitations, but Carmack says he's now found a way to do unique texturing for all surfaces in a game:

The MegaTexture works for things that are topologically a deformed plain, like an outdoor surface, and it has certain particular limitations on how much you can deform the texture mapping there. For the better part of a year after that initial creation, I have been sort of struggling to find a way to have a similar technology that creates this unique mapping of everything, and use it in a more general sense so that we could have it on architectural models, and arbitrary characters, and things like that.

Finally, I found a solution that lets us do everything that we want in a more general sense, which is what we’re using in our current title that’s under development. That was one of those really happy programmer moments, where I knew that this sense of unique texturing was a really positive step forward for what we could do artistically with the game.

Can't wait to see it.
Tip: You can use the A/Z keys to walk threads.
View options

This discussion is now closed.