von Michael Krosta,

Der 4P-Technik-Check: Clipping-Fehler



Charaktere, die halb in Wänden verschwinden. Objekte, die ineinander übergehen, obwohl sie sich eigentlich gegenseitig abstoßen sollten. Ja, in Videospiel-Welten bekommt man einige abstruse und bizarre Dinge zu sehen, die zwar für den einen oder anderen Lacher gut sind, auf der anderen Seite aber auch extrem nervig sein und das Spielgefühl zerstören können. Gerade bei den oben genannten Beispielen spricht man oft (und dabei auch fälschlicherweise) von



Clipping-Fehlern



Das Clipping an sich ist eigentlich eine feine Sache -  das werden sicher alle Entwickler bestätigen. Warum das? Weil es in erster Linie dazu dient, Rechenzeit einzusparen und damit mehr Ressourcen für andere Prozesse zur Verfügung zu stellen. Ganz allgemein gesagt ist Clipping dazu da, Objekte oder Teile von Objekten aus der Berechnung eines Bildes ("Frames") heraus zu nehmen, die sich ohnehin nicht im Sichtfeld des Spielers befinden. Ein kleines Beispiel aus einem fiktiven Geschicklichkeitsspiel, bei dem man, sagen wir mal in der Rolle einer Katze, Mäuse fangen muss, bevor sie eines der sicheren Mäuselöcher erreichen. Eine aus zig tausend Polygonen bestehende Maus rennt also los, dicht gefolgt von der hungrigen Katze. Sie erreicht das rettende Loch und verschwindet vom Bildschirm - nur die neugierige Polygon-Nase lugt noch vorsichtig hervor. Damit ist klar: Die Maus ist noch im Loch, aber warum sollte man das komplette Tier für das Bild berechnen, wenn man doch nur ihre Nase sieht? Hier kommt Clipping ins Spiel, bei dem der Rest des Objekts "Maus" einfach von der Berechnung des Bildes ausgenommen wird, weil es unnötig erscheint. In 3D-Welten, in denen in der Regel sogar noch deutlich mehr Berechnungen anfallen, ist Clipping deshalb umso wichtiger. Man stelle sich eine lange Straße vor, die von Häusern umrandet wird, zwischen denen sich wiederum Gassen befinden. An einer Ecke zur Gasse steht ein gefülltes Öl-Fass, dessen Front zur Straße hin ragt. Der hintere Teil ist nicht sichtbar - und muss demnach auch nicht berechnet werden. Mit Hilfe komplizierter Algorithmen wird dieser Umstand erfasst und als Folge dessen der hintere Teil weg "geclippt". Jetzt befindet sich am Straßenrand in unserem Blickfeld aber auch ein großer Müll-Container, neben dem sich auch eine Kiste voller Äpfel befindet - diese wird allerdings vom Container verdeckt. Warum sollte man zu diesem Zeitpunkt also überhaupt Ressourcen für die Berechnung der Kiste mit den Äpfeln verschwenden? Obwohl sie sich zwar im Blickfeld befindet, ist sie durch das größere Objekt "Müll-Container" verdeckt und könnte demnach für die Berechnung zu diesem Zeitpunkt komplett unter den Tisch fallen. Hier kommt eine Technik namens Occlusion Culling zum Einsatz, mit deren Hilfe Objekte geclippt werden, die sich zwar im Sichtfeld befinden, aber gleichzeitig von anderen Objekten verdeckt werden.



Und was sind dann Clipping-Fehler? Diese treten auf, wenn der Algorithmus die Teile, die beim Bildaufbau eigentlich wegfallen sollen, falsch berechnet. Gehen wir zurück zur Maus in ihrem sicheren Loch, aus dem nur noch die Nasenspitze heraus ragt. Plötzlich flackert auch der gesamte Kopf unter dem Loch durch den Boden hindurch auf - ein typischer Clipping-Fehler. Äquivalent wäre es in der eben beschriebenen 3D-Szene in etwa so, als würden die Kisten mit den Äpfeln durch die Mülltonne hindurch sichtbar werden. Auch wäre es z.B. denkbar, dass das Öl-Fass an der Hausecke verschwindet und nur noch dessen Inhalt auf dem Bildschirm gezeichnet wird. Schon bei einfachen Kameraschwenks wird man oft Zeuge von Clippingfehlern, wenn die Wand neben einem plötzlich verschwindet und man so bereits das zu sehen bekommt, was dahinter liegt. Problematisch wird es, wenn sich auch reflektierende Objekte wie Spiegel im Blickfeld befinden. So ist es durchaus denkbar, dass z.B. eine Häuserwand an der aktuellen Position nicht sichtbar und damit geclippt werden würde, der Spiegel sie aber eigentlich zeigen müsste. In diesem Fall wäre es seltsam, hier aufgrund des Clippings nichts zu sehen. Um dem entgegen zu wirken, wird zunächst in einem ersten Schritt das "Blickfeld" des Spiegels berechnet und erst anschließend, was der Spieler sieht. Alternativ wird mit künstlichen (vorgefertigten) Spiegelungen getrickst, so dass eine genaue Berechnung nicht länger nötig erscheint, weil die Reflexionen lediglich simuliert werden.



Oft wird die Bezeichnung "Clippingfehler" fälschlicherweise mit einem anderen Phänomen gleichgesetzt, das bekannt ist als:



Fehlerhaften Kollisionsabfrage



Verschwindet also die Hälfte eurer Figur oder der erledigte Gegner in einer Wand, verschmelzen im Rennspiel manche Fahrzeuge miteinander ohne dass es kracht oder fliegt man mit seinem Raumjäger durch das große Mutterschiff einfach hindurch anstatt daran zu zerschellen, handelt es sich dabei nicht um Clippingfehler, sondern eine mangelhafte bzw. nicht vorhandene Kollisionsabfrage. Vor allem Spieler von Wing Commander werden sich noch an Letzteres erinnern, weil damals einfach nicht genügend Rechen-Power für die Berechnung von Kollisionen zur Verfügung stand. Doch auch heute gibt es noch Entwickler, die sich damit schwer tun. Ein Beispiel aus jüngerer Zeit ist Legendary, bei dem z.B. die Köpfe der Werwölfe beim Fallen in regelmäßigen Abständen in Wänden oder anderen Objekten verschwinden und sich folglich nicht mehr abtrennen lassen. Dabei ist die Aufgabe einer Kollisionsabfrage theoretisch simpel: Nähert sich der Spieler einem Objekt wie einer Wand oder auch Dingen wie einem Tisch oder einem Stuhl, muss festgelegt werden, ab welchem Zeitpunkt ein Annähern nicht mehr möglich ist. Dann kommt es zur "Kollision", bei der es für den Spieler entweder nicht mehr weiter geht (Beispiel Wand), er automatisch an eine Position vor der Überschreitung der Grenzlinie zurückgesetzt  oder eine Nachfolge-Ereignis ausgelöst wird, indem z.B. der Stuhl zur Seite geschoben wird oder umfällt. Problematisch wird es bei vorgefertigten Animationen, die ab einem bestimmten Zeitpunkt nahe der Kollisionsgrenze automatisch abgespult werden. Ein Gegner wird ausgeschaltet, fällt um und sein halber Körper landet in einem Hindernis. Um dem entgegen zu wirken, setzen Entwickler vermehrt ein Ragdoll-Modell ein, das zwar physikalisch recht oberflächlich ausfällt, aber in diesem begrenzten Rahmen zumindest korrekt auf die Umwelt reagiert. Eine gut funktionierende und zumindest in Ansätzen glaubhafte Kollisionsabfrage ist in praktisch jedem Genre Pflicht - sei es z.B. in bleihaltigen Action-Spielen, wenn es z.B. um die Frage geht, ob die Kugel ihr Ziel getroffen hat oder etwa auf der Rennstrecke, wenn sich die Fahrzeuge berühren und um Positionen kämpfen.




Doch woher kommt überhaupt die begriffliche Verwirrung rund um Clipping und Kollisionsabfrage? Hier hat id Software mit dem berühmt-berüchtigten Noclip-Cheat maßgeblich dazu beigetragen, dass die beiden miteinander verwechselt werden. Da es nach der Eingabe des Noclip-Befehls möglich wurde, durch sämtliche Gebäude und Objekte hindurch zu laufen, wurde dies oft mit Clippingfehlern assoziiert, wenn es ungewollt in Spielen passierte. Tatsächlich aber ist NoClip in der Praxis viel mehr als "NoCollision" zu verstehen, weil der Cheat in erster Linie die Kollisionsabfrage außer Kraft setzt. Teilweise wird der Befehl seinem Namen aber auch gerecht, indem nach der Eingabe auch tatsächlich das Clipping deaktiviert wird, um z.B. die Leistungsfähigkeit der Grafikengine zu testen. Das Aussetzen der Kollisionsabfrage muss allerdings nicht immer nur ein Fehler sein, sondern kann auch bewusst ins Spieldesign einfließen. So wird z.B. an einigen Stellen in Titeln wie Super Mario Brothers oder auch Turrican auf eine Kollisionsabfrage verzichtet, so dass die Spielfigur durch das Hindernis hindurch springen kann, um versteckte Extra-Räume ausfindig zu machen. Auch bei Left 4 Dead wird bewusst auf eine Kollisionsabfrage zwischen den vier Charakteren verzichtet, damit man sich nicht gegenseitig im Weg steht. Auch Geisterwagen in Rennspielen funktionieren nach diesem Prinzip.



In manchen Fällen tritt eine mangelhafte Kollisionsabfrage aber auch zusammen mit Clippingfehlern in Erscheinung. Man denke z.B. an eine Situation, wie sie z.B. in Rainbow Six: Vegas passieren könnte: Das Team steht an der Tür und ist bereit, den Raum zu säubern, doch scheint bereits der Kopf des dahinter liegenden Gegners durch die Tür hindurch. Das passiert zum einen aufgrund der fehlenden Kollisionsabfrage zwischen Gegner und Tür, aber gleichzeitig auch aufgrund eines Clippingfehlers, denn streng genommen bräuchte die Engine den Gegner noch nicht zu berechnen, weil er sich eigentlich noch nicht in meinem Blickfeld befinden dürfte.

Für die Bewertung spielt eine funktionierende Kollisionsabfrage eine enorm wichtige Rolle, ist sie doch maßgeblich dafür verantwortlich, die virtuellen Welten als Spieler glaubhaft zu erleben und nachzuvollziehen. Hängen Figuren mit ihrem halben Körper in Objekten oder verschmelzen gar miteinander, indem z.B. ein Fußballspieler einfach durch einen anderen hindurch läuft, leidet darunter nicht nur massiv die Glaubwürdigkeit, sondern gleichzeitig auch der Spielspaß.

Wer sich für detaillierte Informationen zu den Clipping-Algorithmen und deren Funktionsweise interessiert, wird hier fündig.  



Kommentare

gollum_krumen schrieb am
Sehr guter Text, der diesmal angenehm detaillierter war als die vorigen. Diese neue Technik-Rubrik wird immer besser.
user 9412 schrieb am
Kompliment.
Fehlerhafte Kollisionsabfragen sind extrem nervig.
In fußball spielen würde man am liebsten sein pad an die Wand schmeißen weil der ball durch denn Torhüter geht oder am liebsten gleich denn monitor weil ein 1.50 großer Spieler durch ein 2meter Spieler durchläuft.
Wenn das richtig umgesetzt werden würde hätte man ein anderes bzw. realistischeres Spielgefühl
der mit dem PAC-MAN tanzt schrieb am
sehr schön... jetzt weiß ich genau was 'Clipping-Fehler' bedeutet ;) die Kollisionsfehlern sind mir schon aus DOA 2 (DC) bekannt :D
gozd13583 hat geschrieben:Paradebeispiel ist auch Assassin's Creed. War mein erstes PS3 Spiel damals und als ich zusehen musste wie Altair im Kampf während eines Konters zur Hälfte in den Gebäuden verschwindet war ich von der neuen Technik nicht begeister. Aber diese Fehler werden wohl auch noch bei der PlayStation 4, .... auftreten :lol:
ehrlich?? ich hatte das problem nicht (360)!! muss allerdings sagen, in FullHD wurde das bild sowas von auseinander gerissen (Tearing) :( dass ich auf HDready umsteigen (Monitor) musste!!!
schrieb am