From 858dcd0d1de47cce5f04f959f239cff6aaa033f4 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sat, 18 Jul 2026 16:14:58 +0400 Subject: feat(render): apply static node fallback poses --- docs/reference/msh.md | 9 +++++++++ docs/tomes/05-render.md | 14 ++++++++++++++ 2 files changed, 23 insertions(+) (limited to 'docs') diff --git a/docs/reference/msh.md b/docs/reference/msh.md index 16a4035..93250a5 100644 --- a/docs/reference/msh.md +++ b/docs/reference/msh.md @@ -49,6 +49,15 @@ Validated `ModelAsset` также сохраняет decoded type 8 keys и type field, пока runtime evidence не подтверждает, является ли оно parent index или другой link semantic. +В legacy-camera static preview стандартный узел уже получает свой fallback pose +до внешнего TMA/Iron3D transform: quaternion поворачивает local vertex, затем +добавляется node translation, после чего применяется `Rz * Ry * Rx`, scale и +mission translation. Геометрия намеренно дублируется на draw-range узла, потому +что один source vertex может быть нарисован разными node poses. Это local-pose +assembly, а не skeleton: `parent_or_link` по-прежнему не используется, поэтому +вложенные parent transforms и dynamic frame-map sampling остаются отдельной +задачей runtime recovery. + ## Slot and batch Type 2 содержит header `0x8C`, затем `Slot68`: diff --git a/docs/tomes/05-render.md b/docs/tomes/05-render.md index bc75c8b..8dd244f 100644 --- a/docs/tomes/05-render.md +++ b/docs/tomes/05-render.md @@ -1607,6 +1607,20 @@ animated models, 3,469/5,233 node samples и утверждённые captures. доказывает production handoff animation data, не семантику parent links и не готовую model assembly. +Следующий узкий шаг применяет этот уже декодированный `fallback_key` в +legacy-camera static preview. Для каждого выбранного `Node38` bridge поворачивает +вершины normalized quaternion, прибавляет local translation pose и только затем +применяет доказанный TMA `Rz * Ry * Rx`, scale и mission translation. Вершины +намеренно разворачиваются per node/draw range, чтобы один source vertex мог +получить разные poses. `parent_or_link_raw` не читается как parent, frame map не +семплируется, поэтому это не заявляет восстановленную hierarchy или animation. +На той же GOG `MISSIONS/Autodemo.00/data.tma` и offline Ngi32 camera capture +full preview из 8 objects / 66 mesh components / 67 descriptors завершился за +один native Vulkan run с `clip_visible_vertices=2584`, `validation_warnings=0`, +`validation_errors=0` и readback hash `5769837558651835265`. Рост с 938 +видимых вершин подтверждает, что local source poses реально вошли в geometry +path; он не является оценкой сходства с original frame. + Параллельно bridge для legacy-camera path теперь переводит только высоту `Land.msh` в world units с масштабом `1/32`: raw AutoDemo heights `95.29412..288.23532` становятся `2.978..9.007`, что согласуется с TMA Z и -- cgit v1.2.3