diff options
| author | Valentin Popov <valentin@popov.link> | 2026-07-18 12:59:48 +0300 |
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2026-07-18 12:59:48 +0300 |
| commit | 50a55461e72383edf22120a908a42a8b621e6914 (patch) | |
| tree | ef821229b56b09556677a92d779ac1bcb2a7bd0e /docs/tomes/08-evidence.md | |
| parent | 59d810e5e72d030518422b05450cd3a6a97702f0 (diff) | |
| download | fparkan-50a55461e72383edf22120a908a42a8b621e6914.tar.xz fparkan-50a55461e72383edf22120a908a42a8b621e6914.zip | |
docs(evidence): recover camera transform adjustment
Diffstat (limited to 'docs/tomes/08-evidence.md')
| -rw-r--r-- | docs/tomes/08-evidence.md | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/docs/tomes/08-evidence.md b/docs/tomes/08-evidence.md index 752e7a4..98f6f13 100644 --- a/docs/tomes/08-evidence.md +++ b/docs/tomes/08-evidence.md @@ -296,6 +296,18 @@ normalized-looking `(0.098, 0.018, 0.856)` и не совпадал с paired bl оно запрещает называть `0x4D4D0` единственным runtime writer и требует recovery indirect/unanalyzed write path. +Outer vtable `off_100665B4` теперь даёт exact transform adjustment для +world-like sample. Slot `+0x54` вызывает у subobject `outer + 4` slot `+0x20` +с selector `0`, затем копирует returned `+0x0C/+0x1C/+0x2C`. В live объекте +selector field `outer + 0x10` был `0xFFFFFFFF`; реализация selector `0` при +этом возвращает `outer + 0x20`. Значит observed triple +`outer + 0x2C/+0x3C/+0x4C` — доказанная translation часть active affine +transform, а не корреляция. Selector `2` возвращает paired block `outer + 0x60`; +outer slot `+0x70` применяет `atan2` к его axis values, что доказывает +orientation-angle path. Названия полей, angle order и handedness пока не +установлены, но raw affine transform и translation можно сохранять как +backend-neutral camera pose без догадок. + ### Vtable и interface negotiation Вызовы вида `object->vfunc(offset)` доказывают порядок slots, даже когда имя |
