diff options
Diffstat (limited to 'docs/reference')
| -rw-r--r-- | docs/reference/render-frame.md | 15 |
1 files changed, 15 insertions, 0 deletions
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` выполняет восстановление вида и проекции |
