www.wikidata.de-de.nina.az
S3 Texture Compression S3TC manchmal auch DXTn oder DXTC ist ein ursprunglich fur die Savage 3D entwickeltes Texturkomprimierungssystem von S3 Graphics das im Jahre 1997 zum Patent angemeldet wurde 1 Es eignet sich im Gegensatz zu Bildkompressionsalgorithmen wie JPEG fur hardwarebeschleunigte Computergrafik da es eine feste Datenkompressionsrate besitzt und nur einen Speicherzugriff pro Texel benotigt Durch die Aufnahme in DirectX 6 0 wurde S3TC schnell herstellerubergreifend akzeptiert und ist heute der vorherrschende Standard Die DXT Formate werden in OpenGL als Extension unterstutzt Inhaltsverzeichnis 1 Ubersicht 2 Funktionsprinzip 3 DXT1 4 DXT3 5 DXT5 6 Kritik 7 Weblinks 8 EinzelnachweiseUbersicht BearbeitenS3TC besteht aus funf Formaten die nach den ihnen in DirectX zugewiesenen FourCC Identifikation als DXT1 bis DXT5 benannt wurden und sich in der Handhabung des Alphakanals unterscheiden DXT2 und DXT4 werden kaum verwendet und sind im Gegensatz zu den anderen drei Formaten auch nicht Teil der OpenGL Erweiterung fur S3TC Wie jeder andere verlustbehaftete Kompressionsalgorithmus versucht S3TC sichtbare Artefakte trotz hoher Datenpackrate zu minimieren So kann bei gleichem Speicherbedarf eine Textur mit deutlich hoherer Auflosung verwendet werden was insgesamt zu einem besseren Ergebnis fuhrt Wie die meisten modernen Algorithmen zur Bildkompression legt S3TC nur fest wie die Daten entpackt werden und lasst damit Spielraum fur verschiedene Ansatze bei der Kompression Trotzdem fallen Lizenzgebuhren an da die grundlegende Implementation von einem Patent abgedeckt wird Mit Direct3D 10 wurden die funf DXT Stufen als veraltet deprecated eingestuft Der Unterschied zwischen vorher und nachher multiplizierten Alpha Werten wird nicht mehr gemacht Aus DXT1 wird BC1 aus DXT2 und DXT3 wird BC2 aus DXT4 und DXT5 wird BC3 2 Funktionsprinzip BearbeitenInsgesamt wurden funf Algorithmen entwickelt die auf demselben Prinzip basieren aber fur verschiedene Typen von Bilddaten ausgelegt sind Die Textur wird zunachst in 4 4 Texel Blocke zerlegt Aus den 16 Farbwerten werden zwei 16 Bit RGB 565 Farben berechnet Die einzelnen Algorithmen berechnen aus diesen beiden weitere Farbwerte und speichern sie in einer Lookup Tabelle Wie in einer Grafik mit Farbpalette wird fur jedes Texel nur der Index des am besten passenden Farbwertes in der Tabelle gespeichert und nicht die Farbe des Texels selbst Die Eintrage dort konnen mit nur wenigen Bits adressiert werden so dass sich bei 32 Bit RGBA Texturen Kompressionsraten von 8 1 bei DXT1 und 4 1 bei allen anderen Codecs ergeben DXT1 BearbeitenFur jeden 4 4 Textur Block werden neben den beiden 16 Bit Farbwerten pro Texel ein 2 Bit Index berechnet Insgesamt werden also 64 Bit pro Block benotigt und die Lookup Tabelle kann maximal vier Eintrage enthalten Falls der erste Farbwert grosser als der zweite ist lauten die beiden anderen c 2 2 3 c 0 1 3 c 1 displaystyle c 2 2 over 3 c 0 1 over 3 c 1 nbsp c 3 1 3 c 0 2 3 c 1 displaystyle c 3 1 over 3 c 0 2 over 3 c 1 nbsp Ansonsten gilt c 2 1 2 c 0 1 2 c 1 displaystyle c 2 1 over 2 c 0 1 over 2 c 1 nbsp c 3 t r a n s p a r e n t displaystyle c 3 transparent nbsp DXT1 komprimiert im Vergleich zu den anderen Algorithmen doppelt so stark da hier keine Alpha Werte gespeichert werden DXT3 BearbeitenDXT3 komprimiert die Farbwerte wie DXT1 jedoch wird nicht zwischen den beiden Schemata unterschieden sondern immer die erste Variante mit vier opaken Farben verwendet Transparenz wird durch einen zusatzlichen 4 Bit Alphakanal ermoglicht Insgesamt werden 128 Bit pro Block benotigt DXT3 eignet sich vor allem fur Texturen mit harten Ubergangen zwischen transparenten und opaken Bereichen DXT5 BearbeitenDXT5 komprimiert die Farbwerte wie DXT1 Es werden zwei 8 Bit Alphawerte gespeichert sowie pro Pixel ein 3 Bit Wert der zum Interpolieren zwischen den Alphawerten dient Falls der erste Alphawert grosser als der zweite ist werden durch lineares Interpolieren acht Alphawerte erhalten Ansonsten werden nur sechs Alphawerte durch Interpolieren erzeugt wahrend die anderen beiden 0 und 1 sind Es werden 128 Bit pro Block benotigt Kritik BearbeitenIn der Praxis haben sich vor allem Cartoon artige Zeichnungen und Normal Maps als problematisch erwiesen Der von ATI entwickelte 3Dc Algorithmus setzt auf S3TC auf komprimiert Normals Maps aber deutlich effizienter Auch Id Software beschaftigte sich bei der Entwicklung von Doom 3 mit dem Thema Die Programmierer umgingen das Problem zumindest teilweise indem sie den roten Farbkanal mit dem Alpha Kanal vor und nach der Kompression vertauschten 3 Um S3TC mit Mesa 3D nutzen zu konnen muss die Bibliothek libtxc dxtn installiert sein 4 Weblinks BearbeitenTexture compression survey englisch PDF Datei 1 35 MB Folien eines Vortrags uber Texturkomprimierung PDF Datei 1 36 MB GL EXT texture compression s3tc OpenGL Erweiterung englisch Einzelnachweise Bearbeiten Patent EP1034505B1 System und Verfrahren fur blockbasierte Bildkompression mit fester Rate unter Verwendung von abgeleiteten Pixelwerten Angemeldet am 28 September 1998 veroffentlicht am 25 November 2009 Anmelder S3 Graphics Co Ltd Erfinder Konstantine Iourcha et al Deprecated Features Direct3D 10 DOOM 3 Video Requirements S3TC with DRI drivers Abgerufen von https de wikipedia org w index php title S3 Texture Compression amp oldid 237965149