feat(render): diagnose captured camera clipping

This commit is contained in:
2026-07-18 15:50:52 +04:00
parent 2a793f1854
commit fea984ddf5
4 changed files with 170 additions and 7 deletions
+24
View File
@@ -1561,3 +1561,27 @@ hashes промежуточных buffers. Без такой трассиров
Связанные справочные страницы с таблицами форматов: [MSH](../reference/msh.md),
[materials](../reference/materials.md), [Texm](../reference/texm.md) и
[render frame](../reference/render-frame.md).
### Live AutoDemo: видимый результат пока не достигнут
Read-only `PrintWindow` capture работающего GOG AutoDemo даёт полноценный
оригинальный кадр (terrain, варбот и близкая geometry), поэтому теперь есть
безвводный source для будущего visual comparison. Текущий полный static-Vulkan
preview нельзя описывать как видимую сцену: хотя он загружает 8 TMA objects,
66 MSH components и 67 descriptors, его изображение состоит только из clear
color. Validation остаётся `0/0`, но это доказывает корректность GPU lifecycle,
а не совпадение с оригинальным renderer.
Новая CPU-диагностика применяет к тем же source vertices ту же row-major D3D7
matrix, которую GLSL получает как column-major push constant. Для свежего
captured Ngi32 camera (`viewport 1024x768`, near `5`, far `700`, FOV `1.3`)
она насчитала `clip_visible_vertices=0`. Следовательно, current empty frame не
объясняется texture selection, face culling (baseline state already disables
it) или Vulkan validation: следующий исследовательский шаг — восстановить
точный live camera transform/clip-space boundary.
Параллельно bridge для legacy-camera path теперь переводит только высоту
`Land.msh` в world units с масштабом `1/32`: raw AutoDemo heights
`95.29412..288.23532` становятся `2.978..9.007`, что согласуется с TMA Z и
live camera height. Это доказанное coordinate conversion, но оно само по себе
не сделало вершины видимыми и не является заявлением о pixel parity.