|
 
 
 
 
|
Low-Level
Die Low-Level Funktionalitäten umfassen folgende Themengebiete:
- Gesamtarchitektur/-integration
Dieses Arbeitspaket beeinhaltet die Koordination der Entwicklungsarbeiten und
die Sicherstellung der Integrierbarkeit in ein kohärentes Ganzes. Hier werden
auch Entwicklungen die verschiedene Teilprojekte betreffen koordiniert, z.B. die
gemeinsame Mesh-Datenstruktur.
- Multi-Threading
Die effiziente und einfache Unterstützung mehrerer unabhängiger Threads, die
auf dem Szenegraph arbeiten, ist ein elementares Problem eines modernen
Renderers. In diesem Arbeitspaket werden effiziente Mechanismen zur Trennung und
Synchronisation der Daten verschiedener Threads entwickelt und bewertet.
- Traversierung/Rendering Backend
Ein zentrales Problem eines Szenengraphsystems ist die Traversierung des
Graphen
und die Bearbeitung verschiedener Aufgaben auf dem Graph. Hier gilt es einen
Mechanismus zu entwerfen und zu realisieren, der sowohl eine gute
Erweiterbarkeit bietet, um dynamisch neue Traversierungen an das System anbinden
zu können, als auch eine gute Granularität, um leicht einzelne Teile der
Aufgaben neu gestalten zu können. Darüberhinaus soll auch hier der
Multithreadfähigkeit des Systems Rechnung getragen werden indem verschiedene
gekoppelte Traversierungsaufgaben auf verschiedene Threads verteilt werden.
Eine der wenn nicht die zentrale Aufgabe eines Szenengraphsystems ist die
Umwandlung der im Graphen gespeicherten Daten in ein Bild. Moderne Algorithmen
für Echtzeitdarstellung haben hier Anforderungen, die über eine blosse
Traversierung weit hinaus gehen. Multipass-Verfahren benötigen mehrere
Durchläufe durch Teile des Graphen, andere Verfahren benötigen temporäre
Bilder, die vor dem eigentlichen Bild berechnet werden müssen, und zur
effizienten Ausnutzung der Graphikhardware müssen alle darzustellenden Objekte
nach ihrem OpenGL-Zustand sortiert bearbeitet werden. Eine einfache
Traversierung kann all dieses nicht leisten. Der hier verfolgte Ansatz baut eine
schnell traversierbare, leicht zu sortierende Zwischenstruktur auf, in der die
Daten gehalten werden.
- State Handling
Ein zentraler Aspekt zur effektiven Nutzung von Graphikhardware mit OpenGL ist
die Minimierung von Zustandswechseln, da diese die aus Effizienzgründen einfach
gehalten Graphikpipelines stören. In diesem Arbeitspaket werden Mechanismen
entwickelt, die die Minimierung dieser Zustandsänderungen unterstützen und
geeignete Kriterien zur Bewertung des Einflußes eines Zustandswechsels auf die
Performanz des Systems bereitstellen.
- Materialabstraktion
Moderne Graphikhardware unterstützt hochentwickelte Fähigkeiten zur
hochqualitativen Darstellung von Oberflächen. Allerdings unterscheiden sich
verschiedene Systeme hier erheblich. Um die Unterschiede der System vor dem
Benutzer zu verbergen und ihm eine einheitliche Schnittstelle bereitzustellen
werden hier Abstraktionen entwickelt, die sich geeignet auf die
erhältlichen Systeme abbilden lassen.
- Multipipe Handling/Clustering
Zum Betreiben immersiver Mehrseitenprojektionen werden mehrere Projektoren
angesteuert, die jeweils eigene Bildsignale benötigen. Diese können von
mehreren Graphiksubsystemen in einem Rechner geliefert werden, die von
verschiedenen Herstellern vertrieben werden. In diesem Arbeitspaket wird die
für die Unterstützung solcher Systeme notwendige Infrastruktur entworfen und
entwickelt.
Ein neuer Trend dreht sich um die Verwendung mehrerer unabhängiger Standard-PCs
zum Betreiben solcher Systeme. Dazu müssen die Daten des Szenengraphen über
alle Maschinen verteilt und synchronisiert werden. Auch das wird in diesem
Arbeitspaket entwickelt.
|