Abb.: Time Control Unit des InVis-Systems
Um interaktive Frame-Raten zu erzeugen, wird bei InVis die Qualität jedes einzelnen Pipeline-Steps skalierbar gemacht. Jede Stufe kann über einen Parameter gesteuert werden, der die Qualität festlegt und damit natürlich auch die Verarbeitungszeit beeinflußt.
Damit die Pipeline bei der ersten Iteration schnell genug terminiert, gibt es eine Lookup-Tabelle, die geschätzte Startwerte für den Parameter enthält.
Der Parameter beeinflußt die Durchlaufzeit jeder einzelnen Stufe möglichst linear. Aufgrund der Abhängigkeiten einzelner Stufen untereinander (z.B. wird im data reduction Schritt weniger reduziert, braucht auch das Rendern viel länger), kann es zu einem Pendeleffekt kommen: Die gemessene Zeit ist etwas zu lang, der Parameter wird erniedrigt, die gemessene Zeit ist etwas zu kurz, der Parameter wird wieder erhöht, usw... Dieser Pendeleffekt ist jedoch minimal, das System ist so ausgelegt, daß es relativ schnell auf einen konstanten Wert konvergiert.
Auswirkungen von Time-Control auf die Pipeline-Schritte:
data acquisition |
In diesem ersten Schritt der Pipeline wird festgelegt, welche Informationen dargestellt bzw. weggelassen werden. Die Daten bestehen nun aus einem sichtbaren und einem unsichtbaren Teil. Wenn weniger dargestellt wird, laufen natürlich auch die folgenden Schritte der Pipeline schneller ab. |
data reduction |
Volumeninformationen können in eine skalierbare Form, z.B.
multiresolution wavelets, gebracht werden. Steht wenig Zeit zur Verfügung, werden die
Daten einfach in einer niedrigeren Auflösung geliefert. Diese Reduktion wirkt sich
zeitsparend auf alle folgenden Schritte der Pipeline aus, hat aber auch ihren Preis: Je
niedriger die Auflösung, umso gröber wird die Darstellung. Geometrische Objekte sind in zwei Gruppen unterteilt: Polygone (Dreiecke) und CSG Objekte. Bei Polygonen lassen sich Punkte zusammenfassen, wenn die Oberfläche nicht sehr stark gekrümmt ist. Dies reduziert drastisch die Punktanzahl und somit auch die Ausführungszeit aller folgenden Pipeline-Schritte. Je stärker hier reduziert wird, umso eckiger wird die Darstellung. Für CSG Objekte ist es aufgrund der Datenstruktur nicht notwendig, Vereinfachungen vorzunehmen.. |
visibility transformation |
Dieser Schritt kann nur zur Gänze weggelassen werden, um eine
Zeitersparnis zu erreichen. Man verwendet dann eine Standard-Farbe und eine
Standard-Transparenz. Wenn sich der Blickpunkt nicht stark ändert, kann ein object removal Algorithmus angewandt werden: Zuvor verdeckte Objekte werden nicht mehr dargestellt, bis wieder mehr Zeit zur Verfügung steht. |
viewing transformation & rendering |
Durch "progressive refinement" -Techniken läßt sich die Rendering-Zeit sehr stark beeinflussen. Zuerst wird ein grobes Bild erzeugt, das der Benutzer drehen und manipulieren kann. Verändert er nichts mehr, wird das Bild in mehreren Schritten immer feiner dargestellt. |