Berech­nung von Schat­ten unter Ver­wendung der Shader Tech­no­lo­gie zur real­ität­s­na­hen Gestal­tung von Fahrzeu­ginnen­räu­men

Studienarbeit von Helene Waßmann

Motivation und Zielsetzung

Licht- und Schatten in virtuellen Prototypen neuer Fahrzeugmodelle erhöhen nicht nur den Realitätsgehalt der Darstellung, sie ermöglichen es auch die Beeinflussung der Raumwahrnehmung zu simulieren. Da die Informationsmenge, die Fahrern in den Fahrzeugen präsentiert wird, stetig zunimmt und dieser dadurch leicht überfordert werden kann, kann eine Beeinflussung der Sicht zu unvorhersehbaren Folgen führen. Ziel der Arbeit war es eine shader-basierte Schattendarstellung in Fahrzeuginnenräumen zu realisieren. Der aktuelle Stand der Technik wurde analysiert und ein Konzept für die Realisierung erarbeitet. Die Schattenberechnungen wurden als Shader-Prgrammm in Cg und mit der Szenegraph-API OpenSceneGraph realisiert.

Anforderungen

Im Folgenden werden die Anforderungen aufgelistet, denen die zu entwickelnde Software gerecht werden soll. Unterschieden wird zwischen externen und internen Anforderungen. Die externen Anforderungen lassen sich direkt aus der Aufgabenstellung ableiten, die internen hingegen ergeben sich aus den konzeptionellen Details der verwendeten Software. Dies können bei der Implementierung gewählte Parameter sein, die eine effiziente Software gewährleisten.

Externe Anforderungen:

    Echtzeitfähigkeit: Der Anwender der Software kann während der Ergonomieuntersuchungen Änderungen vornehmen. Dazu gehört zum Beispiel das Bewegen der Lichtposition oder der Objekte, sowie die Position des Anwenders selbst. Deshalb sollen die Berechnungen in Echtzeit erfolgen.

    Realitätsnähe: Die Darstellung soll für den Anwender realitätsnah wirken. Abhängig von der Entfernung der Lichtposition soll eine Abschwächung oder Zunahme der Intensität des Schattens stattfinden.

    Korrekte Abbildung der Schattenposition: Unabhängig von der eigentlichen Darstellung des Schattens soll seine Positionierung im Raum korrekt sein. Das heißt es soll eine möglichst realistische Schattenprojektion berechnet werden. Die Position des Schattens hängt von den schattenwerfenden Objekten und der Position der Lichtquelle ab. Um die Echtzeitfähigkeit gewährleisten zu können sollte ein Verfahren zur Berechnung des Schattens eingesetzt werden.

Interne Anforderungen:

    Benutzungsschnittstelle: Zur Gewährleistung der Interaktion zwischen dem Benutzer und der Software sollen Tastaturabfragen verwendet werden. Diese leiten Aktionen an die Software weiter. Dazu gehört das Bewegen der Lichtposition, die die Darstellung des Schattens verändert.

    Variable Modelle: Zu Testzwecken des Schattenwurfs soll dieser für unterschiedliche Modelle angewandt werden. So können Untersuchungen hinsichtlich unterschiedlicher Anordnung der einzelnen Objekte durchgeführt werden.

    Shaderintegration: Aufgrund der hohen Rechenleistung von Shadern werden diese für aufwendige Berechnungen, die für den Schattenwurf notwendig sind, eingesetzt. Das führt zu einer Entlastung der CPU und erfüllt die Anforderung der Echtzeitfähigkeit.

    Flexibilität: Weitere Funktionen sollen sich einfach in die Software integrieren lassen. Diese können zum Beispiel das Verwenden von mehreren Lichtquellen für den Schattenwurf oder das Austauschen von Shader- Programmen sein.

    Objektorientierung: Die im Rahmen dieser Arbeit erstellte Software wird in eine entwickelte Beleuchtungssimulation integriert. Der Aufbau muss so konzipiert werden, dass eine flexible Integration möglich ist.

Realisierung

Nach Untersuchung unterschiedlicher Verfahren zur Berechnung von Schatten bezüglich der Anforderungen hat sich das sogenannte Shadow Mapping mit einem Tiefenvergleich für die Umsetzung als geeignet erwiesen. Für das Shadow Mapping wird eine Tiefen-Textur benötigt, die beim ersten Render-Durchlauf aus der Position der Lichtquelle erzeugt wird. Dazu wird der aktuell sichtbare Bereich der Szene in einer Textur mit der Tiefeninformation zwischen der Lichtquelle und den Objekten festgehalten. Beim zweiten Render-Durchlauf wird diese an den Shader weitergegeben, der mit Hilfe der Textur die eigentliche Schattenprojektion berechnet.

Der Aufbau des Szenengraphen und die Klassenstruktur der Software erfolgte so, dass diese um zusätzliche Lichtquellen mit jeweils eigener Schattenprojektion erweiterbar ist.

Abbildungen

Das OSG-Modell der Konsole besteht aus 25.000 Polygonen. Die Frame-Rate mit Erzeugung des Schattens beträgt etwa 35 Frames pro Sekunde.

Links

Open Scene Graph
NVIDIA

Für weitere Informationen bitte E-Mail an elen@upb.de.