Eliminierung einer Dimension



  • Hallo Leute,

    ich beschäftige mich mit Atmospheric Scattering und in dem Buch GPU Gems II wird ein Verfahren beschrieben und das verstehe ich leider nicht ganz.

    Also, zuerst ist eine 2D-Lookup-Table (man könnte auch sagen eine 2D-Textur) gegeben. Die x-Werte entsprechen der Höhe und gehen von 0 bis 1 (1 = Maximalhöhe) und die y-Werte sind Winkel, ebenfalls von 0 bis 1 (0 = 0° und 1 = 180°). Und an jedem Tupel in dieser 2D-Tabelle steht jetzt ein Wert (genauer: die optische Tiefe für die Atmosphäre bei Höhe x und Winkel y).
    Im Grunde habe ich also einfach folgende Abbildung:
    H x W -> T (sprich: Ein Tupel aus Höhe und Winkel (x,y) liefert mir die optische Tiefe).

    Und nun will der Autor eine "Dimension eliminieren".
    Dazu schreibt er folgendes:

    I plot the results of the lookup table on a graph. I plotted height from 0.0 to 1.0 along the x axis and the lookup table result (optical depth) along y axis. for varius angles sampled from 0 to 1, I plotted a seperate line on the graph.

    Damit meint er, er zeichnet mehrere Kurven für mehrere Winkel ein, oder? (also 1 Winkel = 1 Kurve) (habe dazu eine Skizze gemacht mit einer Kurve: http://img221.imageshack.us/my.php?image=curvezs8.jpg )

    I noticed right away that each line dropped off exponentially as x went from 0 to 1, but the scale of each line on the graph varied dramatically. To make it easier to compute the shapes of the curves of each line, I decided to normalize them. I took the optical depth value at x=0 for each line and divided all of the values on that line by that value.

    Damit meint er, er nimmt bei jeder Kurve f(0) und teilt die ganze Kurve durch f(0)?

    To my surprise, almost all of the normalized lines fell right on top of each other on the graph! The curve was almost exactly the same for every one, and that curve turned out to be exp(-4x).

    "fell on top of each other". Heißt das, die Kurven lagen "aufeinander"? Also quasi nahezu identische Kurven?

    exp(-4x) works very well for eliminating the x axis on the lookup table

    Das ist der Knackpunkt und den verstehe ich nicht. Wir wissen also jetzt, dass alle Kurven (egal für welchen Winkel) in etwa die Form von exp(-4x) haben. Aber was meint er damit, dass wir damit die x Achse eliminiert haben? 😕

    Danke!



  • Zunächst mal 3 Jas. Deine Interpretation ist richtig. So, was meint der nun mit x-Achse eliminiert.

    Vorher hattest du einen 2d-lookup mit x-Achse und Y-Achse (Winkel). Er hat nun rausgefunden, dass er für einen gegebenen Winkel y einfach das f(0) nachschaun kann und dann mit exp(-4x)*f(0) den Funktionswert finden. Er braucht also entlang der x-Achse keinen lookup, weil er das stattdessen mit einer Funktion erledigt.



  • Hallo Jester,

    vielen Dank für die schnelle Antwort!
    Ok, nehmen wir an L(x,y) ist der Wert (optical depth od) in der lookup-Tabelle an Koordinate (x,y) (Höhe, Winkel), dann bekomme ich doch den Wert nach der Aussage im Buch auch so:
    L(x,y) = exp(-4x)*L(0,y)

    1. Stimmt das?
    2. Aber dann steht ja in der Formel nach wie vor x und y, das heißt ich habe im Grunde nach wie vor eine Abbildung H x W -> T. Wieso habe ich dann angeblich um eine Dimension verringert? Meint er damit einfach, dass beim Lookup das x keine Rolle mehr spielt? (ich schaue ja quasi immer bei x=0 in der Tabelle nach)


  • ja, aber alles, was du dir jetzt noch merken musst, sind die entsprechenden y_0 werte


Anmelden zum Antworten