Artykuly - [UE1] Kompresja S3TC - ciag dalszy by Raven dnia: 20 Wrzesien 2008, 20:52
     Kompresja S3TC (S3 Texture Compression), czasami nazywana DXTn lub DxTC jest to algorytm kompresji obrazów rozwiniety przez firme S3 Graphics, Ltd. dla lini kart graficznych (w zasadzie akceleratorów) Savage 3D. W przeciwienstwie do niektórych algorytmów (np. JPEG), S3TC ze stalym wspólczynikiem kompresji polaczonym z szybkim dostepem do pamieci nadawaje sie idealnie do wykorzystania w grach komputerowych. S3TC jest kompresja stratna, jednakze nadrabia to mozliwoscia zwiekszenia rozmiarów tekstury (np. w Unreal Engine 1, maksymalny rozmiar to 4096x4096).

     Aby wlaczyc kompresje S3TC w UT (bo na tej grze zamierzam sie skupic) nalezy zainstalowac patcha 436, a takze nowe sterowniki graficzne, których autorem jest Chris Dohnal. Wazne jest, aby jako jako domyslny sterownik wybrac OpenGL, Direct3D8 lub Direct3D9, i w opcjach ustawic parametr UseS3TC na true. Tekstury w wysokiej jakosci dla UT mozna sciagnac z UT Retexturing Project. Nalezy takze pamietac, aby nie uzywac ich w UnrealED.

     Tworzenie skompresowanych tekstur

     Do utworzenia skompresowanych plików .utx potrzebujem dwóch wersji jednej tekstury - w wysokiej i niskiej rozdzielczosci. Ponizej jest przykladowe ustawienia:

Dla high/mid-endowych kart graficznych (powyrzej 256MB)


normalna
S3TC
2
256
4
256
8
256
16
256
32
256/512
64
512
128
1024
256
2048/4096
512
4096


Dla low-endowych kart graficznych (128MB i mniej)


normalna
S3TC
2
128
4
128
8
128
16
128
32
256
64
256
128
512
256
1024
512
2048


Kolejnym krokiem jest utworzenie specjalnej struktury katalogów np.:oraz zimportowanie tekstur. Wlacz UnrealED i zimportuje tekstury w niskiej rozdzielczosci. Plik .utx zapisz w katalogu c:\low. Nastepnie zimportuj tekstury w wysokiej rozdzielczosci. Plik .utx nalezy zapisac w katalogu c:\high. Bardzo wazne jest aby oba pliki .utx byly calkowicie identyczne. Maja miec taka sama nazwe i liczbe tekstur; tekstury zas musza sie identycznie nazywac i byc w tych samych grupach. Innymi slowy tekstury w tych dwóch plikach maja sie róznic jedynie wielkoscia.

     W chwili gdy pliki .utx sa zrobione, mozna przystapic do laczenia i kompresji. Aby ulatwic zadanie warto sciagnac program Merge DXT i ustawic odpowiednio sciezki:

i nacisnac przycisk MergeDXT. Po jakims czasie w katalogu c:\merged znajdzie sie wynikowy plik .utx - zawierajacy skompresowane tekstury.

     Podczas kompresji pliki .utx z katalogów c:\low oraz C:\high zostaly zlaczone tak, iz kazda tekstura w niskiej rozdzielczosci posiada swój wysokiej jakosci odpowiednik. Dzieki temu osoby ze starszymi komputerami, lub zmienna UseS3TC ustawiona na false zobacza tekstury w standardowej jakosci, zas kazdy z UseS3TC ustawionym na true, zobaczy ich odpowiednik skompresowany w S3TC.