Einsatz der Shader Technologie zur Lichtsimulation in Fahrzeuginnenräumen
Studienarbeit von Thomas Bremes
Motivation und Zielsetzung
Eine hochwertige Fahrzeugergonomie stellt heute einen wesentlichen Erfolg eines neuen Fahrzeugmodells dar. Sichtbarkeitsuntersuchungen im Fahrzeuginnenraum spielen dabei eine wesentliche Rolle. Durch diese wird unter anderem überprüft, wie stark die Raumwahrnehmung durch Licht- und Schattenwurf beeinflusst wird. Da es sich dabei um einen für die Fahrsicherheit relevanten Einfluss handelt, darf diese Überprüfung nicht vernachlässigt werden. Mittlerweile existieren eine Vielzahl von Softwaresystemen, die eine Lichtverteilung, beispielsweise mittels Ray Tracing, berechnen. Auf Grund der benötigten Rechenleistung sind diese Programme nicht echtzeitfähig und eignen sich deshalb nicht für die interaktive Ergonomieuntersuchung am virtuellen Prototypen. Abschließende Untersuchungen müssen heute in realen 1:1 Modellen - sogenannte Sitzkisten - durchgeführt werden. Die Erstellung von Sitzkisten erfolgt jedoch erst in späten Phasen der Produktentwicklung. Änderungen, die nachträglich am Fahrzeug vorgenommen werden müssen, sind sehr kostenintensiv. Daher ist es besonders wichtig, im Frühstadium der Produktentwicklung Ergonomieuntersuchungen am virtuellen Prototypen vorzunehmen. Dazu werden seit einiger Zeit verstärkt Pixel Shader für die Beleuchtungsberechnung eingesetzt.
Ziel dieser Arbeit ist es, eine Software für die Beleuchtungssimulation von Fahrzeuginnenräumen zu entwickeln, die für interaktive Ergonomieuntersuchungen an virtuellen Fahrzeugprototypen eingesetzt werden kann.
Anforderungen
Im Vordergrund dieser Arbeit steht die Echtzeitfähigkeit der Software, die dem Anwender zur Laufzeit die Interaktion mit dem virtuellen Fahrzeug garantieren soll. Dafür sollte die sich ändernde Kamera- beziehungsweise Augenposition des Benutzers ständig von der Software abgefragt werden und mit der Beleuchtungsberechnung kombiniert werden. Um die Echtzeitfähigkeit zu gewährleisten, wird in dieser Arbeit die Shadertechnologie eingesetzt. Durch den Einsatz dieser Technologie, wird unter anderem eine Basis geschaffen, möglichst realistische Beleuchtungssimulationen zur Laufzeit zu berechnen, zum Beispiel sollen Plastikarmaturen im Innenraum eines Fahrzeuges entsprechende Reflektionen wiedergeben. Dies erfordert eine Anpassung der Software an die verschiedenen Innenraumparameter des virtuellen Prototypen.
Um dem Anwender verschiedenste Ergonomieuntersuchungen an virtuellen Fahrzeugprototypen zu gewährleisten, ist es sinnvoll, die Software für verschiedenste Situationen flexibel zu halten, das heißt, sie sollte unterschiedliche Fahrzeugmodelle problemlos integrieren können. Auch die Position der Lichtquelle soll zur Laufzeit vom Benutzer veränderbar sein und ebenfalls mit immer aktuellen Positionswerten in die Berechnungsformel der Beleuchtung eingehen. Dabei ist sicherzustellen, welche Parameter konstant und welche variabel gehalten werden sollen. Ein weiterer Punkt für die Flexibilität ist die Erweiterbarkeit der Software. So sollen über diese Arbeit hinaus weitere Modelle für realistische Ergonomieuntersuchungen, wie Schattenwurf, integriert werden. Aus diesem Grund ist ein modularer Aufbau der Software nötig.
Die Anforderungen werden hier in kurzen Stichpunkten aufgelistet. Dabei wird zwischen externen und internen Anforderungen unterschieden. Externe Anforderungen sind solche, die von der Aufgabenstellung und Zielsetzung an das zu entwickelnde Programm gestellt werden. Interne Anforderungen dagegen beschreiben die Aufgaben, die sich bei der Entwicklung der Software ergeben können und somit zusätzlich bearbeitet werden müssen.
Externe Anforderungen:
Echtzeitfähigkeit: Das Programm soll echzeitfähig laufen, so dass ein Benutzer zur Laufzeit mit dem Programm interagieren und Änderungen vornehmen kann. Das heißt die korrekte Berechnung sollte deterministisch mit geringer Latenz vorliegen.
Modellintegration: Die Software soll es ermöglichen, verschiedene Fahrzeugmodelle, die im Format eines Szenengraphen vorliegen, zu laden.
Realistische Beleuchtung: Die Beleuchtung soll möglichst realistisch sein. Dabei ist zu beachten, dass die Beleuchtungsberechnung nicht zu rechenaufwendig ist, damit die Echtzeitfähigkeit nicht verloren geht. Des Weiteren soll die Beleuchtungsberechnung die unterschiedlichen Materialien des Fahrzeugmodells berücksichtigen und diese in die Berechnung miteinbeziehen.
Positionierung der Lichtquelle: Die Position der Lichtquelle soll zur Laufzeit vom Anwender veränderbar sein, um so verschiedene Beleuchtungssituationen zu schaffen.
Interne Anforderungen:
Materialeigenschaften auslesen: Materialien der Objekte müssen ausgelesen werden und in die Beleuchtungsberechnung einfließen.
Shaderintegration: Damit die Echtzeitfähigkeit gewährleistet wird, werden die Beleuchtungberechnungen in Shader-Programmen berechnet.
Tastaturabfrage: Damit der Anwender während der Laufzeit am Programm Änderungen (zum Beispiel Position der Lichtquelle) vornehmen kann, müssen Tastaturabfragen berücksichtigt werden.
Modularer Aufbau: Damit die Software in weiteren Arbeiten einfach erweitert werden kann, ist ein modularer Aufbau notwendig.
Lichtquellenrepräsentation: Der Anwender der Software soll die Position der Lichtquelle klar erkennen können.
Realisierung
Bei der zu entwerfenden Software wurde das Phong-Schattierungsmodell integriert und auf ein virtuelles Fahrzeugmodell anwenden. Bei der Phong-Schattierung muss die Beleuchtung für jedes einzelne Pixel berechnet werden, was den Rechenaufwand im Gegensatz zur Flat- und Gouraud-Schattierung vervielfacht. Dieser Rechenaufwand wird durch die Einführung von Shader minimiert, so dass das Phong-Schattierungsmodell akzeptable Werte für den Realismus der Beleuchtung und die Echtzeitlauffähigkeit liefert. Aus diesem Grund muss bei der Konzeption der Software die Intergration von Shadern berücksichtigt werden.
Die Beleuchtung soll auf ein virtuelles Fahrzeugmodell angewandt werden und darüber hinaus dessen Materialien berücksichtigen. Um die Materialien aus dem virtuellen Modell effizient lesen zu können, sollte das Modell in der hierarchischen Struktur eines Szenengraph vorhanden sein. Dieser Szenengraph muss vor Beginn des Rendervorgangs traversiert werden. Das Material, welches bei diesem Vorgang gefunden wird, wird dann den Shadern übergeben. Damit realistische Reflektionen zustande kommen, werden zusätzlich zu den Materialeigenschaften, den Shadern aktuelle Licht- und Kameraposition übergeben, damit diese in die Beleuchtung mit eingerechnet werden. Die Übergabe von Materialeigenschaften und für die Beleuchtungsfunktion spezifischen Parameter erfolgt mittels Objekten die jedem Materialknoten zugewiesen werden. Die Parameter der Objekte können mittels Methodenaufrufen manipuliert werden, so dass diese dann den Shadern übermittelt werden können.
Für weitere Informationen bitte E-Mail an bremes@upb.de.