3.4 KiB
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.