Utherverse allows you to use many image formats primarily JPEG, and PNG. Here's a bit of brief info on all these formats:
JPEG - Joint Photographic Expert Group Format
Advantages:
* Small file size
* Viewable in almost all programs
Disadvantages:
* Lossy compression
* Image quality degrades every time it's saved
* Does not support transparency
* Not well suited for printing
History:
* Invented by the Joint Photographic Experts Group in 1986
* Today, it's the most commonly used image format on the web, the last place where file size is still more important than image quality.
* It's also commonly used in digital cameras, but that's changing fast.
PNG - Portable Network Graphics Format
Advantages:
* Lossless compression
* Fairly small file size
* Supports both alpha transparency and simple transparency
* Supports a wide range of color depths
Disadvantages:
* Not readable by all programs
* Not well suited for printing
* While PNG file size is small, it's not as small that of a JPEG
History:
* Originally conceived in 1995 as a potential superior replacement for the GIF format
* Unlike GIF, PNG has never been patented
* First released in 1996
* Became an international standard in 2003
* Popularity is steadily growing, but it's still not all that commonly used, relatively speaking
For most texturing purposes the PNG format would be the format of choice, as it allows for transparency.
FILE SIZE VS. TEXTURE MEMORY
It's not uncommon for those new to texturing to assume they should use highly compressed formats like JPEG out of the mistaken belief that keeping file sizes small will increase performance. People usually come by this presumption as a result of every day experiences using the internet, where it's easy to see that web pages load faster with smaller image files than with larger ones. For the novice, the expectation that this same behavior would apply equally to graphics applications is logical, but it's incorrect.
The perceived correlation between file size and speed on the web actually an illusion which has nothing to do with graphics processing. Where the internet is concerned, speed is primarily determined by the rate at which files can be sent from computer to computer. Since smaller files have less information to deliver, of course they get delivered faster.
The rate at which graphical images are processed on screen though actually has nothing whatsoever to do with file size. Graphics processing is all about texture memory, not about storage space.
Texture memory is always determined by the amount and depth of the actual pixels in the image, not the bits and bytes in which the file is stored. The amount of pixels in an image times the number of bits in each pixel will always equal the amount of texture memory the image uses, no matter what. Its file size can vary depending on in what format it is saved, but its actual texture memory consumption when the image is in view will always be the same.
Why that's important to the texture artist is pretty simple. Knowing the rudimentary mathematical principles of how images affect performance enables you to optimize your textures so you can ensure your creations are as lag free as possible while also being as high in quality as they can be. The key to success in any real time graphics application is always finding the right balance between detail and speed. Make your textures too big, and you use too much memory, slowing down your frame rate (and everyone else's). Make them too small, and while your system performance will be relatively good, your imagery might look terrible.
File size is not part of the equation when thinking in this context. What's relevant to performance and visual quality are the actual images, not the files that store them on hard drives. Graphics performance is affected not at all by file size, but by texture memory consumption. Texture memory is determined by the amount of pixels that make up each image, and the amount of memory bits in each pixel. That's it.
HOW TO CALCULATE TEXTURE MEMORY
Determining how much texture memory an image will consume is fairly straight forward. It's basically a count of the total amount of pixels in the image, multiplied by the number of bits in each pixel.
RGB color images without transparency have 24 bits per pixel, and those with transparency have 32 bits per pixel. So, for example, if you've got a non-transparent color image that is 1024x1024 pixels, here's how the math would break down:
1024x1024 = 1,048,576 total pixels
1,048,576 x 24 bits in each pixel = 25,165,824 total bits in the image
25,165,824 bits / 8 bits in every byte = 3,125,728 bytes, or precisely 3 megabytes
Pretty simple math. A 1024x1024 image (sans transparency) will always use exactly 3 megabytes of texture memory. That's regardless of whether or not the file is compressed for storage. As far as the graphics card is concerned, an image is just a collection of pixels to be drawn, not a file to be saved.
Just for informational purposes, here's a quick breakdown of all the generally relevant texture sizes, and their corresponding texture memory requirements:
Image Size Texture Memory Texture Memory
at 32-bit at 24-bit
1024x1024 4 MB 3 MB
1024x512 2 MB 1.5 MB
1024x256 1 MB 768 KB
1024x128 512 KB 384 KB
1024x64 256 KB 192 KB
1024x32 128 KB 96 KB
1024x16 64 KB 48 KB
1024x8 32 KB 24 KB
512x1024 2 MB 1.5 MB
512x512 1 MB 768 KB
512x256 512 KB 384 KB
512x128 256 KB 192 KB
512x64 128 KB 96 KB
512x32 64 KB 48 KB
512x16 32 KB 24 KB
512x8 16 KB 12 KB
256x1024 1 MB 768 KB
256x512 512 KB 384 KB
256x256 256 KB 192 KB
256x128 128 KB 96 KB
256x64 64 KB 48 KB
256x32 32 KB 24 KB
256x16 16 KB 12 KB
256x8 8 KB 6 KB
128x1024 512 KB 384 KB
128x512 256 KB 192 KB
128x256 128 KB 96 KB
128x128 64 KB 48 KB
128x64 32 KB 24 KB
128x32 16 KB 12 KB
128x16 8 KB 6 KB
128x8 4 KB 3 KB
64x1024 256 KB 192 KB
64x512 128 KB 96 KB
64x256 64 KB 48 KB
64x128 32 KB 24 KB
64x64 16 KB 12 KB
64x32 8 KB 6 KB
64x16 4 KB 3 KB
64x8 2 KB 1.5 KB
32x1024 128 KB 96 KB
32x512 64 KB 48 KB
32x256 32 KB 24 KB
32x128 16 KB 12 KB
32x64 8 KB 6 KB
32x32 4 KB 3 KB
32x16 2 KB 1.5 KB
32x8 1 KB 768 Bytes
16x1024 64 KB 48 KB
16x512 32 KB 24 KB
16x256 16 KB 12 KB
16x128 8 KB 6 KB
16x64 4 KB 3 KB
16x32 2 KB 1.5 KB
16x16 1 KB 768 Bytes
16x8 512 Bytes 384 Bytes
8x1024 32 KB 24 KB
8x512 16 KB 12 KB
8x256 8 KB 6 KB
8x128 4 KB 3 KB
8x64 2 KB 1.5 KB
8x32 1 KB 768 Bytes
8x16 512 Bytes 384 Bytes
8x8 256 Bytes 192 Bytes
Notice how much memory the larger textures demand. It doesn't take all that many to overwhelm a 256MB or 128MB video card. One of the reasons Utherverse can operate slowly is because of overwhelmed video cards. Many people use textures that are simply way too big, and as a result, video cards choke.
The average video card can only process a few hundred megabytes worth of textures at a time. Professional game artists are well aware of this, and so they make sure to optimize all their textures to keep them as small as possible. Most amateur-created content does not tend to benefit from the same professional wisdom.
For everyone's sake, always keep all textures as small as they can be. As a rule of thumb about 85% of textures should be 256x256 or smaller, the rest no bigger than 512x512. Utherverse is extremely good at displaying small textures on objects at full screen size. It's quite rare that there's a legitimate reason to go much larger than 256x256.
CHOOSING THE BEST TEXTURE SIZE FOR THE JOB
The two most important factors in determining what size to make a texture is to think about how much screen real estate that texture is likely to occupy, and how much fine detail does it really need relative to its size.
For example, if you're doing a life size replica of the Sistine Chapel, with giant ceiling murals that are likely to fill the entire screen, and with lots of fine details that people are likely to zoom in on and study, go with 512's by all means. However, for the parts that aren't likely to fill much of the screen, like a pair of shorts, use something MUCH smaller.
Again, it's all about finding the optimum balance between texture memory and texture detail. That means using good, sound judgment. Choose your texture sizes carefully. Make appropriate decisions.
That's it for the original except, just to put it in a little more perspective in terms of Utherverse. The average Avatar fully clothed using 8 textures. Based on the above information if all those textures were 1024x1024 PNG files that's 4meg per texture, 8 textures, 32meg for 1 avatar. Most machines running Utherverse have 256 or 128meg video cards so worst case 32 meg out of 128 meg for 1 avatar is *very* costly. In a room with 20 other avatars dressed with equally sized textures, well the math is simple 640meg needed to display the avatars, 128meg available, it's not going to work.
Please keep in mind that what you all as designers create dramatically affects everyone who see's your work, most likely in ways that you probably never imagined. Please keep this article in mind when creating, for everyones sake.
256x512 512 KB 384 KB
256x256 256 KB 192 KB
256x128 128 KB 96 KB
256x64 64 KB 48 KB
256x32 32 KB 24 KB
256x16 16 KB 12 KB
256x8 8 KB 6 KB
128x1024 512 KB 384 KB
128x512 256 KB 192 KB
128x256 128 KB 96 KB
128x128 64 KB 48 KB
128x64 32 KB 24 KB
128x32 16 KB 12 KB
128x16 8 KB 6 KB
128x8 4 KB 3 KB
64x1024 256 KB 192 KB
64x512 128 KB 96 KB
64x256 64 KB 48 KB
64x128 32 KB 24 KB
64x64 16 KB 12 KB
64x32 8 KB 6 KB
64x16 4 KB 3 KB
64x8 2 KB 1.5 KB
32x1024 128 KB 96 KB
32x512 64 KB 48 KB
32x256 32 KB 24 KB
32x128 16 KB 12 KB
32x64 8 KB 6 KB
32x32 4 KB 3 KB
32x16 2 KB 1.5 KB
32x8 1 KB 768 Bytes
16x1024 64 KB 48 KB
16x512 32 KB 24 KB
16x256 16 KB 12 KB
16x128 8 KB 6 KB
16x64 4 KB 3 KB
16x32 2 KB 1.5 KB
16x16 1 KB 768 Bytes
16x8 512 Bytes 384 Bytes
8x1024 32 KB 24 KB
8x512 16 KB 12 KB
8x256 8 KB 6 KB
8x128 4 KB 3 KB
8x64 2 KB 1.5 KB
8x32 1 KB 768 Bytes
8x16 512 Bytes 384 Bytes
8x8 256 Bytes 192 Bytes
Notice how much memory the larger textures demand. It doesn't take all that many to overwhelm a 256MB or 128MB video card. One of the reasons Utherverse can operate slowly is because of overwhelmed video cards. Many people use textures that are simply way too big, and as a result, video cards choke.
The average video card can only process a few hundred megabytes worth of textures at a time. Professional game artists are well aware of this, and so they make sure to optimize all their textures to keep them as small as possible. Most amateur-created content does not tend to benefit from the same professional wisdom.
For everyone's sake, always keep all textures as small as they can be. As a rule of thumb about 85% of textures should be 256x256 or smaller, the rest no bigger than 512x512. Utherverse is extremely good at displaying small textures on objects at full screen size. It's quite rare that there's a legitimate reason to go much larger than 256x256.
CHOOSING THE BEST TEXTURE SIZE FOR THE JOB
The two most important factors in determining what size to make a texture is to think about how much screen real estate that texture is likely to occupy, and how much fine detail does it really need relative to its size.
For example, if you're doing a life size replica of the Sistine Chapel, with giant ceiling murals that are likely to fill the entire screen, and with lots of fine details that people are likely to zoom in on and study, go with 512's by all means. However, for the parts that aren't likely to fill much of the screen, like a pair of shorts, use something MUCH smaller.
Again, it's all about finding the optimum balance between texture memory and texture detail. That means using good, sound judgment. Choose your texture sizes carefully. Make appropriate decisions.
That's it for the original except, just to put it in a little more perspective in terms of Utherverse. The average Avatar fully clothed using 8 textures. Based on the above information if all those textures were 1024x1024 PNG files that's 4meg per texture, 8 textures, 32meg for 1 avatar. Most machines running Utherverse have 256 or 128meg video cards so worst case 32 meg out of 128 meg for 1 avatar is *very* costly. In a room with 20 other avatars dressed with equally sized textures, well the math is simple 640meg needed to display the avatars, 128meg available, it's not going to work.
Please keep in mind that what you all as designers create dramatically affects everyone who see's your work, most likely in ways that you probably never imagined. Please keep this article in mind when creating, for everyones sake.