feat(terrain): build BAS basement foundations
Docs Deploy / Build and Deploy MkDocs (push) Successful in 31s
Docs Deploy / Build and Deploy MkDocs (push) Successful in 31s
This commit is contained in:
4 files changed
+2970
-24
No files matched your search
@@ -955,6 +955,23 @@ for (face, assignment) in mesh.faces.iter().zip(assignments.iter()) {
|
||||
}
|
||||
```
|
||||
|
||||
Подготовка BAS вынесена в `fparkan-terrain::build_basement_foundations`.
|
||||
Функция получает внешние и внутренние кольца в порядке размещения, строит
|
||||
упорядоченные пересечения внешней границы с текущей поверхностью и возвращает
|
||||
исходные фрагменты рельефа вместе с треугольниками отмостки в одном наборе.
|
||||
`TerrainWorld::with_basement_foundation` принимает этот набор во владение и
|
||||
устанавливает те же координаты и маски в BVH высотных запросов и пересечений.
|
||||
Предпросмотр миссии на Vulkan пока строит только LOD0: связывание BAS-записей
|
||||
с этой подготовкой ещё не подключено, поэтому наличие API не означает, что
|
||||
геометрия миссии уже обрезана.
|
||||
|
||||
Внешнее кольцо должно лежать на области LOD0, а каждый его сегмент — оставаться
|
||||
покрытым текущей поверхностью. Непокрытый сегмент или пересекающиеся контуры
|
||||
дают ошибку; карта не остаётся частично обрезанной. Первичная нормализация
|
||||
использует исходные грани и соседей LOD0, последующие пересечения и вырезания —
|
||||
канонические фрагменты после предыдущих размещений. Соответствие динамических
|
||||
соседей, создаваемых нативным движком, пока не моделируется.
|
||||
|
||||
## Материалы ландшафта
|
||||
|
||||
Рядом с `Land.msh` лежат `Land1.wea` и `Land2.wea`. Старший байт
|
||||
|
||||
Reference in new issue
Block a user