Terrain Generation/ru: Difference between revisions

From Vintage Story Wiki
(Created page with "Генерация мира")
 
(Created page with "{{Navbox/ru}}")
Tags: Mobile edit Mobile web edit
 
(21 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>The terrain generation system is extremely complex and intricate.
<languages/>Система генерации ландшафта чрезвычайно сложна и запутана.
"Terrain Generation" is the term for all the parts of the world that are created by the game that are blocks. This includes, but is not limited to, soil, mountains, lakes, trees, and ruins.
«Генерация ландшафта» — это термин, обозначающий все части мира, созданные игрой, которые представляют собой блоки. Это включает, помимо прочего, почву, горы, озера, деревья и руины.


__TOC__
__TOC__
== Stages of terrain generation ==
== Этапы генерации ландшафта ==
The following steps are an overview, the next section will have a much more in depth explanation of these stages.
Следующие шаги являются обзором, в следующем разделе будет более подробное объяснение этих этапов.
# generate noise maps for various properties.
# генерирование карты шума для различных свойств.
# landforms, these are chosen based on a landform noise map.
# landforms, они выбираются на основе карты шума форм рельефа.
# rock strata, this is the stage where the type of rock in a region is chosen partly based on a geologic province noise map.
# rock strata, это этап, на котором тип горных пород в регионе выбирается частично на основе карты шума геологической провинции.
# caves, chunks are populated with caves.
# caves, чанки заполнены пещерами.
# block layers, layers placed on top of the current ground, e.g. soil, snow, and grass.
# block layers, слои, размещенные поверх текущей земли, например. почва, снег и трава.
# deposits, ores and other things in the stone are placed.
# deposits, руды и прочее в размещаются в породе.
# structures, this adds ruins, trader carts, treasure chests, and more.
# structures, добавляет руины, тележки торговцев, сундуки с сокровищами и многое другое.
# ponds, bodies of water.
# ponds, водоемы.
# vegetation and patches, plants that are randomly found in groups, cattails, horsetail, and flowers. It also adds trees.
# vegetation and patches, случайно встречающиеся группами, рогоз, хвощ, цветы. Он также добавляет деревья.
# finalize, this finishes the process, processing light in a chunk, spawning animals, and adding snow.
# finalize, это завершает процесс, обрабатывая свет в куске, создавая животных и добавляя снег.


== Technical ==
== Техническое ==
Each stage is defined in the [https://github.com/anegostudios/vssurvivalmod/tree/master/Systems/WorldGen/Standard/ChunkGen Survival base mod].
Каждый этап определен в [https://github.com/anegostudios/vssurvivalmod/tree/master/Systems/WorldGen/Standard/ChunkGen Базовый мод выживания].


=== Noise maps ===
=== Карты шума ===
VS utilizes three methods for generating noise: weighted octave, Perlin, and normalized simplex noise. Each one behaves differently.
VS использует три метода генерации шума: взвешенный октавный, Perlin и нормализованный симплексный шум. Каждый ведет себя по-разному.
In total, seven [https://github.com/anegostudios/vssurvivalmod/blob/825d8e8e090e6000b27d96a43d57aa1a1d5a82ce/Systems/WorldGen/Standard/ChunkGen/0.GenMaps/GenMaps.cs#L79-L87] noise maps are created at this stage.
Всего на этом этапе создается семь [https://github.com/anegostudios/vssurvivalmod/blob/825d8e8e090e6000b27d96a43d57aa1a1d5a82ce/Systems/WorldGen/Standard/ChunkGen/0.GenMaps/GenMaps.cs#L79-L87] шумовых карт.
* Climate
* Климат
* Flower
* Цветок
* Bush
* Куст
* Forest
* Лес
* Beach
* Пляж
* Geologic province
* Геологическая провинция
* Landform
* Рельеф
These maps are utilized by later stages to provide randomness to terrain.
Эти карты используются на более поздних этапах для придания ландшафту случайности.


=== Landforms ===
=== Рельеф ===
These are the shapes the land takes. There are many different landforms that can generate and some utilize more than one noise map, mostly the climate map. Each landform's properties are defined in the game assets. There are several optional properties, but all landforms must specify:
Таковы формы, которые принимает земля. Существует множество различных форм рельефа, которые можно генерировать, и некоторые из них используют более одной карты шума, в основном климатическую карту. Свойства каждой формы рельефа определены в игровых ресурсах. Есть несколько необязательных свойств, но все формы рельефа должны указывать:
* Octaves
* Октавы
* Octave thresholds
* Октавные пороги
* Terrain Y key positions
* Ключевые позиции местности Y
* Terrain Y key thresholds
* Пороги клавиш Terrain Y
Octaves defines how rough or smooth terrain is.
Октавы определяют, насколько пересеченной или гладкой является местность.


=== Rock strata ===
=== Горные породы ===
Rocks are generated in layers and those layers are grouped by their type: sedimentary, metamorphic and igneous.
Горные породы образуются слоями, и эти слои сгруппированы по типу: осадочные, метаморфические и магматические.


Sedimentary group doesn't have to be generated. If it does, sedimentary stones lie above all metamorphic and igneous stones.
Осадочную группу не нужно создавать. Если это так, то осадочные камни залегают выше всех метаморфических и магматических камней.


Metamorphic group doesn't have to be generated. If it does, metamorphic stones rest below all sedimentary layers and above all igneous layers.
Метаморфическую группу не обязательно создавать. Если это так, метаморфические камни залегают ниже всех осадочных слоев и выше всех магматических слоев.


Igneous group will always be generated. Igneous stones always start at the mantle, at the bottom of the map, and stretch upwards until it reaches metamorphic or sedimentary layers, or the surface.
Магматическая группа всегда будет генерироваться. Магматические камни всегда начинаются в мантии, в нижней части карты, и тянутся вверх, пока не достигнут метаморфических или осадочных слоев или поверхности.


Certain kinds of rocks have special spawning rules.
Некоторые виды камней имеют особые правила нереста.
* Basalt, despite being an igneous stone, can be generated above any layer, including sedimentary and metamorphic stones.
* Базальт, несмотря на то, что он магматический камень, может образовываться над любым слоем, включая осадочные и метаморфические камни.
* Halite spawns in underground domes of substantial size.
* Галит появляется в подземных куполах значительных размеров.
* Marble spawns in veins in phyllite and slate.
* Мрамор появляется в прожилках в филлите и сланце.
* Obsidian spawns in veins in basalt.
* Обсидиан появляется в прожилках базальта.
* Suevite is found only in craters, surrounding meteoric iron veins.
* Свевит встречается только в кратерах, окружающих жилы метеоритного железа.


=== Caves ===
=== Пещеры ===
Caves
Пещеры


=== Block layers ===
=== Слои блоков ===
Layers of blocks.
Слои блоков.


=== Deposits ===
=== Депозиты ===
Deposits are handled in [https://github.com/anegostudios/vssurvivalmod/blob/master/Systems/WorldGen/Standard/ChunkGen/5.GenDeposits/GenDeposits.cs <code>GenDeposits.cs</code>] in the Survival Mod. The code for deposits handles more than just ores in rocks. There are many steps in the process of generating ores.
Депозиты обрабатываются в [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.
# Все активы в <code>worldgen/deposits/</code> загружены и проанализированы.
## 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 <code>GenDeposits</code>. When a new world region is generated, <code>GenDeposits</code> calls <code>.OnMapRegionGen</code> on each deposit variant.
Это конец того, что делается в <code>GenDeposits</code>. Когда создается новый регион мира, <code>GenDeposits</code> вызывает <code>.OnMapRegionGen</code> для каждого варианта депозита.


# Region generation begins by updating the vertical distortion ore maps for the region.
# Генерация региона начинается с обновления карт вертикального искажения руды для региона.
# Each deposit variant then generates ore in the region.
# Каждый вариант месторождения генерирует руду в регионе.


<code>GenDeposits.OnMapRegionGen</code> 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.
<code>GenDeposits.OnMapRegionGen</code> относительно прост, потому что большая часть работы по генерации приходится на каждый вариант. То, что на самом деле происходит, когда вариант генерирует регион, зависит от того, какой генератор руды используется, а их несколько.


=== Structures ===
=== Структуры ===
Trader carts, ruins, vugs.
Торговые тележки, руины, вагоны.


=== Ponds ===
=== Пруды ===


=== Vegetation and patches ===
=== Растительность и грядки ===
 
{{Navbox/ru}}

Latest revision as of 01:46, 23 February 2022

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