Terrain Generation/ru: Difference between revisions
Mirotworez (talk | contribs) (Created page with "=== Слои блоков === Слои блоков.") |
Mirotworez (talk | contribs) (Created page with "=== Депозиты === Депозиты обрабатываются в [https://github.com/anegostudios/vssurvivalmod/blob/master/Systems/WorldGen/Standard/ChunkGen/5.GenDe...") |
||
Line 61: | Line 61: | ||
Слои блоков. | Слои блоков. | ||
=== | === Депозиты === | ||
Депозиты обрабатываются в [https://github.com/anegostudios/vssurvivalmod/blob/master/Systems/WorldGen/Standard/ChunkGen/5.GenDeposits/GenDeposits.cs <code>GenDeposits.cs</code>] в режиме выживания. Код месторождений касается не только руды в горных породах. Процесс добычи руды состоит из многих этапов. | |||
# All assets in <code>worldgen/deposits/</code> are loaded and parsed. | # All assets in <code>worldgen/deposits/</code> are loaded and parsed. |
Revision as of 10:43, 18 February 2022
Система генерации ландшафта чрезвычайно сложна и запутана.
«Генерация ландшафта» — это термин, обозначающий все части мира, созданные игрой, которые представляют собой блоки. Это включает, помимо прочего, почву, горы, озера, деревья и руины.
Этапы генерации ландшафта
Следующие шаги являются обзором, в следующем разделе будет более подробное объяснение этих этапов.
- генерирование карты шума для различных свойств.
- landforms, они выбираются на основе карты шума форм рельефа.
- rock strata, это этап, на котором тип горных пород в регионе выбирается частично на основе карты шума геологической провинции.
- caves, чанки заполнены пещерами.
- block layers, слои, размещенные поверх текущей земли, например. почва, снег и трава.
- deposits, руды и прочее в размещаются в породе.
- structures, добавляет руины, тележки торговцев, сундуки с сокровищами и многое другое.
- ponds, водоемы.
- vegetation and patches, случайно встречающиеся группами, рогоз, хвощ, цветы. Он также добавляет деревья.
- finalize, это завершает процесс, обрабатывая свет в куске, создавая животных и добавляя снег.
Техническое
Каждый этап определен в Базовый мод выживания.
Карты шума
VS использует три метода генерации шума: взвешенный октавный, Perlin и нормализованный симплексный шум. Каждый ведет себя по-разному. Всего на этом этапе создается семь [1] шумовых карт.
- Климат
- Цветок
- Куст
- Лес
- Пляж
- Геологическая провинция
- Рельеф
Эти карты используются на более поздних этапах для придания ландшафту случайности.
Рельеф
Таковы формы, которые принимает земля. Существует множество различных форм рельефа, которые можно генерировать, и некоторые из них используют более одной карты шума, в основном климатическую карту. Свойства каждой формы рельефа определены в игровых ресурсах. Есть несколько необязательных свойств, но все формы рельефа должны указывать:
- Октавы
- Октавные пороги
- Ключевые позиции местности Y
- Пороги клавиш Terrain Y
Октавы определяют, насколько пересеченной или гладкой является местность.
Горные породы
Горные породы образуются слоями, и эти слои сгруппированы по типу: осадочные, метаморфические и магматические.
Осадочную группу не нужно создавать. Если это так, то осадочные камни залегают выше всех метаморфических и магматических камней.
Метаморфическую группу не обязательно создавать. Если это так, метаморфические камни залегают ниже всех осадочных слоев и выше всех магматических слоев.
Магматическая группа всегда будет генерироваться. Магматические камни всегда начинаются в мантии, в нижней части карты, и тянутся вверх, пока не достигнут метаморфических или осадочных слоев или поверхности.
Некоторые виды камней имеют особые правила нереста.
- Базальт, несмотря на то, что он магматический камень, может образовываться над любым слоем, включая осадочные и метаморфические камни.
- Галит появляется в подземных куполах значительных размеров.
- Мрамор появляется в прожилках в филлите и сланце.
- Обсидиан появляется в прожилках базальта.
- Свевит встречается только в кратерах, окружающих жилы метеоритного железа.
Пещеры
Пещеры
Слои блоков
Слои блоков.
Депозиты
Депозиты обрабатываются в GenDeposits.cs
в режиме выживания. Код месторождений касается не только руды в горных породах. Процесс добычи руды состоит из многих этапов.
- All assets in
worldgen/deposits/
are loaded and parsed.- The generator goes over all deposits and adds them to a list.
- If there are any child deposits, they are registered.
- A deposit shape distortion map is created. This is used when initializing deposits.
- The generator goes over all registered deposits.
- Each deposit variant is initialized with a random seed and the deposit shape distortion map. This init process is the same for all deposits and is used only to simplify the code.
- If the deposit variant uses an ore map, one is created for it. Each kind of deposit gets its own ore map.
- If there are any child deposits that also use an ore map, one is created for the child deposit.
This is the end of what is done in GenDeposits
. When a new world region is generated, GenDeposits
calls .OnMapRegionGen
on each deposit variant.
- Region generation begins by updating the vertical distortion ore maps for the region.
- Each deposit variant then generates ore in the region.
GenDeposits.OnMapRegionGen
is relatively simple because most of the generation work is given to each variant. What actually happens when a variant generates a region is dependent on which ore generator is used, of which there are several.
Structures
Trader carts, ruins, vugs.