Add Chromium-only Blender WebEngine parity work
This commit is contained in:
57
docs/status/W-079.md
Normal file
57
docs/status/W-079.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user