aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/appendices/knowledge-boundaries.md4
-rw-r--r--docs/reference/render-frame.md15
2 files changed, 19 insertions, 0 deletions
diff --git a/docs/appendices/knowledge-boundaries.md b/docs/appendices/knowledge-boundaries.md
index c58462b..a31b561 100644
--- a/docs/appendices/knowledge-boundaries.md
+++ b/docs/appendices/knowledge-boundaries.md
@@ -10,6 +10,10 @@ authoring API без динамического подтверждения.
Не доказаны символами точные имена renderer vtable slots, полный набор CShade
state transitions и окончательный порядок части transparent/FX/shadow subpasses.
+Свободная камера превью удерживается в XY-границах поверхностей карты и над
+рельефом. Она пока не проверяет стены и проёмы строений; эти ограничения не
+подтверждают поведение стратегической камеры или камеры робота оригинала.
+
Закрывающий эксперимент: запустить оригинал в совместимой Windows/DirectX
среде, перехватить DirectDraw/Direct3D calls и surface flips, сохранить state
log на минимальных сценах с одним типом материала.
diff --git a/docs/reference/render-frame.md b/docs/reference/render-frame.md
index 3085731..8cba630 100644
--- a/docs/reference/render-frame.md
+++ b/docs/reference/render-frame.md
@@ -181,6 +181,21 @@ fn vertical_fov(self, aspect: f32) -> f32 {
(`forward · direction <= 1e-4`). Лучи в передней полусфере могут проецироваться
за край viewport; владелец спрайта отдельно решает, нужно ли его рисовать.
+После движения свободная камера ограничивает X и Y прямоугольником
+поверхностей карты, затем поднимается над найденным рельефом на заданный
+зазор. Границы берутся из корня пространственного индекса `TerrainWorld`,
+поэтому неиспользуемые вершины файла их не расширяют и повторного обхода
+геометрии в каждом кадре нет:
+
+```rust
+position[axis] = position[axis].clamp(min[axis], max[axis]); // axis = 0, 1
+position[2] = position[2].max(ground_height + ground_clearance);
+```
+
+Высота полёта сверху не ограничена. Это ограничение диагностической камеры
+превью; столкновения со стенами зданий и точные правила игровых камер оригинала
+остаются отдельными задачами.
+
## Ограничения точного совпадения
`VulkanStaticCamera::from_legacy_d3d7` выполняет восстановление вида и проекции