Textures in Outerworlds 3.0 and later
Multiple Texture Sizes
Another texture improvement beginning with 3.0 is that the browser can now support and display a wide range of different texture sizes. Unlike previous versions of Outerworlds, where all textures were limited to a fixed size of 128 x 128 pixels (or 256 x 256 pixels in the "high res" CD version), in 3.0 and later a variety of texture sizes are supported, including 64 x 64, 128 x 128, 256 x 256, and even 512 x 512 (although not all video cards support textures that large). Outerworlds decides what size texture to use based on the size of the JPEG original - the larger the JPEG, the larger the texture. This allows efficient use of texture memory while simultaneously providing access to a very high level of texture detail if and when it is required.
Also, textures no longer need to be square. The only requirement is that the width and height both are a power of two. When a JPEG original is converted to a texture for use in Outerworlds, the width and height for the texture are chosen as the largest power of 2 that is less than or equal to the width and height for the JPEG. For example, a JPEG original that is 300 pixels wide by 200 pixels high would be converted to a texture that is 256 pixels wide by 128 pixels high.
It is very important to note this introduces some new concerns for those who are developing content for Outerworlds 3.0 and later. With previous versions, one did not have to worry too much about the size of the JPEG original for a texture or picture because it was always converted to the same 128 x 128 dimensions regardless, and thus always took up the same amount of memory. But beginning with 3.0, a large JPEG original can wind up taking quite a bit of video memory (always a scarce resource!) because it gets stored in a larger texture. Remember that on most video cards, a single 256 x 256 texture takes up 128K of video RAM, and a single 512 x 512 texture takes half a megabyte! On many older video cards with video memory of 8 megs or less, using a lot of large textures in your world can quickly exhaust available video memory and force the hardware to use main system memory to store the additional textures. This can cause a significant performance hit for your visitors and discourage them from returning to your world.
Another concern to keep in mind is that it is always best to make sure that the dimensions of your JPEG originals are powers of 2 (for example, 128 x 128, 256 x 256, 256 x 128, etc.) While any dimension JPEG will work, JPEGs with dimensions that are not powers of 2 must be internally converted to new dimensions when they are loaded as textures. This conversion is an expensive operation (since the original image must be stretched or compressed and the pixel information resampled and smoothed to fit the new dimensions) which can quickly add up to slow down the browser if a lot of textures in the world need to be converted. The best way to avoid this problem is simply to make sure that your JPEGs originals all have power-of-2 dimensions so they can be translated directly into textures with no expensive conversion step.