Статьи » Обучающие статьи » Для мододелов


Как сделать Previs/Precomb для Exteriors (поверхности Commonwealth) в Fallout 4.


Автор статьи: the-thing

Добавлено: 13 Марта 2019 в 02:43 | Обновлено:
Просмотров: 714 | Комментарии: 0

Понравилось: 3 пользователям




Общие сведения:

Precombined Geometry - Предварительно объединенные (предкомбинированные) ресурсы, сокращенно называемые Precomb.

Движок объединяет меши похожих элементов в ячейке в один элемент. Это позволяет уменьшить нагрузку на процессор при рендеринге.

Precomputed Visibility - Предварительно вычисленные данные видимости, сокращенно называемые Previs.

Данные previs показывают игре какие предметы в области 3х3 (из центральной ячейки в квадратной области ячеек 3x3) вы видите, а какие нет, потому что их видимость заблокирована другими предметами.

При использовании previs движок игры не будет отображать ничего, что вы не видите.

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

Почему и для чего это нужно делать:

Не все знают, но Bethesda предприняла некоторые меры по оптимизации и повышению частоты кадров в игре и особенно в городах. Одной из этих мер и является previs/precomb. Однако, многие моды ломают предкомбинации по умолчанию и не заменяют их, что приводит к значительному падению фпс. Такие моды могут вызывать большие проблемы с производительностью: при большом количестве сломанных предкомбинаций, а значит и данных видимости, все свободные ресурсы (до 100%) процессора\видеокарты будут заняты визуализацией среды - это означает, что при возникновении событий, которые увеличивают нагрузку (спавн больших групп нпц, погодные явления, разные графические эффекты и т.д.) у процессора\видеокарты не будет запаса по производительности, что приведет к падению фпс.

Какие моды потенциально могут отключить previs/precomb?

  • Моды, которые удаляют различные статические объекты на карте.
  • Моды заменяющие статические объекты: разные озеленители деревьев, реплейсеры, ремоделлеры и т.д.
  • Ретекстуры и различные «оптимизаторы» текстур, которые меняют пути стандартных расположений текстур.

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

Подготовка:

  1. Все Содружество условно можно разделить на area (области, с ячейкой в центре и два диаметра ячеек вокруг нее) - кватдраты 5х5 ячеек.
    См. рис. 1:


https://cloud.mail.ru/public/5eqF/4zGwGgU8o

Эмпирически я выяснил, что для вычисления видимости минимальное (достаточное) расстояние между центрами соседних областей (area) - 5 ячеек. Центральная ячейка начальной области (5х5) имеет координаты (0,0) на карте. Остальные области, расположены от нее через одну ячейку, т.е. между соседними областями одна клетка (они не вплотную). См. карту на рис. 2 и 3:

https://cloud.mail.ru/public/7XCb/fw4Xk8HdY


https://cloud.mail.ru/public/5cnd/XZ9PFY3ZQ

Creation Kit будет производить генерацию видимости для каждой области (синие квадраты) из ячеек фиолетового цвета для связанных с ними кластеров ячеек 3х3 вокруг (9 кластеров и соответственно 9 фиолетовых ячеек в центре кластера для каждой области) см. рис. 4:


https://cloud.mail.ru/public/M5GD/UUEZARoDA

Вне зависимости от того в какой части области (синие квадраты) вы выбрали ячейку, previs для нее будет выполнятся именно из этих ближайших фиолетовых ячеек. Не рекомендую выбирать ячейки в промежутках между областями (area) - почти всегда будут артефакты изображения. (upd: все работает в пределах кластера 3х3 или area, не будет артефактов, если удалить precombine и это будет работать только для ванильной игры или игры с удаленными precombine (ключевое), настоятельно рекомендую удалять старые precombine, даже если вы их не делали. Это обезопасит ваш мод от графических артефактов.). Если все же ячейка туда попала, то делайте previs для всех соседних областей (area). (upd: Не верно, нужно удалить precombine (еще раз, если ваш мод ставится на ванильную версию игры, то этого достаточно, но если до этого еще полно всего, то будут артефакты) и сделать заново и все будет нормально отображаться).

  1. По карте нужно определиться с местоположением и сделать список с координатами либо ячеек, либо центров областей (желтые ячейки), где находятся наши измененные статики.

Создадим precombined geometry для наших областей:

  1. В CreationKit открываем наш мод.
  2. В окне Object Window-WorldObjects -> Static удаляем precomb у всех ячеек содержащих измененные статики.
    Для этого нужно выделить правой кнопкой статик и выбрать Clear Affected Cells for PreCombine Data. Нужно выбирать по одному статику за раз. С выделенной (с шифтом) группой статиков - не работает.
  3. Генерируем новый precomb для нужных областей (area), одной ячейки (cell) или сразу для всей карты (в этом случае придется делать previs тоже на все карту, иначе будут артефакты изображения).

Для одной области или ячейки:

    1. В окне Cell View, там, где написано World Space выбираем Commonwealth.
    2. Нажимаем на Coords, чтобы отсортировать ячейки по координатам.
    3. Ищем по координатам и загружаем нужную нам ячейку (дв. клик по ней).
    4. Сверху в выпадающем меню World выбираем PreCombine Geometry for Loaded Area (или PreCombine Geometry for Current Cell).
    5. Ждем окончания и сохраняем мод.

Для всей карты:

  1. Сверху в выпадающем меню World выбираем PreCombine Geometry for World.
  2. Ждем окончания (несколько часов).
  3. Сохраняем мод.

Теперь сделаем precomputed visibility для выбранных областей/ячеек:

    1. В CreationKit открываем наш мод, если не был открыт.
    2. Previs выполняется только для одной области (area) или одной ячейки (cell), поэтому следующие шаги повторяем для каждой области/ячейки по отдельности:
      1. В окне Cell View, там где написано World Space выбираем Commonwealth, если не выбрано.
      2. Загружаем первую ячейку (cell) с координатами из нашего списка.
      3. Сверху в выпадающем меню Visibility выбираем Generate Precombined Visibility for All Loaded Cells (илиPrecombined Visibility for Current Cell).
      4. Ждем окончания и сохраняем мод.
      5. Помечаем в нашем списке координаты загруженной в пункте b.) ячейки.
    3. Повторяем п.2 до конца списка.

Что дальше?
В итоге у нас получится две папки по пути:
Data\meshes\PreCombined
Data\Vis
А также модифицированный esp, содержащий данные о previs/precomb наших измененных ячеек.
Теперь можно добавить получившиеся папки к папкам с мешами мода и упаковать в архив типа: "имя esp файла мода" - main.ba2 (без кавычек), любым понравившимся вам способом.

Замечания и рекомендации:

  1. Сохраняйтесь чаще. Могут быть вылеты и зависания компьютера, предположительно из-за недостатка места на диске для файла подкачки и(или) видеопамяти (рандомное зависание ПК). Места на диске должно быть достаточно: десятки гигабайт.
  2. У данной технологии с использованием Creation Kit также есть недостатки:
    • В областях где была проведена precomb/previs, при прохождении через объекты без коллизии (напр. кусты, ветки с листьями и т.д.) могут появлятся артефактные изображения. Встречается тогда, когда эти объекты образуют непрозрачный фон. Это особенность такого преобразования. Как вариант, исключить ячейки (cell) cтакими статиками из предкомбинации, см. выше (Clear Affected Cells for PreCombine Data).
    • Как отдельно одну ячейку исключить из предкомбинации без костылей - FO4Edit со скриптом.
    • При строительстве разрушение статиков разрушает все предкомбинации в этой ячейке. Это нужно учитывать.
  3. Часть статиков никогда не участвует в предкомбинации: трава (только та, которая генерируется процедурно), мелкие предметы на земле (щебень, палки, которые генерируется процедурно), предметы которые можно поднять (мусор, оружие, броня), взорвать (взрывающиеся машины, баллоны), предметы с которыми можно взаимодействовать (двери, стулья, кровати, собираемые растения), некоторые анимированные предметы и т.д.
  4. Добавление объектов в ячейку не разрушает предкомбинацию. Только
    удаление или изменение и только, когда они находятся в предкомбинации.
  5. Любое редактирование, которое отключает предкомбинацию в ячейке, отключит previs во всем кластере 3x3 включающем эту ячейку, см рис 4.
  6. Не обязательно внедрять previs/precomb  в сам мод, можно сделать патч в виде дополнительного esp и архива .ba2 с данными. Для этого нужно проделать все те же операции только без активации мода в CreationKit и после сохранить все в отдельный esp.

PS: Все, что изложено в этой статье - мое частное мнение, а данные получены опытным путем и из обсуждений на зарубежных форумах. Как все работает по версии Bethesda мне неизвестно, т.к. официальных мануалов нет.

Пример использования технологии:

http://modgames.net/load/fallout_4/globalnye/resurrection_patch_optimizacii_optimization_patch_for_resurrection_mod/425-1-0-23780#comEnt1324940

Перепечатка не допустима.




Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Помочь cайту

Набор в команду сайта
Наши конкурсы
Каталог файлов
The Witcher 3: Wild Hunt [110]
Skyrim Special Edition [312]
TES V: Skyrim [4233]
TES IV: Oblivion [512]
Fallout: New Vegas [2259]
Fallout 3 [1099]
Fallout 4 [866]
Dragon Age: Origins [611]
Dragon Age 2 [245]
Dragon Age: Inquisition [234]
GTA SA [94]
GTA 4 [131]
GTA 5 [42]
S.T.A.L.K.E.R. Зов Припяти [75]
S.T.A.L.K.E.R. Чистое Небо [44]
S.T.A.L.K.E.R. Тени Чернобыля [101]
Neverwinter Nights 2 [164]
Другие разделы

Подразделы:


Общая [34]
Adobe Photoshop [16]
Для мододелов [59]


Последние рецензии
Скромное видение Fallout: New California, или почему в это стоит сыграть
Sony PlayStation VR
«The long dark»
Рецензия: «God of War 4»
Brain Out для тех кто скучает по 90-м
Frostpunk: в час Белого Хлада...
Assassin's Creed Origins: в полях Иалу
Assassin's Creed Origins: пески времени






Статистика
Онлайн всего: 297
Гостей: 173
Пользователей: 124




Вверх Вниз