"What do you mean you 'updated every texture everywhere'!?"
"Why does everything look crisper now!?"
"Taco! What did you do to my textures?!"
ALL YOUR TEXTURES ARE BELONG TO ME! MUWAHAHAHA!
These are some of the questions you may have been asking me/yourself/others around you if you've been playing on Tribble for the last week or two. And they are good questions. And better yet, I have answers!
Alright, so before I get into what I did exactly, let's go over the basics of what a MipMap is, since that is what most of these changes involved.
In essence, every texture in every game is actually a whole series of textures, called a 'Mip Chain.' This is basically a series of duplicate textures, each smaller than the last. In games, all textures have to have dimensions that are a power of 2. So while the original texture might be 1024x1024, it's mip chain will be every power of two from that down. (1024, 512, 256, 128, 64, 32, 16, 8, 4, 2).
This is one of our new Romulan interior ship textures, and what it's Mip Chain (or MipMap) would look like.
Each of these different sized textures, is called a Mip. I'll be referring to Mips and MipMaps (the whole chain) more later.
What are MipMaps used for? I'm glad you asked! When you are standing somewhere in the world, the textures on the nearest objects will display at their full size. But, there's a box over there, 500 feet away. It's very small on screen, and if we just loaded the whole texture on to it, there is a ton of useless data that doesn't actually get displayed. :::cue horns::: Enter the MipMap! Instead of loading that whole texture, we load one of those much smaller mip maps onto the box. Now there is a lot less wasted data on that box, and we can use that to load more textures on more stuff nearby.
Each texture's mipmaps are automatically generated when we convert our photoshop files into something the game can understand. When we do this conversion, it's called 'Processing a Texture.' When Zer0 says we 'Updated every texture everywhere' what she means, is that we REPROCESSED every texture everywhere. It does not mean that we repainted everything by hand. We simply reprocessed them with some different configurations, to yield a different result.
This will be on the test.
So, with that out of the way, there are 4 main things that were done to textures.
Crunch is a new compression algorithm that we use to make our textures take up much, much less disk space on your hard drive. The textures get uncompressed when they are sent to your video card, and thus, the compression has very little impact on the look of anything in game. However, this does mean that the patch size for a new user is reduced significantly, and any future texture patches will be much smaller as well.
spaceMip Splitting Remember Mips? Mip Splitting is where we take the biggest mips in the chain, and break them off into their own textures. What this does is allows people with lower end systems to only load the smaller mips, and not bother loading some of the biggest textures in the game (which wouldn't be displayed anyway).
Mip Reversal is basically what it sounds like. We flip the order that they were stored in. Previously, when a texture tried to stream in, it would try to load the whole thing, and then it would drop down through the chain, to the appropriate Mip. That seemed silly, so we flip it, and now, when you run around, it starts with the smallest mip, and works it's way up through the chain to the right level.
This is probably the most noticeable of our 4 reprocessing techniques. If you look back at our MipChain, those smaller Mips tend to get blurry, and lose data as they get shrunk. So, much like a photoshop sharpen filter, we sharpen up those mips a bit, to make them pop out more at a distance, and look better on lower end systems. This sharpening does not happen to the full texture, only the mips the lower mips. Now, there are some textures that look worse with this sharpening, and those textures can be unsharpened on a case by case basis (and many already have), but overall, we believe the sharpening has drastically improved the look of the game, both at a distance, and on low end systems.
That's pretty much it. We did have to reprocess the whole texture library to do this, but overall we're very happy with the results, and we hope you are too.
Edit: why did all of my apostrophes turn into question marks?! WHAT MAGIC IS THIS!?!