Генерация поверхности

From Vintage Story Wiki
This page is a translated version of the page Terrain Generation and the translation is 100% complete.
Other languages:

Система генерации ландшафта чрезвычайно сложна и запутана.

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

Этапы генерации ландшафта

Следующие шаги являются обзором, в следующем разделе будет более подробное объяснение этих этапов.

  1. генерирование карты шума для различных свойств.
  2. landforms, они выбираются на основе карты шума форм рельефа.
  3. rock strata, это этап, на котором тип горных пород в регионе выбирается частично на основе карты шума геологической провинции.
  4. caves, чанки заполнены пещерами.
  5. block layers, слои, размещенные поверх текущей земли, например. почва, снег и трава.
  6. deposits, руды и прочее в размещаются в породе.
  7. structures, добавляет руины, тележки торговцев, сундуки с сокровищами и многое другое.
  8. ponds, водоемы.
  9. vegetation and patches, случайно встречающиеся группами, рогоз, хвощ, цветы. Он также добавляет деревья.
  10. finalize, это завершает процесс, обрабатывая свет в куске, создавая животных и добавляя снег.

Техническое

Каждый этап определен в Базовый мод выживания.

Карты шума

VS использует три метода генерации шума: взвешенный октавный, Perlin и нормализованный симплексный шум. Каждый ведет себя по-разному. Всего на этом этапе создается семь [1] шумовых карт.

  • Климат
  • Цветок
  • Куст
  • Лес
  • Пляж
  • Геологическая провинция
  • Рельеф

Эти карты используются на более поздних этапах для придания ландшафту случайности.

Рельеф

Таковы формы, которые принимает земля. Существует множество различных форм рельефа, которые можно генерировать, и некоторые из них используют более одной карты шума, в основном климатическую карту. Свойства каждой формы рельефа определены в игровых ресурсах. Есть несколько необязательных свойств, но все формы рельефа должны указывать:

  • Октавы
  • Октавные пороги
  • Ключевые позиции местности Y
  • Пороги клавиш Terrain Y

Октавы определяют, насколько пересеченной или гладкой является местность.

Горные породы

Горные породы образуются слоями, и эти слои сгруппированы по типу: осадочные, метаморфические и магматические.

Осадочную группу не нужно создавать. Если это так, то осадочные камни залегают выше всех метаморфических и магматических камней.

Метаморфическую группу не обязательно создавать. Если это так, метаморфические камни залегают ниже всех осадочных слоев и выше всех магматических слоев.

Магматическая группа всегда будет генерироваться. Магматические камни всегда начинаются в мантии, в нижней части карты, и тянутся вверх, пока не достигнут метаморфических или осадочных слоев или поверхности.

Некоторые виды камней имеют особые правила нереста.

  • Базальт, несмотря на то, что он магматический камень, может образовываться над любым слоем, включая осадочные и метаморфические камни.
  • Галит появляется в подземных куполах значительных размеров.
  • Мрамор появляется в прожилках в филлите и сланце.
  • Обсидиан появляется в прожилках базальта.
  • Свевит встречается только в кратерах, окружающих жилы метеоритного железа.

Пещеры

Пещеры

Слои блоков

Слои блоков.

Депозиты

Депозиты обрабатываются в GenDeposits.cs в режиме выживания. Код месторождений касается не только руды в горных породах. Процесс добычи руды состоит из многих этапов.

  1. Все активы в worldgen/deposits/ загружены и проанализированы.
    1. Генератор перебирает все депозиты и добавляет их в список.
    2. Если есть дочерние депозиты, они регистрируются.
  2. Создается карта искажения формы залежи. Это используется при инициализации депозитов.
  3. Генератор перебирает все зарегистрированные депозиты.
    1. Каждый вариант месторождения инициализируется случайным начальным числом и картой искажения формы месторождения. Этот процесс инициализации одинаков для всех депозитов и используется только для упрощения кода.
    2. Если вариант месторождения использует карту руды, она создается для него. Каждому виду месторождения соответствует своя рудная карта.
    3. Если есть какие-либо дочерние месторождения, которые также используют карту руды, она создается для дочернего месторождения.

Это конец того, что делается в GenDeposits. Когда создается новый регион мира, GenDeposits вызывает .OnMapRegionGen для каждого варианта депозита.

  1. Генерация региона начинается с обновления карт вертикального искажения руды для региона.
  2. Каждый вариант месторождения генерирует руду в регионе.

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

Структуры

Торговые тележки, руины, вагоны.

Пруды

Растительность и грядки

Template:Navbox/ru