Hybrid Rendering

Im Zuge dieses Projekts entwickeln wir ein hybrides Rendering-System, welches einerseits die Stärken verschiedener Render-Algorithmen, Hardware-Modelle und Anzeigetechnologien kombiniert, während es andererseits deren bekannte Schwächen vermeidet. Der Begriff hybrid hat in diesem Kontext drei Bedeutungen:

Erstens verwendet unser System gleich mehrere Rendering-Methoden, wie etwa paralleles Ray Casting oder GPU-gestützte Rasterisierung. Es bestimmt dynamisch, welcher Ansatz für welchen Teil einer Szene Anwendung findet und setzt diese Teile dann zu einem endgültigen Bild zusammen.

Zweitens verwendet das System sowohl Client- als auch Server-Hardware und -Software, die sich auch an schnell ändernde Umgebungen anpassen können.

Zu guter Letzt bedeutet hybrides Rendering aber auch die Darstellung auf einer Vielzahl von Geräten, angefangen bei High-End-Multi-Touch VR-Ausrüstung, über Workstations und Commodity-Hardware, bis hin zu tragbaren Geräten wie Tablet-PCs, Pads und Smartphones. Werden diese Geräte in Kombination miteinander genutzt, so versetzen sie Nutzer in die Lage, das Beste aus ihrer Hardware- und Software-Umgebung herausholen zu können.

Im letzten Jahrzehnt haben GPUs den Bereich der interaktiven Computergrafik und Visualisierung beherrscht. GPUs haben sich aufgrund der wachsenden Anforderungen an Modelle und Darstellungstechniken, die von Computerspielen zur Implementierung hochgradig paralleler SIMD Processing-Modelle verlangt werden, stetig weiterentwickelt. Während die reine Rechenleistung von GPUs weiterhin in einem rasanten Tempo wächst, entwickeln sich sowohl die Datenübertragungsrate zu den Subsystemen als auch die Rasterisierungsstufe immer mehr zu Engpässen. Somit unterliegt das Gesamtsystem der Einschränkung, interaktiv sehr dichte Daten zu rendern. Alternative Rendering-Ansätze – wie z. B. paralleles Ray Casting – haben sich für große Modelle als geeigneter erwiesen. Und tatsächlich wurden, bedingt durch die laufende Forschung auf diesem Gebiet, massive Geschwindigkeitszuwächse erzielt. Dennoch erweist sich Hardware, die mittels Rasterisierung arbeitet, für Primäreffekte immer noch als leistungsstärker – von Szenen, bei denen die Dichte an Effekten besonders hoch ist, einmal abgesehen.

Das Ziel dieses Forschungsprojekts ist die Entwicklung neuartiger Algorithmen sowie die Verbesserung und Kombination bereits vorhandener Techniken, um eine interaktive Visualisierung großer Datenmengen zu erreichen. Insbesondere die Integration von Methoden und Algorithmen in ein modulares System, das die interaktive Darstellung und Visualisierung von wissenschaftlichen Daten über eine breite Palette von Geräten ermöglicht, ist vorgesehen. Ein Gerät bezeichnet im Rahmen dieses Projekts letztendlich jegliches Input/Output Zubehör, welches an das System angeschlossen werden oder mit dem Netzwerk Kontakt aufnehmen kann. Die Palette an Geräten reicht von kleinen mobilen Endgeräten wie Smartphones oder Pads/Tablet-PCs, über Commodity-PCs mit einem oder mehreren Monitoren bis hin zu Clusterlösungen für Powerwalls, Stereo-Projektionen oder ganzen VR-Systemen.

Das Hybrid-Konzept wird durch die Beobachtung begründet, dass sowohl hinsichtlich der Algorithmen als auch der Hardware keine einheitliche Lösung existiert, die unter allen Rahmenbedingungen eine optimale Rendering-Leistung liefert. Während die parallele Rechenleistung der GPU-basierten Rasterisierung für kleine bis mittlere Datenmengen eine unübertroffene Leistung liefert, verschlechtert sich diese bei großen Datenmengen. Hoch optimiertes Echtzeit-Ray Casting hingegen hat das Potenzial, die Rasterisierung zu übertreffen – allerdings nur, wenn es sich um dichte und weitgehend statische Szenen handelt. Obwohl sich gezeigt hat, dass es möglich ist, dynamische Szenen mit Sample-basierten Repräsentationen darzustellen, ist GPU-basierte Rasterisierung für kleine bis mittlere Datenmengen schlichtweg geeigneter. Wünschenswert wäre daher eine Kombination aus diesen beiden sowie weiteren Ansätzen. Zu beachten ist allerdings, dass die Implementierungen einiger Rendering-Ansätze spezielle Hardware voraussetzt, wie beispielsweise GPUs, Multicore-Architekturen oder spezielle Vektorprozessoren. Insbesondere bei mobilen Geräten oder Rechenclustern dürften einige dieser Ressourcen nicht oder zumindest nicht direkt verfügbar sein. Allerdings sollte der Zugriff auf die benötigten Ressourcen über ein Netzwerk möglich sein. Ein solches Vorgehen hat allerdings den Nachteil, dass eine gleichbleibende Qualität oder konstante Verbindung via Netzwerk nicht gewährleistet werden kann.

Deshalb treiben wir die Forschung und Entwicklung in Richtung einer verteilten Hybrid-Rendering- und Visualisierungsmethode voran, die Gebrauch von diversen lokalen und entfernten Rendering-Subsystemen macht, um dynamisch alle verfügbaren Rendering-, Display- und Interaktionsressourcen zu nutzen. Dadurch soll es letztendlich möglich sein, ein optimales visuelles Erlebnis zu erreichen. Grundidee ist, eine Sammlung hoch optimierter Rendering-Lösungen zu entwickeln und zusammen mit einer Orakel-Funktion zu implementieren, welche die Renderingzeit für jeden Ansatz abschätzt – benötigt wird dazu lediglich die Beschreibung eines Teils der Szene. Eine übergeordnete Funktion wird dann auf Basis einer Heuristik eine Aufteilung der Renderingaufgaben vornehmen, zum effizientesten Rendering-Subsystem umleiten und das endgültige Bild zusammensetzen. Anzumerken ist in diesem Zusammenhang, dass die Sammlung von Rendering-Subsystemen auch nicht-lokale, serverbasierte Algorithmen beinhalten kann, die das Bild via Netzwerk übertragen.

 

Projektteam

Projektleiter
Prof. Dr. Jens Krüger

Projektmitarbeiter
M.Sc. Alexander Schiewe
Andrey Krekhov
Andre Waschk
Michael Michalski