The High Res Myth
Often Mel and I discuss questions that often come up in groups, or IMs about different things regarding Second Life limitations. I am not an expert, much of what I know I have learned from others, and by observation. What I do know though is that when I am stumped about something, I tend to go to Mel, and usually he has an incredibly precise answer. This was a recent discussion, and he mentioned that I should do a post on it, so I sent that idea back to him and invited him yet again to share his wisdom. I do hope that you get as much knowledge out of it as I did.
To some, this information is old news, but once in a while I run across designers who misunderstand something and begin to design and advertise “high res” clothing, which is built using 1024×1024 clothing textures with the hopes of allowing for more detail in the clothing design. If this were truly possible, it would be great! Unfortunately, the way the clothing system works in SL, it is not at all beneficial to upload 1024 textures for clothing, and in some cases it is even harmful to the design, as I’ll illustrate below.
For this example, I have made 2 textures containing 1 pixel wide black and white vertical stripes – one with 512×512 pixels, and the other with 1024×1024. The textures were then applied to a skin, and I have photographed the results.
This first skin is using the image with 512 pinstripes on the 512×512 texture. As you can see, the stripes are present in as much detail as the viewer allows.
Here is the skin with 1024 pinstripes on a 1024×1024 texture. As you can see, the detail of the stripes is completely lost, as every pixel has been averaged out to 50% gray.
What happened to the pinstripes?
When you wear clothing layers in SL, there is a process that takes place to attempt to reduce the amount of data that needs to be sent to other avatars who can see you in world. It would require a crazy amount of bandwidth if the asset server had to send over every single texture for every clothing layer of your outfit, so the viewer does a little trick. When you wear an article of clothing, your viewer downloads the individual textures for all the clothing pieces, then sandwiches (bakes) them together into a single image for each of the parts – legs, torso, and head. This allows the entire outfit to fit into 3 textures, instead of the dozens of textures that go into the layers. These 3 textures are then uploaded to the asset server to be sent to anyone who can see your avatar. When the viewer generates these textures, they are generated at 512×512 resolution regardless of what the resolution of the clothing layers actually are! This is why the 1024×1024 resolution images these designers create never actually make it onto the avatar. This gray, unstriped avatar we see above is the result of resizing the 1024×1024 image down to 512×512. The color of each group of 4 pixels gets averaged together, and then turned into 1 pixel as illustrated below.
As a result, the detail of the stripes is completely destroyed, leaving behind only flat gray.
So! If you ever run across a designer claiming to sell “high res” clothes or skins, at least for the time being, they are either mistaken about the limits of SL clothing, or trying to create a false impression that their goods are on another level from those of “normal” designs. In the end, it’s all just a question of what they can fit into the 512×512 pixels they’re allowed, so just look closely at the design and let your eyes do the talking.