Portale (Indoor-Szenen-Management)

Vernünftiges Szenen-Management ist eines der Schlüsselelemente für die Performance eines Spiels, da sich auf diese Weise eine Vielzahl unnötiger Berechnungen vermeiden lassen. Dies betrifft nicht nur die grafische Darstellung sondern auch Kollisionsprüfungen, KI (künstliche Intelligenz) und Spielephysik.

Für das Handling von Indoor-Szenen bietet sich der Einsatz von Portalen an. Vereinfacht kann man sich Portale wie Türöffnungen vorstellen, die einzelne Räume (bzw. Sektoren) miteinander verbinden. Im Unterschied zu Türöffnungen funktionieren Portale jedoch nur in eine Richtung – für gewöhnlich wird ein Portal stets dem Raum zugeordnet, der durch das Portal verlassen werden kann.
Betritt nun eine Spielfigur einen neuen Raum, dann müssen etwaige Kollisionsprüfungen nur mit den Elementen des neu betretenden Raumes durchgeführt werden. Physische Interaktionen sind natürlich auch nur mit Objekten möglich, die sich im selben Raum befinden. Des Weiteren bietet der Einsatz von Portalen eine elegante Möglichkeit für die Bestimmung der sichtbaren Räume bzw. Sektoren und der darin befindlichen Objekte – ein Raum oder Sektor ist immer dann sichtbar, wenn mindestens eines der in den Raum führenden Portale für den Spieler einsehbar ist (darüber hinaus ist natürlich auch derjenige Raum sichtbar, in dem sich der Spieler augenblicklich befindet).

Hinweis:
Für die Bestimmung der Portal-Sichtbarkeit bietet sich beispielsweise der Bounding-Sphären-Sichtbarkeitstest an.

Die Verwendung von Portalen erleichtert uns zudem die Aktualisierung der Aufenthaltsräume aller beweglichen Spieleobjekte. Initialisiert man beispielsweise einen Gegner in Raum B und überschreitet dieser später das Portal B-C, dann weiß man, dass sich der Gegner so lange in Raum C befindet, bis dieser den Raum durch ein anderes Portal wieder verlässt. Das klingt zwar trivial, bedeutet in der Praxis jedoch einen erheblichen Performance-Gewinn, da wir in der Zwischenzeit auf weitere Aktualisierungen verzichten können.

Besonders einfach wird der Umgang mit Portalen, wenn diese parallel zur x-, y- oder z-Achse orientiert sind, da wir in diesem Fall lediglich die x-, y- und z-Komponenten der beweglichen Spieleobjekte mit der Lage der Portale vergleichen müssen.























Lässt man Portale mit beliebigen Orientierungen zu, dann ist für den Nachweis eines Portal-Durchtritts ein wenig mehr Rechenaufwand erforderlich.
Mathematisch gesehen ist ein Portal nichts anderes als eine Fläche. Mithilfe des Skalarproduktes aus der Flächennormale n und dem Differenzvektor aus Objekt-Ortsvektor und Portalschnittpunkt lässt sich bestimmen, ob sich das Objekt vor oder hinter dem Portal befindet.

















 
Hinweis:
Man beachte, dass der Seitentest immer nur in eine Richtung funktioniert. In unserem Fall zeigt der Normalenvektor in denjenigen Raum, der durch das Portal verlassen werden kann. Für den Weg zurück benötigen wir ein zweites Portal, dessen Normalenvektor in die entgegengesetzte Richtung zeigt.