aboutsummaryrefslogtreecommitdiff
path: root/docs/tomes/05-render.md
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-10-18 04:59:15 +0300
committerValentin Popov <valentin@popov.link>2026-10-18 04:59:15 +0300
commite5d273158cd27545479276120dba8c02913f7930 (patch)
tree622d3ac76ef0c8dc6964d835424df772d82d57f0 /docs/tomes/05-render.md
parentb0b8e14569b560ee9db0c7a2ad24774726876d5a (diff)
downloadfparkan-e5d273158cd27545479276120dba8c02913f7930.tar.xz
fparkan-e5d273158cd27545479276120dba8c02913f7930.zip
Use LOD0 for terrain queries and rendering
Diffstat (limited to 'docs/tomes/05-render.md')
-rw-r--r--docs/tomes/05-render.md25
1 files changed, 25 insertions, 0 deletions
diff --git a/docs/tomes/05-render.md b/docs/tomes/05-render.md
index dce7724..b04af31 100644
--- a/docs/tomes/05-render.md
+++ b/docs/tomes/05-render.md
@@ -930,6 +930,31 @@ sun-ray queries поэтому используют исходные коордÐ
Эти два указателя нельзя подменять друг другом. Формулы камеры и размещения
реализованы и проверяются в `fparkan-render`.
+## LOD ландшафта
+
+У `Land.msh` список slot-ссылок terrain хранится в 38-байтовых записях
+Node38, а диапазоны граней — в 68-байтовых Slot68. В текущем runtime первые
+две ссылки Node38 выбирают соответственно LOD0 и LOD1; каждая запись слота
+задаёт начало и число граней в исходном массиве `TerrainFace28`. Все грани
+проверяются на единственное назначение, а выходящий за массив, повторный или
+неподдерживаемый диапазон считается ошибкой загрузки.
+
+Первый рендер карты, terrain-запросы высоты и пересечения, receiver-ы теней и
+обрезка контуром зданий используют только LOD0. Отбор сохраняет порядок
+исходных граней, а контурный проход отдельно переводит индекс спроецированной
+грани обратно в исходный. LOD1 пока не подставляется по расстоянию: такой
+переход не реализован.
+
+```rust
+let assignments = mesh.face_lod_assignments()?;
+for (face, assignment) in mesh.faces.iter().zip(assignments.iter()) {
+ if assignment.lod != TerrainLod::Lod0 {
+ continue;
+ }
+ // Build terrain query geometry from this source face.
+}
+```
+
## Материалы ландшафта
Рядом с `Land.msh` лежат `Land1.wea` и `Land2.wea`. Старший байт