58 lines
3.4 KiB
Markdown
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.
|