Files
workinf_Blender_Wasm/docs/status/W-079.md
2026-08-12 04:47:48 -04:00

58 lines
3.4 KiB
Markdown

# W-079 Status
status: in_progress
task: 三角面简化和轻量化里程碑
The Blender golden fixture is checked by
`tools/web/run-blender-golden.mjs`. It opens the local
`tests/files/web/basic_scene.blend`, evaluates native Collapse in fresh WASM
instances at ratios `1.0`, `0.9`, `0.5` and `0.25`, and compares source object
identity, vertex counts and evaluated loop-triangle counts with
`tests/golden/W-079/basic-scene-decimate.json`. The test is runnable offline as
`npm run test:golden` and currently passes. The focused native memory regression
gate `npm run test:collapse-ratios` starts an isolated WASM instance for each
target and asserts a successful non-empty result. The matrix now also includes the
previously unstable intermediate ratios `0.80`, `0.75`, `0.70` and `0.65`.
LOD generation evaluates each requested profile in an isolated Worker/WASM
instance. A failure at one target records `requestedLevel`, `triangleBudget`
and the diagnostic message in `WebEngineLODResult.errors`; the remaining levels
are reindexed and cached. The native bridge now avoids the former multi-collapse
heap lifetime failure by running one native Collapse pass per fresh heap, so the
intermediate golden ratios no longer fault.
The reader retains 64-bit on-disk BHead pointer identities in WASM and resolves
duplicate `BLEND_DATA` attribute arrays in the owning Mesh block range. This
prevents a second mesh from inheriting the first mesh's attributes. The offline
`npm run test:topology-collapse` regression confirms successful native Collapse
for an open quad, an open n-gon and a non-manifold shared edge.
The rigged fixture also now runs Collapse with a preserving `skinPolicy`.
Native output projects to the source triangles, remaps fixed four-slot weights
and rebuilds shape-key positions, while a missing policy remains blocked. The
same path is covered through the browser WebEngine Worker.
The deformation fixture now records an actual Blender 5.2 evaluated-depsgraph
golden with shape-key value and armature pose applied. The Web deformation
worker compares linear bind/rest/pose evaluation against the declared max and
RMS error budget. Packed-image extraction, GLB semantic re-import and the Web
deformation golden are covered by focused browser tests.
The native Blender Depsgraph path now completes full loader, view-layer sync,
graph build, tagged update and frame evaluation in the headless WASM build for
the empty, basic and rigged/shape-key fixtures. A wasm32-specific DNA layout
adapter recursively restores 8-byte alignment for 64-bit members; this fixes
the `Scene.master_collection` offset and prevents the former memory trap. The
Web ID registry includes embedded NodeTree, Camera and Light data, and the
rigged output matches the Blender 5.2 deformation golden within its max/RMS
budgets. The report now exposes ordered native modifier entries, persistent UIDs,
mode flags, target object IDs, stack dependencies and explicit Blender evaluation errors; the
rigged fixture verifies Armature followed by a structured Decimate block on its
two-triangle input. N-001 is complete for the declared fixtures and N-002 has
started with this report contract; broader modifier, constraint and stress
coverage remains tracked by N-002/N-003/N-008.
The broad Decimate mode/performance matrix and Blender round-trip warnings are
still tracked as follow-up coverage; unsupported cases must remain structured
errors and cannot be treated as parity.