Rendering: implement the MeshFoundry pipeline #77

Closed
opened 2026-08-08 08:23:16 +00:00 by hugo · 1 comment
Owner

Objective

Implement MeshFoundry rendering with full prim, sculpt, mesh, avatar/rigged, material, and texture handling.

Deliverables

  • Preserve face grouping, transforms, coordinate conversions, skin weights, normals/tangents, UVs, material overrides, and output ordering.
  • Use completed imaging/PrimMesher/core data rather than duplicate codecs.
  • Bound mesh buffers and validate all indices/offsets.

Validation

  • All MeshFoundry and shared rendering tests pass.
  • Golden meshes match within original tolerances.
  • Large fixture benchmarks expose regressions without replacing correctness gates.

Prerequisite

All global API/test gates and the foundational/world implementations needed by these extension crates are complete.

Project constraints

  • Full native Rust implementation only; no wrapped C# parser, viewer, renderer, or service.
  • Preserve mapped APIs and exact translated tests; reuse lower layers and keep generated output deterministic.
  • Validate bounded input, callbacks/tasks, docs, coverage, and workspace gates.
## Objective Implement MeshFoundry rendering with full prim, sculpt, mesh, avatar/rigged, material, and texture handling. ## Deliverables - Preserve face grouping, transforms, coordinate conversions, skin weights, normals/tangents, UVs, material overrides, and output ordering. - Use completed imaging/PrimMesher/core data rather than duplicate codecs. - Bound mesh buffers and validate all indices/offsets. ## Validation - All MeshFoundry and shared rendering tests pass. - Golden meshes match within original tolerances. - Large fixture benchmarks expose regressions without replacing correctness gates. ## Prerequisite All global API/test gates and the foundational/world implementations needed by these extension crates are complete. ## Project constraints - Full native Rust implementation only; no wrapped C# parser, viewer, renderer, or service. - Preserve mapped APIs and exact translated tests; reuse lower layers and keep generated output deterministic. - Validate bounded input, callbacks/tasks, docs, coverage, and workspace gates.
hugo added this to the 10 - Rendering, RLV, and LSL tools milestone 2026-08-08 08:23:16 +00:00
hugo added the enhancement label 2026-08-08 08:23:16 +00:00
Author
Owner

Implemented and verified in commit 88408c9.

Implementation:

  • Replaced all 14 MeshFoundry failure-only shims with native Rust prim, sculpt, terrain, packed binary LLSD mesh, and convex-hull pipelines.
  • Added deterministic LOD fallback, checked zlib/LLSD section decoding, 16-bit and aggregate geometry bounds, index/offset validation, face ordering and rebasing, UV0/UV1, stored/generated normals and tangents, inherited texture/material metadata, normalized scales, and mirror/invert coordinate handling.
  • Added rigged skin matrices and bounded normalized four-influence/sentinel weight decoding integrated with the shared skinning math.
  • Added public tangent recovery through MeshFaceAux, focused malformed/golden/model-workflow tests, documentation, API ownership audit, and a bounded-memory large fixture benchmark.

Verification:

  • MeshFoundry package: 7 passed
  • imaging_meshing_semantics compatibility suite: 78 passed
  • rendering_shims shared contract: 8 passed
  • StructuredData package: 36 passed
  • strict Clippy and warning-free rustdoc: passed
  • API shim/mapping generator drift checks and issue 76/77 audits: passed
  • workspace all-target check: passed
  • benchmark: 57,600 vertices / 342,726 indices decoded in 12.945 ms; 74 allocations, 23 reallocations, 9,459,925 bytes allocated

Final review found every issue deliverable implemented with no issue-owned stubs or platform-specific code.

Implemented and verified in commit 88408c9. Implementation: - Replaced all 14 MeshFoundry failure-only shims with native Rust prim, sculpt, terrain, packed binary LLSD mesh, and convex-hull pipelines. - Added deterministic LOD fallback, checked zlib/LLSD section decoding, 16-bit and aggregate geometry bounds, index/offset validation, face ordering and rebasing, UV0/UV1, stored/generated normals and tangents, inherited texture/material metadata, normalized scales, and mirror/invert coordinate handling. - Added rigged skin matrices and bounded normalized four-influence/sentinel weight decoding integrated with the shared skinning math. - Added public tangent recovery through MeshFaceAux, focused malformed/golden/model-workflow tests, documentation, API ownership audit, and a bounded-memory large fixture benchmark. Verification: - MeshFoundry package: 7 passed - imaging_meshing_semantics compatibility suite: 78 passed - rendering_shims shared contract: 8 passed - StructuredData package: 36 passed - strict Clippy and warning-free rustdoc: passed - API shim/mapping generator drift checks and issue 76/77 audits: passed - workspace all-target check: passed - benchmark: 57,600 vertices / 342,726 indices decoded in 12.945 ms; 74 allocations, 23 reallocations, 9,459,925 bytes allocated Final review found every issue deliverable implemented with no issue-owned stubs or platform-specific code.
hugo closed this issue 2026-08-10 22:38:37 +00:00
Sign in to join this conversation.