CNA-GAP-039: The glTF vertex ABI carries two UV channels, one joint-influence set and one colour set; further sets are dropped and reported

CNA snapshot 009d40f5  ·  Known Issues › Functional gaps  ·  source links pinned to 009d40f5

✓

Evidence basis: source-verified at the pinned commit; tests exist (not executed for this page). Claims on this page were checked by reading the CNA source at commit 009d40f5; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.

TEXCOORD sets beyond the first two sampled ones, JOINTS_1/WEIGHTS_1 and later, and COLOR_1 and later are not imported; each loss is named in the import report.

Identifier
CNA-GAP-039
Category
Functional gap
Subsystem
Models & glTF
Status
Open
Verified against
CNA 009d40f5 (009d40f5dd085c4e674d3479675fac84b12b3e0a)
Evidence basis
Source-verified: read at TARGET, not executed
Tests touching this area
Yes: see Current tests
Affected contract
ContentManager::Load<Model> and the offline converters on glTF primitives with extra attribute sets

Expected behaviour

A glTF primitive may carry any number of TEXCOORD_n, JOINTS_n/WEIGHTS_n and COLOR_n sets.

Actual behaviour at TARGET

CNA's packed vertex layouts carry two UV channels, four joint influences and one colour. AppendGltfMeshReportEXT in GltfImportCore.cpp reports uv-set-mismatch (maps that need a third distinct set fall back to channel 0), influence-sets-dropped (with the worst dropped weight) and color-sets-dropped. gltf-limitations.md lists the three limits (GLTF-091, GLTF-188).

Source locations

Evidence

Checked by reading at 009d40f5; not executed.

Focused reproduction

No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.

Current tests

GltfImportReportTests.cpp and GltfAttributeCoverageTests.cpp cover the diagnostics; the dropped data is by design not rendered.

Regression test

None needed for the gap itself; a new layout would need stride-table and renderer tests.

Blast radius

Assets with more than four influences per vertex (skinning is approximated with the first set), lightmap-plus-detail materials using three UV sets, or multiple vertex colour sets.

Workaround

Re-export with at most four influences, two UV sets and one colour set.

The same subject is explained at several altitudes. These are the neighbouring pages at each one.