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

Quod Libets optische Bewertungs-Note ersetzen

Quod Libet mit Noten als Bewertungseinheit

Quod Libets Bewertung erfolgt in Notensymbolen, wie auf dem oberen Screenshot zu sehen. Das finde ich etwas verbesserungsbedürftig, denn das Symbol ist dünn und beim flüchtigen Blick über die Liste fällt es mir da schwer, schnell die unterschiedlichen Bewertungen auszumachen. Also: Sterne sollen es wieder sein.

cd /usr/lib/pymodules/python2.6/quodlibet/util/
gksudo gedit __init__.py

Im Terminal (Ubuntu) wechselt man in das Verzeichnis, in denen die Pythondateien von Quod Libet liegen und editiert __init__.py. Da es sich um Python handelt, ist es wichtig auf korrekte Einrückung zu achten. Hier wurde mit 4 Leerzeichen eingerückt.

RATING_PRECISION = 0.25
def format_rating(value):
    """Turn a number into a sequence of music notes."""
    # Default Note: u'\u266a'  Star: u'\u2605'
    return (u'\u2605' * int(round((1/RATING_PRECISION) * value)))

Am Anfang des return statements ersetzt man den Unicode mit dem für das gewünschte Zeichen. Der Kommentar stammt von mir und sagt hoffentlich alles. Weil Python so toll ist, reicht es den in lesbarer Form vorliegenden Quellcode zu editieren und das Programm neuzustarten. Falls es nicht direkt klappt, löscht mal die __init__.pyc.

Quod Libet mit Sternen als Bewertungseinheit


Anmerkung: Nach einem Update des Players ist die Veränderung sehr wahrscheinlich wieder überschrieben und muss erneut vorgenommen werden.

Read more

Kapitelende: 1. Semester

Heute ist endlich die letzte Note eingetragen worden. Alle Prüfungen bestanden! Wohoo! Und auch GDS und Programmieren 1, bei denen ich Bedenken hatte, sind sehr zufriedenstellend ausgefallen.


Vier nützliche Open-Source-Programme

Der Titel sagt es, so here we go:

The Gimp

Das „GNU Image Manipulation Programm“ dürfte das mit Abstand bekannteste kostenlose Bildbearbeitungsprogramm sein. Ich bezweifel zwar, dass es mit Photoshop Schritt halten kann, aber dafür kostet es auch keine 1000€. Nachdem ich mich erst einmal an das frei gelöste Interface gewöhnt habe, will ich es gar nicht mehr missen. Durch PlugIns und Skripte ist Gimp zudem noch erweiterbar, jedoch unter uns gesagt, die meisten Erweiterungen sind ziemlich überflüssig. Aber es gibt auch PSPI, ein PlugIn, das es ermöglicht, Photoshop-PlugIns, welche im .8bf-Format vorliegen, zu nutzen. Und dazu gleich eine Empfehlung: Die FreePlugins-Sammlung von Flaming Pear, ganz besonders „Zombie“ zaubert einen tollen Effekt.
Gimp-Benutzeroberfläche

Website des Gimp: http://www.gimp.org/

Notepad++

Notepad++ zeigte mir die engelsgleiche Gestalt des Syntax-Highlighting. Und dabei wird so ziemlich alles unterstützt, was man gebrauchen kann: (X)HTML, Actionscript, CSS, JS, PHP, SQL, XML, natürlich auch normaler Text und noch einiges mehr. Dabei kann man mehrere Tabs gleichzeitig geöffnet haben und übergreifend in allen Dokumenten z.B. ein bestimmtes Wort ersetzen lassen.

Website zu Notepad++: http://notepad-plus.sourceforge.net/de/site.htm

Scribus

Während meinem Praktikum in der 12. Stufe habe ich mit QuarkXPress gearbeitet und dadurch das Desktop Publishing kennengelernt. Nun hat QuarkXPress aber einen mit Photoshop vergleichbaren Preis und ich habe mich auf die Suche nach einer (Open Source) Alternative gemacht. Wo bin ich gelandet? Richtig, bei Scribus. Vor der Installation des eigentlichen Programmes muss man allerdings erst noch Ghostscript installieren, dabei bricht man sich aber auch keinen Zacken aus der Krone. Scribus gibt es mittlerweile auch schon in Version 1.3.4, allerdings nur als „devel“ — in der Entwicklung befindlich. Macht mir aber nichts, es funktioniert trotzdem recht gut, bis auf kleine Probleme in der Druckvorschau und gelegentliche Ruckler.

Website zu Scribus: http://www.scribus.net/

OpenOffice

Ganz ehrlich: Microsoft Office 2007 wäre mir lieber und ich spiele auch mit Kaufgedanken. Aber vorerst nutze ich OpenOffice, wo so ziemlich alles drinne ist, was in ein Büropaket reingehört: Text- und Tabellenverarbeitung, Datenbank, Präsentationen und noch etwas anderes. Nur nicht so qualitativ hochwertig wie Office '07. Dafür haben die Entwickler mitgedacht und so ist es möglich, Dateiformate anderer Programme zu öffnen und auch in solchen abzuspeichern, wie z.B. .csv, .doc, .ppt, .xls, .xml. Des Weiteren bietet es die Möglichkeit, das Dokument als PDF zu exportieren.

Die Website des OpenOffice: http://www.openoffice.org/

Diese Viere wollte ich mal eben vorstellen. Ein paar andere seien aber auch noch erwähnt: