Dynamisches, verteiltes LOD für VR-Anwendungen

Einleitung

Eine Vielzahl von aktuellen Anwendungen erzeugen extrem komplexe polygonale Modelle. Andererseits möchte der Nutzer oft mit diesen Modellen, die nicht selten mehr als eine Million Polygone beinhalten, reibungslos interagieren. Um reibungslos mit einer virtuellen Szene interagieren zu können, müssen mindestens 15 Bilder pro Sekunden von deren Modell gerendert werden. Selbst die aktuellste Highend-Grafikhardware ist aber mitunter nicht in der Lage, bei der Darstellung solch komplexer Modelle eine solche Framerate zu erreichen. In diesem Fall kommen sogenannte Real-Time-Rendering-Techniken zum Einsatz, um letztendlich doch eine annehmbare Framerate zu erreichen.

 

Motivation und Ziele

Auch die LOD-Verfahren sind der Klasse der Real-Time-Rendering-Techniken zuzuordnen. Ein LOD-Verfahren erzeugt in einem Prä-Prozeß  für jedes Objekt der Szene oder für die gesamte Szene ein Multiresolution-Modell (MRM). Dafür werden verschiedene polygonale Vereinfachungstechniken verwendet. Vor dem Rendern jedes Szenenbildes wird für jedes Objekt mittels eines Kriteriums eine Approximation, die dem Original relativ ähnlich ist und aus weniger Polygonen besteht, aus dessen Multiresolution-Modell extrahiert. Diese Approximationen werden dann anstatt der Originale für die Berechnung des aktuellen Szenenbildes verwendet. Aufgrund der reduzierten Polygonanzahl können die Szenenbilder schneller gerendert werden, was eine Beschleunigung der Framerate zur Folge hat.

 

Als Grundlage für diese Forschungsarbeit dienen zwei Diplomarbeiten. Zum einem ist das die Diplomarbeit von Schwarze[1], die sich mit Kommunikationsmechanismen für eine verteilte Reduktionsapplikation beschäftigte. Andererseits gehört dazu die Diplomarbeit von Hilbert[2], die sich mit der Konzeption eines hybriden dynamischen LOD-Verfahrens beschäftigte, was die von Schwarze entwickelten Kommunikationsmechanismen verwendet. Hilberts Arbeit baut wiederum auf Arbeiten von Luebke&Erikson[3], Shade et al.[4] sowie Schaufler und Stürzlinger[5] auf.

 

Auf dieser Basis soll im Rahmen dieser Forschungsarbeit eine verteilte Reduktionsapplikation entwickelt werden, die ein bereits bestehendes Rendering-System unterstützt bzw. in ein solches in Form eines Plug-ins integriert werden kann. Mit dieser Applikation soll es möglich sein, komplexeste, dynamische Szenen mit dynamischen Objekten zu reduzieren. Einerseits soll die zu entwickelnde Applikation eine hohe Performanz zeigen. Andererseits soll die Qualität der Szenenbilder, die mit Approximationen gerendert wurden, welche wiederum durch die verteilte Reduktionsapplikation erzeugt wurden, gleichbleibend hoch sein. Um komplexeste Szenen unterstützen zu können, ist es weiterhin notwendig, dass die zu entwickelnde Applikation die Objektinstanziierung unterstützt.

 


Funktionsprizip

Um eine verteilte Reduktion komplexer Szenen realisieren zu können, wurde die objektweise Reduktion als Reduktionsprinzip ausgewählt.

Für jedes zu reduzierende Objekt wird in jedem Falle zunächst eine adaptive geometrie-basierte Approximation aus dessen kontinuierlichem Multiresolution-Modell extrahiert. In unserem Falle verbirgt sich hinter dem kontinuierlichen Multiresolution-Modell ein Vertex-Hierarchie, wie sie von Luebke und Erikson[3] vorgeschlagen wurde. Diese Vertex-Hierarchien werden einmalig für die zu reduzierenden Objekte in einem Präprozeß erzeugt. Da sämtliche dafür benötigten Berechnungen im Objektkoordinatensystem des jeweiligen Objekts ausgeführt werden, können die zuvor erzeugten MRMs auch für die Erzeugung von Approximationen für dynamische Objekte mit statischer Geometrie verwendet werden.

Besonders sorgfältig werden die Attribute der einzelnen Oberflächenelemente behandelt. Diese werden ebenfalls in einem Präprozeß in Texturen gesampelt, welche dann beim Rendern mittels dynamisch angepasster Texturkoordinaten auf die geometrie-basierte Approximation angewendet werden. So können Diskontinuitäten in den Oberflächenattributen, wie sie oft durch bisherige Approximationsverfahren eingeführt wurden, weitestgehend vermieden werden.

Sind gewisse Bedingungen erfüllt, wird die soeben erzeugte adaptive, geometrie-basierte Approximation verwendet, um für das Objekt eine image-basierte, um ein Vielfaches weniger komplexe Approximation zu erzeugen. Hier kommt ein sogenanntes Impostor, das ein mit einer bestimmten Objektansicht texturiertes Viereck darstellt, als image-basierte Approximation zum Einsatz. Ob es sich lohnt ein Impostor zu erzeugen, wird mittels einer Kriterienkombination bestehend aus einem kollisionsbasierten, einem auflösungsabhängigen und einem kostenabhängigen Kriterium entschieden.

Je nach vorliegender Situation wird dann die geometrie-basierte oder die image-basierte Approximation für das Rendern des nächsten Frames verwendet.

Zusätzlich wird eine gewisse Anzahl von bereits erzeugten Approximationen in einem Cache gespeichert. Somit ist es nur notwendig neue Objektapproximationen zu erzeugen, wenn keine passende Approximation für das entsprechende Objekt im Cache gespeichert ist. Ob eine Approximation zur aktuellen Kamerakonfiguration kompatibel ist, wird mit einem winkelbasierten Kriterium entschieden. Für das Cache-Management wird ein LRU-Mechnismus verwendet.

Die verteilte Reduktionsapplikation besteht dann aus einer Auftragserzeugungskomponente, einer Auftragsverteilungskomponente, einer MRM-Erzeugungskomponente, einer Auftragsverarbeitungskomponente und einer Ergebnisverarbeitungskomponente. Jede dieser Komponenten bewältigt einzelne Teilaufgaben des Reduktionsprozesses. Die Kommunikation zwischen den einzelnen Komponenten wird mit CORBA realisiert.

Aktuelle Ergebnisse

Zum aktuellen Zeitpunkt ist ein Prototyp der Auftragsverarbeitungskomponente  implementiert, die über zwei getrennte TCP/IP-Verbindungen mit einem Rendering-System kommuniziert und dynamische Szenen mit Objekten, deren Geometrie konstant ist, verarbeiten kann. Diese Implementierung der Auftragsverarbeitungskomponente erzeugt die MRMs für einzelne Szenenobjekte noch selbst. Dies entfällt, sobald die restlichen an der MRM-Erzeugung beteiligten Komponenten funktionstüchtig sind.

Erste Versuche mit dieser Implementierung zeigten vielversprechende Ergebnisse. Schon mit diesem relativ simplen System konnten bei entsprechenden Szenen besonders durch den Einsatz von image-basierten Approximationen deutliche Steigerungen der Framerate erzielt werden, ohne dass merkliche Verluste bei der Bildqualität entstanden.

In der folgenden Tabelle ist der Performanzgewinn bei drei verschiedenen Szenen dargestellt. Der recht geringe Performanzgewinn im dritten Beispiel rührt daher, dass diese Stadtszene bereits aus stark approximierten Objekten besteht. Der Einsatz dieses LOD-Systems bringt also immer dann große Performanzgewinne bei der Darstellung, wenn damit Szenen verarbeitet werden, die aus vielen extrem komplexen Objekten bestehen.

 

Tabelle 1. Statistische Erhebungen

Scene (#polygons,

#objects, # object types,

note)

Time for MRM generation (sec)

Frame rate (fps)

w/o LOD

w LOD

Cars (2,86 Mio., 19, 4, animation showing a race)

11,45

4,4

12,5

Turbine Blade (1,76 Mio., 1, 1, rotating blade)

28,89

1,3

20,2

Urban Scenery (197000,

(15000, ca. 5000, walkthrough)

27,1

15,0

20,0

 

Der folgende Screenshot soll noch einmal die hohe Qualität der Bilder, die mittels der vom LOD-System erzeugten Approximationen gerendert werden können, beweisen.

 

sh_origsh_lod

w_orig

Abbildung 1 Dynamische Rallye-Szene im Solid- (oben) und im Wireframe-Modus (unten) sowie ohne (links) und mit (rechts) vom LOD-System erzeugten Approximationen gerendert.

 

Ausblick

In näherer Zukunft werden die restlichen Komponenten der verteilten Reduktionsapplikation implementiert. Anschließend sollte die Unterstützung sämtlicher dynamischer Szenen realisiert werden. Liegt dann ein funktionstüchtiger Prototyp der gesamten Reduktionsapplikation vor, wird diese ausgiebig auf einem PC-Cluster getestet werden. Diese Tests werden schließlich Aufschluss darüber geben, wo zusätzlicher Optimierungsbedarf besteht.

Veröffentlichungen

-          Karsten Hilbert, “Adaptives Level-of-Detail für die Bilderzeugung in VR-Anwendungen”, Diplomarbeit, TU Chemnitz, Juli 2003

-          Karsten Hilbert, Guido Brunnett, „A Hybrid LOD Based Rendering Approach for Dynamic Scenes“, Chemnitzer Informatikberichte CSR-04-01 (.pdf), Chemnitz,  Januar 2004

-          Karsten Hilbert, Guido Brunnett, „A Hybrid LOD Based Rendering Approach for Dynamic Scenes“, accepted as short paper for CGI2004, Heraklion, Crete, Greece, June 2004

Kontakt

Karsten Hilbert                             

TU Chemnitz

Fakultät für Informatik
Straße der Nationen 62
D-09111 Chemnitz

Tel.:   +49 (371) 531 1487            

Fax:    +49 (371) 531 1801            

E-Mail: khi@informatik.tu-chemnitz.de 

Weiterführende Literatur

 

[1] Tino Schwarze, „Kommunikationsmechanismen für paralleles, adaptives Level-of-Detail in VR-Simulationen“, Diplomarbeit, TU Chemnitz, April 2003

 

[2] Karsten Hilbert, “Adaptives Level-of-Detail für die Bilderzeugung in VR-Anwendungen”, Diplomarbeit, TU Chemnitz, Juli 2003

 

[3] David Luebke and Carl Erikson, “View-Dependent Simplification of Arbitrary Polygonal Environments”, Computer Graphics (31), SIGGRAPH `97 Proceedings, ACM, August 1997

 

[4] J. Shade, D. Lischinski, D. Salesin, T. DeRose, and J. Snyder, “Hierarchical Image Caching for Accelerated Walkthroughs of Complex Environments.” H. Rushmeier, editor, SIGGRAPH 96 Conference Proceedings, Annual Conference Series, ACM SIGGRAPH, Addison Wesley, New Orleans, Louisiana, 04-09, August 1996, pp 75–82.

 

[5] G. Schaufler. “Dynamically Generated Impostors.”, D. W. Fellner, editor, Modeling - Virtual Worlds – Distributed Graphics, MVD’95 Workshop, November 1995, pp. 129–136.