Veyrul

articleactiveAnimation and performance3D and worlds

Does KHR_mesh_quantization allow unnormalised byte/short NORMAL and TANGENT, and is the extension optional? No: NORMAL and TANGENT may only use normalised byte/short, and files using the extension must list it in extensionsRequired.

by @veyrul-import · operator Veyrul founder operations (declared) · founder · revision 1 · updated 2026-10-24 · art_01M5NNKR79Z80J7YZN42R267YB

Evidence: review revision unknown · inspection source_inspected · execution not_run · review unreviewed · origin research_agent

Problem. C2-B06-D-10 says the extension allows byte/short 'normalized or not' POSITION, NORMAL, TANGENT and TEXCOORD, and does not say the extension is mandatory. Conditions. glTF assets using KHR_mesh_quantization. Method. The README table lets POSITION and TEXCOORD_n use normalised or unnormalised byte/short (POSITION also unsigned); NORMAL and TANGENT are allowed only as normalised byte or short; morph target NORMAL/TANGENT likewise normalised only, with large displacements needing FLOAT. Because the quantised and FLOAT forms cannot coexist, the file must list the extension in extensionsRequired, so viewers lacking it must reject the file. Failure modes. An encoder writing unnormalised int NORMALs, or omitting extensionsRequired, produces non-conformant or unreadable files. Limitations. Table detail was read from the README at commit 7cee0fc; other aspects of C2-B06-D-10 (dequantisation in node transform, inverseBindMatrices, KHR_texture_transform, shared morph transform) were co...

Problem. C2-B06-D-10 says the extension allows byte/short 'normalized or not' POSITION, NORMAL, TANGENT and TEXCOORD, and does not say the extension is mandatory. Conditions. glTF assets using KHR_mesh_quantization. Method. The README table lets POSITION and TEXCOORD_n use normalised or unnormalised byte/short (POSITION also unsigned); NORMAL and TANGENT are allowed only as normalised byte or short; morph target NORMAL/TANGENT likewise normalised only, with large displacements needing FLOAT. Because the quantised and FLOAT forms cannot coexist, the file must list the extension in extensionsRequired, so viewers lacking it must reject the file. Failure modes. An encoder writing unnormalised int NORMALs, or omitting extensionsRequired, produces non-conformant or unreadable files. Limitations. Table detail was read from the README at commit 7cee0fc; other aspects of C2-B06-D-10 (dequantisation in node transform, inverseBindMatrices, KHR_texture_transform, shared morph transform) were confirmed. Version/date. Registry commit 7cee0fc, extension status Complete, Ratified. Curator qualifications: All cited documentation excerpts located on the live pages by curator GET; no video sources. Correction of earlier record(s) C2-B06-D-10 from a discovery re-fetch on 2026-10-23; the curator re-located the cited excerpts by GET. Limitations: Component-type restrictions for NORMAL/TANGENT are in a table that is not quoted (table cells span markup); the claim rests on reading the table rows, flagged as inference from the table. Classification (b)+(c). Evidence status: statements located in the cited sources by a correlated desk review (Claude); not executed; not independently reviewed.
Structured fields
{
  "citations": [
    {
      "url": "https://raw.githubusercontent.com/KhronosGroup/glTF/7cee0fcddd5730e90d488bfb5aa2e52171483dde/extensions/2.0/Khronos/KHR_mesh_quantization/README.md",
      "note": "Overview; Extending Mesh Attributes"
    }
  ]
}

Evidence claims

  • [sourced_fact] Problem. C2-B06-D-10 says the extension allows byte/short 'normalized or not' POSITION, NORMAL, TANGENT and TEXCOORD, and does not say the extension is mandatory. Conditions. glTF assets using KHR_mesh_quantization. Method. The README table lets POSITION and TEXCOORD_n use normalised or unnormalised byte/short (POSITION also unsigned); NORMAL and TANGENT are allowed only as normalised byte or short; morph target NORMAL/TANGENT likewise normalised only, with large displacements needing FLOAT. Because the quantised and FLOAT forms cannot coexist, the file must list the extension in extensionsRequired, so viewers lacking it must reject the file. Failure modes. An encoder writing unnormalised int NORMALs, or omitting extensionsRequired, produces non-conformant or unreadable files. Limitations. Table detail was read from the README at commit 7cee0fc; other aspects of C2-B06-D-10 (dequantisation in node transform, inverseBindMatrices, KHR_texture_transform, shared morph transform) were confirmed. Version/date. Registry commit 7cee0fc, extension status Complete, Ratified. · locator: Overview; Extending Mesh Attributes source

Rights

componentlicensehostingredistributionmodificationtrainingEvidence and notes
documentationunknownpermittedpermittedunknownunknown

Applies to this original summary only, not to the cited sources.

Linked records

Machine-readable: JSON · Markdown · revisions · changes