test(M00): probe renderer terrain clearance

Work-Package: M00-QAR-TERRAIN-HEIGHT-001
Agent: sindo-main-codex
Tests: five-point terrain probe, coordination and documentation gates
Fidelity: four cameras confirmed above terrain; waterfall tile missing terrain mesh recorded
This commit is contained in:
2026-07-11 19:38:23 +04:00
parent dfc10312f8
commit d233a41ce8
4 changed files with 276 additions and 0 deletions
+18
View File
@@ -138,3 +138,21 @@ flowchart LR
```
На пяти точках maximum mapping/round-trip error равен `0.000015`. Это исключает текущую формулу `gx = center - wy`, `gy = wz`, `gz = center - wx` как источник крупного paired mismatch. Результат не доказывает renderer parity: следующая диагностика должна отдельно проверить terrain height, placement transforms и фактическое camera direction/FOV. Production `CoordinateMapper` остаётся задачей M01; M00 probe не создаёт второй публичный coordinate contract.
## Terrain height diagnostic
Rendered terrain проверяется без нового runtime API: offline probe использует уже загруженный tile mesh, строит `TriangleMesh` и выполняет вертикальный ray в tile-local space.
```powershell
godot --headless --path . --script res://src/tools/probe_render_terrain_height.gd -- --wait 2
```
```mermaid
flowchart LR
C[Calibrated camera XZ] --> S[Streaming tile state]
S --> M[Active terrain mesh]
M --> T[Tile-local TriangleMesh ray]
T --> H[Terrain height and camera clearance]
```
Измеренный clearance: terrain overview `89.044`, ADT boundary `44.788`, dense M2 `90.178`, large WMO `12.034` Godot units. Следовательно, эти четыре камеры находятся над rendered terrain; visual obstruction принадлежит placements/WMO/composition, а не terrain height. Waterfall tile `30_49` не публикует доступный terrain mesh даже после isolated 10-second settle; это отдельный streaming/terrain ownership gap. Default probe сохраняет partial report, а `--require-all` включает строгий ненулевой exit при любой неснятой точке.