Als eine Grafik Engine, die bereits seit 1998 stetig weiterentwickelt wird, genießt die Unreal-Engine einen guten Ruf in der digitalen Welt. Durch sie lassen sich Objekte dank Echtzeit-Rendering unter Einbeziehung von Berechnungen von Licht, Schatten, Spiegelungen, Transparenz und physikalischen Gesetzen realitätsnah darstellen. In Zukunft werden keine Barrieren mehr für den kreativen Prozess und für die Fantasie existieren. Die Tools werden einfacher und intuitiver zu bedienen sein denn je. Inreal macht sich viele Features dieser Engine zunutze und verfolgt deren Weiterentwicklung, um den virtuellen Rundgang den Interessenten intensiv und eindrucksvoll präsentieren zu können. In diesem Beitrag stellen wir zwei besondere Features vor, die für die Unreal-Engine in den nächsten Monaten veröffentlicht werden.

Realtime Raytracing

Dieses Feature imitiert das Verhalten von Licht in einer auf Naturgesetzen basierenden Art und Weise. Das Ziel ist es, möglichst viele Eigenschaften der Wirklichkeit einfließen zu lassen. In der Realität emittiert eine Lichtquelle unendlich viele Photonen (Lichtteilchen) in alle Richtungen. Dabei können sie auf Objekte treffen und werden wieder in verschiedene Richtungen abgelenkt. Die Lichtstrahlen, die auf unsere Netzhaut projiziert werden, nehmen wir wahr und können so das Objekt in seiner Beschaffenheit sehen:

Lichtstrahl
Wie wir Objekte wahrnehmen - Quelle: www.scimacros.de

Nur ist es immer so eine Sache mit der „Unendlichkeit“ in Computern. Auch wenn die Rechenleistung heutiger Computer enorm hoch ist, so ist sie dennoch begrenzt. Um die Berechnungen etwas einzudämmen, kehrt man das Szenario um. Man betrachtet einerseits lediglich die Strahlen die von unserem Auge aus erfasst werden können und andererseits nur in einer Anzahl die dem entsprechenden Bildschirmraster entspricht. Hat man eine Auflösung von 1024×768 Pixeln, werden knapp 800.000 Strahlen berechnet – und das pro Bild.

Der umgekehrte Weg beim Raytracing
Der umgekehrte Weg wird beim Raytracing angewendet - Quelle: www.scimacros.de

Höhere Auflösungen und Bildwiederholungsraten (FPS: frames per second) erfordern entsprechend mehr Aufwand. Dieses wiederholte Berechnen von Licht und Schatten in komplexen Szenarien erfordert sehr viel Rechenleistung, insbesondere Berechnungen in Echtzeit. Dies kann in der Regel nur von modernen Grafikkarten gestemmt werden.

Das Prinzip von Echtzeit Raytracing ist vereinfacht das Folgende: Man schickt von der Position des virtuellen Betrachters aus für jeden Pixel einen Lichtstrahl in die darzustellende Szene und berechnet anschließend, auf welche Objekte dieser trifft. Dabei wird physikalisch korrekt der Brechungswinkel berechnet und anschließend die Farbe des Endpunktes über die sogenannte Shader-Einheit ermittelt. Während dieses Vorgangs werden auch Schatten und verschiedene Oberflächen berücksichtigt, die das Licht unterschiedlich stark streuen und schwächer werden lassen. Diese neu berechneten Informationen werden nun über die 3D-Szene in Echtzeit gelegt.

Material Layer und Master Material System

Dieses Feature vereinfacht das Arbeiten mit Materialien. Materialien definieren das äußere Erscheinungsbild von Objekten. Ist es bunt? Ist es transparent? Welche Oberfläche besitzt es? Material Layer sind Materialdefinitionen, die in Form von Parametern charakterisiert und in Abhängigkeit von Szene und Umgebung angepasst werden können. Man spricht in diesem Fall von neuen Ebenen (Layer), die das Objekt umhüllen. Dadurch ist man in der Lage das gleiche Objekt mit unterschiedlichen Oberflächen, wie beispielsweise Chrom, Aluminium oder Kupfer anders darzustellen. Auf diese Weise ist es ebenso möglich, Jahreszeiten und verschiedene Wettersituationen zu simulieren und diese auf die Objekte abzubilden.

Dies macht man sich auch bei der Virtualisierung von Immobilien zu nutze. Beispielsweise kann so die Oberfläche von Dächern virtueller Außenbereiche einmal mit Schnee oder aber auch mit Regenwasser illustriert werden, umso der Wirklichkeit noch einen Schritt näher zu kommen. Ein anderer wichtiger Faktor ist die Wiederverwendbarkeit. Einmal erstelle Paramater, wie z.B. ein Seidenbezug, können nun auf einfache Weise für verschiedene Möbel verwendet werden. Dies spart Arbeitsstunden und somit auch Kosten für den Kunden.

Die gleichen Objekte mit unterschiedlichen Oberflächen
Die gleichen Objekte mit unterschiedlichen Oberflächen - Quelle: docs.unrealengine.com