2 research outputs found
Vertex-Tracing - Interaktives Ray-Tracing durch adaptiv progressives Refinement im Objektraum
Abstract
This dissertation presents an approach for interactive, physically exact simulation of
specular reflections and specular refractions in virtual environments. The introduced
approach is called Vertex Tracing and allows a hybrid rendering to add global
illumination effects in traditional hardware rendering systems.
The core of the Vertex Tracing is an adaptive progressive ray tracing. In contrast to
standard ray tracing we use image coherence to compute only pixels (samples) that are
essential for the final image reconstruction. The step by step adaption towards the final
image is performed by geometry refinement of chosen polyhedra. These are scene objects
with visual characteristics as specular reflections or refractions and should be handled
particularly for Vertex Tracing. The object vertices are the starting point of
computation. First, primary rays are shot from the eye point to the object vertices and
after that, like in classical ray tracing approaches, a recursive ray shooting is
performed from each vertex. If needed new vertices are inserted and consequently a step
by step refinement of the object geometry is done.
The reconstruction of the final image is performed by bilinear interpolation via graphics
hardware. Beside the possibility of a combined rendering with OpenGL-objects, the use of
graphics hardware additionally allows an efficient handling of textures. In this context,
we introduce a defered texture lookup to prevent a costly sampling of high frequent
textures.
In addition, this thesis considers aspects of a distributed and parallel computation to
speed up Vertex Tracing. In detail we implemented a distributed Vertex Tracing for a
heterogenous network as well as a parallel approach for shared memory machines. Despite
the adaptive progressive characteristic of the Vertex Tracing both techniques show that a
significant speed-up can be achieved.Die vorliegende Dissertation beschreibt ein Verfahren zur interaktiv physikalisch exakten Simulation spekularer Reflexionen sowie spekularer Brechungen in virtuellen Umgebungen. Unter dem Begriff Vertex-Tracing wird in dieser Arbeit ein Ansatz vorgestellt, der es durch hybrides Rendering erlaubt, traditionelles Hardware-Rendering mit globalen
Beleuchtungsphänomenen zu ergänzen.
Kern des Verfahrens Vertex-Tracing bildet ein adaptiv progressives Ray-Tracing. Im Gegensatz zum Standard-Ray-Tracing besteht das Ziel darin, vorhandene Bildkohärenzen auszunutzen, indem nur diejenigen Pixel (Samples) berechnet werden, die für die Rekonstruktion des Finalbildes erforderlich sind. Die schrittweise Annäherung an das gewünschte Finalbild erfolgt durch Verfeinerung (Refinement) der Geometrie ausgewählter Polyeder. Diese sind Szenenobjekte, die aufgrund ihrer visuellen Charakteristik in Form spekularer Reflexionen oder Brechungen einem Vertex-Tracing unterzogen werden sollen. Ausgangspunkt der Berechnung dieser Objekte stellen ihre Objekt-Vertices dar. Sie bilden jeweils den Aufpunkt eines geschossenen Primärstrahles vom Betrachter und sind zugleich Startpunkt für eine weitere rekursive Strahlenverfolgung im Sinne des klassischen Ray-Tracing. Je nach Bedarf erfolgt das Einfügen neuer Vertices, dass eine schrittweise Verfeinerung der Objektgeometrie nach sich zieht.
Die Rekonstruktion des Finalbildes erfolgt durch bilineare Interpolation mit Hilfe von Graphik-Hardware. Ihre Nutzung gestattet nicht nur ein kombiniertes Rendering mit herkömmlichen OpenGL-Objekten, sondern erlaubt darüber hinaus eine effiziente Behandlung von Texturen im Vertex-Tracing. In diesem Zusammenhang wird ein verzögerter Textur-Lookup vorgestellt. Er verhindert ein vollständiges Sampling von Texturen, das vor allem bei hochfrequenten Texturen einen erheblichen Mehraufwand bedeuten würde.
Im Hinblick auf die Beschleunigung des Verfahrens werden ferner Aspekte einer verteilt, parallelen Berechnung untersucht beziehungsweise umgesetzt. Im Vordergrund steht dabei die Verteilung des Vertex-Tracings im Rechner-Cluster sowie eine Parallelisierung des Algorithmus auf Shared-Memory-Maschinen. Beide Ansätze zeigen, dass trotz des adaptiv progressiven Charakters des Verfahrens Vertex-Tracing ein signifikanter Speed-Up
erzielbar ist