Texturen
Inhaltsverzeichnis
Texturen
Eine Textur ist eine Art Bild, welches im Speicher der Grafikkarte abgelegt wird, um dann beim Rendern auf einzelne Polygone oder ganze Objekte gezeichnet zu werden. Die einzelnen Bildpunkte einer Textur werden nicht wie bei sonstigen Bildern im Computer Pixel sondern Texel genannt. Durch unterschiedliche Projektion der Textur, wie z.B. Skalieren oder Rotieren, kann ein Texel im späteren Bild einem Pixel, dem Bruchteil eines Pixels oder einer ganzen Gruppe an Pixeln entsprechen.
Arten
Unter OpenGL gibt es (momentan) drei verschiedene Texturtypen :
1D-Textur
Eine 1D-Textur ist immer einen Pixel hoch, die Breite ist frei (je nach Hardware allerdings auf 2^n*1 beschränkt) wählbar. 1D-Texturen werden oft als Lookup-Tabellen verwendet, siehe z.B. Abschwächung von Lichtquellen (wo der Abschwächungsfaktor dann in der 1D-Textur liegt) oder die Abstufungen für nicht-photorealistische Effekte wie z.B. einen Comic-Look.
2D-Texturen
Die am meisten verwendete Texturenart. Sowohl Breite als auch Höhe sind frei wählbar (je nach Hardware allerdings auf 2^n*2^n beschränkt) und eine 2D-Textur kann man sich als ein "Bild" vorstellen dass auf eine Oberfläche aufgeklebt wird. Im 3D-Echtzeitbereich (im Profi-Bereich ist es oft anders, dort wird meist ganz auf Texturierung verzichtet) werden sogut wie alle Oberflächen über 2D-Texturen realisiert. Allerdings geht der Trend zumindest bei prozeduralen/dynamischen Materialien mehr in Richtung Shader.
3D-Texturen
Im Gegensatz zu 2D-Texturen gibt es hier noch eine Tiefe, die auch oft als "Slices" (Scheiben) bezeichnet werden. Hauptsächlich werden diese Texturen für volumetrische Effekte verwendet, und sind daher bei medizinischen Anwendungen weit verbreitet. Allerdings kann man mit diesem Texturentyp noch viele andere Sachen machen, z.B. Animationen, die dann in den Scheiben als Frames abgelegt werden, oder Lichtquellen, wo die Lichtstärke dann als dreidimensionale Funktion in der Textur abgelegt wird. Nachteilig ist allerdings der recht hohe Speicherverbrauch und die Tatsache dass v.a. ältere Grafikkarten 3D-Texturen nur per Software (also sehr langsam) oder gar nicht beherrschen.
- IHR SEIT DOCH ALLE BEHEMMERT!**
Kompressionen
Damit möglichst viele und möglichst hochaufgelöste Texturen in den schnellen Grafikkartenspeicher passen und nicht in den langsameren Hauptspeicher ausgelagert werden, können Texturen auch komprimiert werden. Dies hat mehrere Vorteile:
- Es passen wesentlich mehr Texturen in den Grafikkartenspeicher
- Es können höher aufgelöste Texturen verwendet werden
- Die Rendergeschwindigkeit kann erhöht werden, da zum Rendern weniger Daten über den Bus der Grafikkarte geschoben werden müssen