Zum 3DCenter Forum
Inhalt




Grafik-Filter: Bilinear bis Anisotrop im Detail

10. Dezember 2001 / von aths / Seite 1 von 9



  Vorwort und Begriffserklärung
  (Der Einstieg)

Anm.: Einige der Seiten erfordern eine Auflösung von 1024x768, ansonsten bildet sich ein horizontaler Scrollbalken. Zudem sind die Dateigrößen einiger Bilder recht groß, weil sie fast ausschließlich verlustfrei komprimiert wurden. Beide Layout-Einschränkungen waren notwendig, um die für diesen Artikel sehr wichtige Exaktheit zu wahren.


Etwa 1996 war klar, dass der Siegeszug der 3D-Beschleunigerkarten nicht mehr aufzuhalten ist. Das lag unter anderem daran, dass man mit spezieller Hardware endlich gefilterte Grafik zu sehen bekam. Schon Software-Engines nutzten einige Tricks. Unser Gehirn nimmt die Informationen des Auges zwar grundsätzlich nur gefiltert auf. Doch hier soll es nicht um eine philosophische Exkursion gehen. Stattdessen wird ein Ausflug in die Materie der 3D-Grafik-Filterung unternommen. Mit Begriffen wie "trilinear" können die meisten ungefähr etwas anfangen.

Doch was verbirgt sich genau dahinter? Warum nehmen hochwertige Filter heute einen so hohen Stellenwert ein? Warum sind sie so rechenlastig? Das klärt dieser Artikel. Dazu fallen ein paar Begriffe, die den einen oder anderen vielleicht an höhere Mathematik erinnern. Doch der Leser braucht nicht zu erschrecken: Wer die vier Grundrechen-Arten beherrscht, kann alles im Detail verstehen.

Filter spielen auch im täglichen Leben eine Rolle.

Zu jedem Filter gibt es eine Einleitung, dann wird er im Detail beschrieben. Es wird auch - im Rahmen - gerechnet, um ihn wirklich transparent zu machen. Zahlen können gelegentlich mehr sagen als Worte. Anschließend wird eine Low-Cost-Variante diskutiert. Zum Abschluss werden unter dem Stichpunkt "Vorteile" die Qualitätsgewinne des entsprechenden Filters zusammen gefasst. Unter "Probleme" werden dann die Nachteile erläutert, welche noch eine Verbesserung erfordern.

Bevor es weiter geht, sind einige Begriffe zu klären. Ohne diese kann nicht in die Tiefe gegangen werden. Wie erwähnt reichen normale Schulkenntnisse für das Verständnis aus.

Unter Pixel wird hier ein Punkt auf dem Bildschirm verstanden.

Ein Punkt (ein einzelner Farbwert) in einer Textur wird hier Texel genannt.

Ein Vektor ist ein Gebilde aus mehreren Komponenten. In der 3D-Grafik lässt sich ein Punkt durch einen Vektor beschreiben. Er enthält dann drei Zahlen (für jede Dimension eine) und repräsentiert je X, Y und Z. Im Prinzip ist es nur eine bequeme Schreibweise, um Zahlen zusammenzufassen. Dass man Vektoren umrechnen kann, und zwar in Länge und Winkel, spielt in diesem Artikel keine Rolle. In der Physik haben Vektoren noch extra Bedeutungen.

Beispiel eines Vektors. Dieser besteht aus drei Komponenten. 3D-Vektoren nutzen zwar üblicherweise vier Komponenten (neben X, Y und Z noch W, den Abstand zum Betrachter) doch das kann hier vernachlässigt werden.

Eine Matrix ist eine Tabelle. Während ein Vektor nur eine Spalte und mehrere Zeilen enthält, besitzt eine Matrix mehrere Spalten.

Beispiel einer Matrix. Sie kann, aber muss nicht quadratisch sein. Hier wurden drei Vektoren nebeneinander geschrieben, und so enstand diese Matrix. Der Vorteil von Matrizen ist die kompakte Schreibweise.

Die lineare Interpolation ist ein einfaches und sehr häufig verwendetes Verfahren. Angenommen, für eine Funktion sind nur einige Funktionswerte bekannt. Dazwischen klaffen Lücken. Was kann man tun, wenn man einen Funktionswert braucht, der nun ausgerechnet in einer der Lücken liegt? Dazu nimmt man die beiden Funktionswerte, die links und rechts vom gewünschten Wert liegen und bildet den gewichteten Mittelwert.

Von x=7 und x=8 sind die Werte bekannt, es ist aber ein Wert für x=7.25 gesucht. Das Ergebnis liegt irgendwo zwischen beiden Funktionswerten. Das linke Gewicht berechnet sich aus dem x2 - x. Das rechte Gewicht ergibt sich aus x - x1. Damit wird der Funktionwert für 7 mit (8 - 7.25) = 0.75 gewichtet, und der Funktionwert für 8 mit (7.25 - 7) = 0.25. Man setzt nun ein: 9.8 x 0.75 + 14.5 x 0.25 und erhält 10.975. Geometrisch erklärt: Es wird angenommen, dass beide Funktionswerte einfach mit einer Linie verbunden werden könnten.

Genug der Vorrede. Im nächsten Kapitel geht es endlich um Texturen.






Kommentare, Meinungen, Kritiken können ins Forum geschrieben werden - Registrierung ist nicht notwendig Weiter / Next

Shortcuts
nach oben