Wie haben die Leute von EA DICE zerstörbare Umgebungen in Battlefield Bad Company 2 und Battlefield 3 geschaffen?
Haben sie gerade die Gebäude aus vordefinierten Teilregionen zusammengesetzt, die bei einer Explosion oder ähnlichem auseinander brechen? Ich kann an nichts anderes denken.
Antworten:
Um es einfach auszudrücken: Ja das, was sie tun. Aber die gehen eine zusätzliche Länge, um die geraden Kanten mit Zerstörungsmaske zu verdecken . Nachdem Sie den Teil der Geometrie entfernt haben, fügen Sie dem zerstörten Abschnitt ein detailliertes Netz hinzu , damit er glaubwürdig aussieht.
So funktioniert es
Wenn sie einen Teil dieses Hauses zerstören, entfernen sie zunächst ein Stück der Geometrie
Anschließend wurden Detailmaschen um den zerstörten Abschnitt hinzugefügt.
Und der letzte Schritt ist das Hinzufügen der Zerstörungsmaske.
Sie verwenden auch Partikeleffekte und Netzabfälle für einen dramatischeren Look.
(Der gesamte Verweis stammt aus den beiden Veröffentlichungen, die ich im Kommentar erwähnt habe.)
quelle
Dies ist CSG - Constructive Solid Geometry (obwohl es in diesem Fall streng genommen destruktiv ist), wenn Sie genauer untersuchen möchten, wie die Algorithmen tatsächlich funktionieren.
Der Standardansatz besteht darin, die beiden vorhandenen Netze A und B (das Haus und das subtrahierte "Explosions" -Volumen) zu verwenden, um ein drittes "Netz" (Diagramm) zu erzeugen, bei dem sich die beiden Netzebenen und Kanten schneiden, C - das die Fläche beschreibt Sie teilen. In 2D:
A ist das Haus, B ist das Explosionsvolumen, C ist die Vereinigungs- / Schnittfläche zwischen A und B. G ist der Boden.
Die Mathematik / Logik dahinter ist nicht trivial, da es viele Randfälle gibt, mit denen man sich befassen muss. Mindestens die Hälfte dieser Aufgabe besteht darin, zu erkennen, welche der möglichen Arten von Ergebnisgraphen Sonderfälle sind, die im Code berücksichtigt werden müssen. Ich habe das Problem, das von den Veteranen auf gamedev.net als "sehr schweres Problem" beschrieben wurde, als "sehr schweres Problem" angesehen. Ich kann Ihnen sagen, dass Sie es nicht einmal in 2D versuchen und einen mäßigen Erfolg haben, wenn nur ein paar Randfälle fehlschlagen. dass es keine kleine aufgabe ist.
Möglicherweise ist es einfacher, einen Polygonzerlegungsalgorithmus zu verwenden und stattdessen die Geometrie zu verwenden, die als Grundlage für die Zerstörung der Geometrie erstellt wurde.
quelle