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.