sebadorn.de

Stackless BVH traversal

Im Path Tracing verwendet man spezielle Datenstrukturen für die Geometrie, um diese schneller gegen die Strahlen testen zu können. Eine der üblichsten ist dabei die Bounding Volume Hierarchy (BVH) – ein Binärbaum, der die Szene immer weiter unterteilt. Einen solchen Baum würde man normalerweise rekursiv durchlaufen. Auf der GPU mit OpenCL steht jedoch keine Rekursion zur Verfügung.

Was man daher macht, ist, selbst einen kleinen Stack zu verwalten, in dem man sich den nächsten zu besuchenden Knoten merkt. Dieser Stack benötigt jedoch zusätzlichen privaten Speicher, welcher knapp bemessen ist, und dadurch die Anwendung ausbremst. Wünschens­wert ist daher ein Verfahren, das ohne Stack auskommt.

Aufbau und Ablauf

BVH-Baum.

  • Jeder Knoten hat entweder genau zwei oder keine Kindknoten.
  • Jeder Knoten hat zudem ein Attribut nextNode.
    • Für den linken Kindknoten zeigt nextNode auf den rechten Geschwisterknoten.
    • Für den rechten Kindknoten zeigt nextNode auf den Elternknoten.
Read more

Mit dem Upgrade zu Ubuntu 14.04 hätte ich noch warten sollen

Da meine Masterarbeit abgeschlossen ist, habe ich gestern das Upgrade von Ubuntu 13.10 auf 14.04 gewagt. Zwar gab es keine kritischen Probleme, aber doch einige Ärgernisse – wovon sich die meisten mit Recherche und Herumprobieren beheben ließen.

Konflikt zwischen Wine und NVIDIA-OpenCL

Es macht keinen Sinn, aber scheinbar hat jemand in den Paket-Abhängigkeiten gepfuscht oder sonst irgendetwas. Wollte man wine installieren, musste nvidia-libopencl1-331 deinstalliert werden und vice versa. Ich brauche beide Pakete. Wie sich herausstellte, lässt sich Wine 1.7 aber installieren.

Dafür fügt man das Wine Team PPA zu seinen Softwarequellen hinzu und kann dann wine1.7 installieren. Daraufhin lässt sich auch playonlinux installieren.

Sollte /usr/lib/libOpenCL.so dann immer noch fehlen, muss wahrscheinlich nur ein Symlink nachgetragen werden:

sudo ln -s /usr/lib/i386-linux-gnu/libnvidia-opencl.so.1 /usr/lib/libOpenCL.so

Fallout 3 läuft nicht mehr unter Wine

Ein leider noch ungelöstes Problem. Vor dem Upgrade lief Fallout 3 unter Wine ziemlich gut – nicht perfekt, aber ziemlich gut. Jetzt öffnet sich nur noch ein inhaltsloses Fenster. Eine Neu-Installation hat nicht geholfen. Mit Debugging bin ich auch noch nicht weit gekommen, da in den Logs kein eindeutiger Fehler zu finden ist. Wer Tipps hat, ich wäre dankbar. Vielleicht tauchen ja demnächst Leidensgenossen auf appdb.winehq.org auf.

[Update 2014-05-18]: Wine 1.7.19 ist erschienen und behebt genau dieses Problem (siehe Changelog).

Read more