Legacy:S3TC

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to navigation Jump to search

S3TC

It's unknow why UED2 can successfully import textures in 24 bits BMP format. I've tested a 2048 x 2048 x 2048 room with a 2048 x 2048 texture in both 8 bits PCX and 24 bits format, the in game performance and quality were virtually the same. The weirdest thing is, if you enable s3tc in the settings you'll see a full resolution texture in game, but if you have s3tc turned off you'll see a blury downsampled texture.

According to some conversations with Diehard from the Unreal Retexturing Project, both Unreal and Unreal Tournament can take advantage of high resolution compressed textures. It's unknown which tool was used to create the high resolution textures found in UT's CD2. What is known is that if you install those textures from the second CD you'll certainly face some issues while playing online. In many servers there is a well known "skating / sliding characters" bug in case the player has installed the high resolution textures. It seems that those textures should never be installed server side, due to the previous noted issue with clients.

I suspect that the "skating / sliding characters" bug is caused by the skin textures. Not all textures in the CD2 are at higher resolution. Doing some google searches I've found that this bug can be related to a certain version of the skeletal animations package.

There is a UCC command called MergeDXT that enables the creation of s3tc compatible UTX packages. Uarch has written a quick guide on how to do it in UnrealSP community forums, it works as follow:

-First you'll need to create two exact copies of your UTX package, one cointaing the regular 8 bits textures and one cointaining 24 bits Bitmap versions.-

-Keep both packages in different folders but with exact same names.-

-Next call UCC mergeDXT command to merge both packages into one.-

Now comes the question: What the heck does mergeDXT do to merge both UTX packages in one and make s3tc possible? It's unknown wheter it's converting the textures to DDS during the process or not.

[Updated info] Judging by the filesize from both UTX packages, the BMP version and the outputted "what UCC calls s3tc" UTX package, there are three possible conclusions: 1. MergeDXT didn't compress any texture. 2. MergeDXT did compress the textures using some extra fast algorithm. 3. MergeDXT just flagged the textures, meaning that the compression happens during load time.

DDS

I've just found something neat. If you create a UTX package in UED3 containing only DXT1 compressed textures you can actually use it in UT99! However you need to force OpenGL rendering by editing the ini files to use DXT1 textures within UED2; the software render is unable to proper display DXT textures and will crash UED2 upon clicking any texture.

Interestingly though, you can use the mergeDXT trick to merge two UTX packages, one containg low res palletized textures and one contained high res DXT1 compressed textures. Even more surprinsingly a package done that way can be loaded in UED2 even in software rendering mode.

There is a tradeoff when you use pure DDS textures. People with older hardware that doesn't support hardware texure compression won't be able to run the map, on the other hand no palletes are stored in the UTX package, meaning that you can safely mess with it without ending with a "couldn't not find pallete xxxx" errors.

batch importing many DDS textures You can try this to import a lot of DDS textures at once.

Additional resources

s3tc and mapping

s3tc and servers

Wikipedia on s3tc

Official guide on s3tc textures and servers

Test package containing DXT1 textures for UT99

Filefront mirror

Torrent mirror dead

3D downloads mirror

Related Topics

Discussion

Sorry for the badly written page ;)