Jak EA DICE stworzyło zniszczalne środowiska w Battlefield Bad Company 2 i Battlefield 3? [Zamknięte]


30

Jak ludzie z EA DICE stworzyli zniszczalne środowiska w Battlefield Bad Company 2 i Battlefield 3?

Czy właśnie zmontowali budynki ze wstępnie zdefiniowanych podregionów, które rozpadają się, gdy dochodzi do wybuchu lub czegoś podobnego? Nie mogę myśleć o niczym innym.



2
W sekcji publikacji na stronie internetowej DICE znajdują się 2 dokumenty dotyczące zniszczenia i deformacji Frostbite Engine . Jeden jest w kategorii Praca dyplomowa, a drugi w kategorii Renderowanie .
Quazi Irfan,

4
Głosuję za zamknięciem tego pytania jako nie na temat, ponieważ pyta, w jaki sposób określony wydawca tworzy określoną mechanikę w określonej grze. Zazwyczaj nie możemy powiedzieć na pewno bez spekulacji, i jako takie, te pytania są nie na temat. Zasadniczo pytalibyśmy sami, jak stworzyć taką mechanikę, ale uważam, że to pytanie jest zbyt stare, aby zapewnić jakąkolwiek wymierną korzyść z tego.
Gnemlock,

Odpowiedzi:


27

Po prostu tak, to co robią. Ale idź o dodatkową długość, aby zakryć proste krawędzie za pomocą maski zniszczenia . Po usunięciu części geometrii dodają szczegółową siatkę wokół zniszczonej sekcji, aby wyglądała wiarygodnie.

Oto jak to działa,

wprowadź opis zdjęcia tutaj

Niszcząc część tego domu, zaczynamy od usunięcia fragmentu geometrii

Niszcząc część tego domu, zaczynają od usunięcia fragmentu geometrii

wprowadź opis zdjęcia tutaj Następnie dodano siatkę szczegółów wokół zniszczonej sekcji.

wprowadź opis zdjęcia tutaj

Ostatnim krokiem jest dodanie maski zniszczenia.

Używają również efektów cząsteczkowych i resztek siatki, aby uzyskać bardziej dramatyczny wygląd.

(Wszystkie odniesienia pochodzą z 2 publikacji, o których wspomniałem w komentarzu)


8
Cóż, cząsteczki wyglądają dramatycznie, ale pozwala także ukryć zamiany geometrii przed graczem przez dym i tak dalej.
AttackingHobo

8

To jest CSG - Constructive Solid Geometry (choć w tym przypadku jest destrukcyjna, mówiąc ściśle), jeśli chcesz przeprowadzić więcej badań na temat działania algorytmów.

Standardowe podejście polega na użyciu dwóch istniejących siatek A i B (domu i odjętej objętości „eksplozji”) w celu wygenerowania trzeciej „siatki” (wykresu), w której przecinają się dwie płaszczyzny i krawędzie siatki, C - która opisuje obszar oni dzielą się. W 2D:

      / \
     /   \
    /  A  \
     |   |
     | /-|-\
     | |C| |
---  ----- | ------- G
       |  B|
       \---/

A to dom, B to objętość wybuchu, C to obszar połączenia / przecięcia między A i B. G to ziemia.

Matematyka / logika nie jest trywialna, ponieważ istnieje wiele skrajnych przypadków do rozwiązania, a połowa lub więcej z tego zadania po prostu rozpoznaje, które z możliwych typów wykresów wyników są szczególnymi przypadkami, które należy uwzględnić w kodzie. Widziałem problem opisany przez weteranów na gamedev.net jako „bardzo trudny problem” i mogę powiedzieć, że próbowałem go nawet w 2D, i odniosłem umiarkowany sukces, w którym zawiodło tylko kilka skrajnych przypadków, że to nie jest małe zadanie.

Prostszym sposobem może być użycie algorytmu rozkładu wieloboków i użycie geometrii, która tworzy podstawę do zniszczenia geometrii.


1
Być może został on oceniony negatywnie, ponieważ nie był zbytnio powiązany z pytaniem, ponieważ pytał o metody zastosowane w danej grze. Teza Stegmayra została napisana podczas opracowywania BF: BC2 - więc uzyskane w niej metody i wyniki prawdopodobnie wpłynęły na projekt systemu niszczenia. Niestety wydaje się, że nie przetrwała w samej grze, co nie jest rzadkością, jeśli chodzi o nowe techniki w dziedzinie badań i rozwoju. (I nie, nie zrobiłem tego / nie mogę.)
Lars Viklund,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.