stringtranslate.com

Синтез модели

Синтез моделей, также известный как коллапс волновой функции или «wfc», — это названия семейства алгоритмов решения ограничений, обычно используемых в процедурной генерации , особенно в индустрии видеоигр .

Некоторые видеоигры, в которых, как известно, использовались варианты алгоритма, включают Bad North , Townscaper и Caves of Qud .

Первый пример такого типа алгоритма был описан Полом Мерреллом, который назвал его «модельным синтезом» в своей статье 2007 года i3D [1] , а также представил его на конференции SIGGRAPH 2008 года и в своей докторской диссертации 2009 года. [2] Название «коллапс волновой функции» позже стало популярным названием для варианта этого алгоритма после того, как реализация Максима Гумина была опубликована в 2016 году в репозитории GitHub под этим названием. [3] Реализация Гумина значительно популяризировала этот стиль алгоритма, и в последующие годы он стал широко использоваться и адаптироваться техническими художниками и разработчиками игр. [3]

Реализация Гумина имела ряд источников вдохновения, включая докторскую диссертацию Меррелла, идеи из квантовой механики и перенос в стиле сверточной нейронной сети . [4] [5] Популярное название алгоритма «коллапс волновой функции» происходит от аналогии, проведенной между методом алгоритма и концепцией суперпозиции и наблюдения в квантовой механике. [6] [7] Некоторые инновации, представленные в реализации Гумина, включали использование перекрывающихся шаблонов, что позволяло использовать одно изображение в качестве входных данных для алгоритма. [8]

Некоторые предполагают, что причина, по которой реализация Гумина оказалась более популярной, чем реализация Меррелла, могла быть связана с меньшей доступностью реализации «синтеза моделей», ее трехмерной направленностью или, возможно, с ограничениями вычислительных возможностей широкой публики в то время. [9]

Одно из различий между реализацией Меррелла и Гумина и «коллапсом волновой функции» заключается в решении, какая ячейка «коллапсирует» следующей. Реализация Меррелла использует подход сканирующей линии, тогда как реализация Гумина всегда выбирает в качестве следующей ячейки ту, у которой наименьшее количество возможных результатов. [10]

Описание

Алгоритм WFC или «синтеза модели» имеет несколько вариантов. [6] Реализации Гумина и Меррелла описаны ниже, а также отмечены другие варианты:

Реализация Гумина

  1. Считывается входной битовый массив и подсчитываются шаблоны, присутствующие в битовом массиве.
  2. Создается массив с размерами желаемого вывода.
  3. Каждая ячейка массива инициализируется в «ненаблюдаемом» состоянии.
  4. Повторяются следующие шаги:
    1. Ячейка с наименьшим числом возможных выходных состояний находится
    2. «Свернуть» эту ячейку в одно из возможных состояний согласно правилам.
    3. Проверьте, что все ячейки действительны и следуйте правилам.
  5. Как только все ячейки будут «свернуты» в определенное состояние, верните выход. Если выход незаконен, отбросьте его и повторите процесс, пока он не станет законным.

Реализация Меррелла

Более ранняя реализация Меррелла по сути такая же, как у Гумина, за исключением некоторых незначительных отличий.

(1) В версии Меррелла нет необходимости выбирать ячейку с наименьшим числом возможных выходных состояний для коллапса. Вместо этого принят подход сканлайн. По словам Меррелла, это приводит к более низкой частоте отказов модели без какого-либо отрицательного влияния на качество. [10] Однако некоторые комментаторы отметили, что подход сканлайн к «коллапсу» имеет тенденцию приводить к направленным артефактам. [11]

(2) Подход Меррелла выполняет алгоритм по частям, а не все сразу. Такой подход значительно снижает частоту отказов для многих больших сложных моделей; особенно в трехмерном пространстве. [10]

Разработки

В апреле 2023 года Шаад Алака и Рафаэль Бидарра из Делфтского университета предложили «коллапс иерархической семантической волновой функции». По сути, алгоритм модифицирован для работы за пределами простых, неструктурированных наборов плиток. До их работы все варианты алгоритма WFC работали с плоским набором вариантов плиток на ячейку. [12]

Их обобщенный подход организует наборы плиток в иерархию, состоящую из абстрактных узлов, называемых «мета-плитками», и конечных узлов, называемых «листовыми плитками». [13] Например, на первом проходе WFC может сделать определенную плитку мета-плиткой типа «замок»; которая на втором проходе будет свернута в другие плитки на основе правила, например, плитку «стена» или «трава».

Ссылки

  1. ^ Меррелл, Пол (апрель 2007 г.). «Синтез модели на основе примеров». Труды симпозиума 2007 г. по интерактивной 3D-графике и играм (PDF) . стр. 105–112. doi :10.1145/1230100.1230119. ISBN 978-1-59593-628-8.
  2. ^ Меррелл, Пол (2009). Синтез моделей (PDF) . Чапел-Хилл.{{cite book}}: CS1 maint: отсутствует местоположение издателя ( ссылка )
  3. ^ ab Alaka, Shaad; Bidarra, Rafael (2023). "Hierarchical Semantic Wave Function Collapse". Труды 18-й Международной конференции по основам цифровых игр . Основы цифровых игр 2023 (FDG 2023) . стр. 2. doi :10.1145/3582437.3587209. ISBN 978-1-4503-9855-8. В 2016 году Максим Гумин представил алгоритм WFC, опубликовав репозиторий, содержащий его первоначальную реализацию. С тех пор WFC оказал глубокое влияние на технических художников и разработчиков игр, будучи принятым, адаптированным и используемым в коммерчески опубликованных и будущих проектах (Caves of Qud, Townscaper, Matrix Awakens).
  4. ^ Меррелл, Пол (6 августа 2023 г.). Процедурное моделирование с использованием графовых грамматик (видео). Событие происходит в 3:13.
  5. ^ "Реализация коллапса волновой функции и разбиения двоичного пространства для процедурной генерации подземелий". Шаан Хан . 2021-03-21 . Получено 2024-03-24 . В случае WFC он вдохновлен тремя отличительными, но функционально схожими алгоритмами и концепциями: синтез текстур (в частности, дискретный синтез), цепи Маркова и квантовая механика. WFC также был дополнительно вдохновлен передачей стиля сверточной нейронной сети (передача стиля CNN).
  6. ^ ab Гумин, Максим (сентябрь 2016), Wave Function Collapse Algorithm , получено 24.03.2024
  7. ^ "Алгоритм коллапса волновой функции объяснен очень ясно". Роберт Хитон . Получено 24.03.2024 .
  8. ^ Гумин, Максим (сентябрь 2016), Wave Function Collapse Algorithm , получено 2024-03-25
  9. ^ Алака, Шаад (2023). «Коллапс иерархической семантической волновой функции». Труды 18-й Международной конференции по основам цифровых игр . Основы цифровых игр 2023 (FDG 2023) . стр. 2. doi :10.1145/3582437.3587209. ISBN 978-1-4503-9855-8. За несколько лет до этого Меррел опубликовал концептуально идентичный алгоритм синтеза моделей, хотя он не завоевал такой популярности, как WFC, возможно, из-за его меньшей доступности, сосредоточенности в основном на 3D и вычислительных требований на тот момент.
  10. ^ abc Merrell, Paul (28 июля 2021 г.). "Сравнение синтеза модели и коллапса волновой функции" (PDF) . Первое отличие заключается в шаге, на котором мы выбираем ячейку и метку. Ячейки выбираются в разном порядке. Синтез модели проходит по сетке в порядке скан-линий. WFC выбирает ячейку с самой низкой энтропией.
  11. ^ DV Gen (17 апреля 2023 г.). Процедурная генерация с коллапсом волновой функции и синтезом моделей | Unity Devlog (видео). Событие происходит в 15:13. К сожалению, этот метод может вносить направленные артефакты.
  12. ^ Алака, Шаад; Бидарра, Рафаэль (апрель 2023 г.). «Коллапс иерархической семантической волновой функции». Труды 18-й Международной конференции по основам цифровых игр . стр. 1–10. doi :10.1145/3582437.3587209. ISBN 978-1-4503-9855-8. Однако, насколько нам известно, все подобные варианты алгоритма WFC работают с плоским набором вариантов плиток на ячейку.
  13. ^ Алака, Шаад; Бидарра, Рафаэль (апрель 2023 г.). «Коллапс иерархической семантической волновой функции». Труды 18-й Международной конференции по основам цифровых игр . стр. 1–10. doi :10.1145/3582437.3587209. ISBN 978-1-4503-9855-8. Мы предлагаем решение этих недостатков путем введения (i) понятия мета-плитки, абстрактной плитки, которая представляет собой семантическую группу плиток, а также (ii) графоподобной структуры, которая способна представлять иерархию среди них и ограничения между ними.

Внешние ссылки