Как EA DICE создала разрушительную среду в Battlefield Bad Company 2 и Battlefield 3? [закрыто]


30

Как ребята из EA DICE создавали разрушительную среду в Battlefield Bad Company 2 и Battlefield 3?

Они просто собирали здания из заранее определенных субрегионов, которые распадаются, когда происходит взрыв или что-то подобное? Я не могу думать ни о чем другом.



2
В разделе публикаций на сайте DICE есть 2 документа по разрушению и деформации двигателя Frostbite . Один из них находится в категории тезисов, а другой - в категории рендеринга .
Quazi Irfan

4
Я голосую, чтобы закрыть этот вопрос как не по теме, потому что он спрашивает, как конкретный издатель создает конкретную механику в конкретной игре. Как правило, мы не можем сказать вам наверняка без спекуляций, и, как таковые, эти вопросы не по теме. Как правило, мы спрашиваем, как создать такую ​​механику, сами, но я чувствую, что этот вопрос слишком старый, чтобы обеспечить какую-либо ощутимую выгоду от этого.
Гнемлок

Ответы:


27

Проще говоря, да, что они делают. Но идите на дополнительную длину, чтобы покрыть прямые края, используя маску разрушения . После удаления части геометрии, они добавляют детальную сетку вокруг разрушенного участка, чтобы он выглядел правдоподобно.

Вот как это работает,

введите описание изображения здесь

Разрушая часть этого дома, мы начинаем с удаления части геометрии

Разрушая часть этого дома, они начинают с удаления части геометрии

введите описание изображения здесь Затем добавлены детали сетки вокруг разрушенного участка.

введите описание изображения здесь

И последний шаг - добавить маску разрушения.

Они также используют эффекты частиц и сетчатого мусора для более драматичного вида.

(Вся ссылка взята из тех двух публикаций, которые я упомянул в комментарии)


8
Ну, частицы действительно выглядят драматично, но это также позволяет скрыть геометрию от игрока дымом и еще много чего.
AttackingHobo

8

Это CSG - Constructive Solid Geometry (хотя в данном случае, строго говоря, она деструктивна), если вы хотите больше исследовать, как на самом деле работают алгоритмы.

Стандартный подход состоит в том, чтобы использовать две существующие сетки A & B (дом и вычтенный объем "взрыва"), чтобы создать третью "сетку" (график), где пересекаются плоскости и ребра сетки, C - которая описывает площадь они делят. В 2D:

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

A - дом, B - объем взрыва, C - область соединения / пересечения между A и B. G - земля.

Математика / логика, стоящая за ней, не тривиальна, так как есть много крайних случаев, с которыми приходится иметь дело, и половина или более этой задачи просто распознают, какой из возможных типов графов результатов являются особыми случаями, которые необходимо учитывать в коде. Я видел проблему, описанную ветеранами на gamedev.net, как «очень сложную проблему», и я могу сказать вам, пытаясь решить ее даже в 2D, и имея умеренную степень успеха, когда терпит неудачу только пара крайних случаев, что это не маленькая задача.

Более простой способ - использовать алгоритм разложения полигонов и использовать вместо него геометрию, которая создает основу для уничтожения вашей геометрии.


1
Возможно, он был отвергнут, потому что он не был чрезмерно связан с вопросом, поскольку он спрашивал о методах, используемых для конкретной игры. Тезис Стегмайра был написан во время разработки BF: BC2, поэтому методы и результаты, достигнутые в нем, вероятно, повлияли на проект системы разрушения. К сожалению, похоже, что он не выжил в самой игре, что не редкость, когда речь заходит о новых методах исследований и разработок. (И нет, я этого не делал / не могу.)
Ларс Виклунд,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.