读取 GLTF 顶点颜色编码

Reading GLTF vertex color encoding

我正在尝试从官方测试样本集中解析 BoxVertexColors GLTF 2.0 文件,并将信息存储在我自己的数据结构中。我有位置、法线等可以工作,但是解析顶点颜色网格属性的结果很奇怪。

.gltf 声明格式为 5126(=float)和 VEC4,起始偏移量为 0x288。查看 buffer.bin 文件时,0x288 处的内容以

开头
1D E9 06 30   7A 7A 25 3C   FE FF 7F 3F   51 D2 27 30

在我看来它不像漂浮物,更不用说编码颜色了。我本以为有四个浮点数代表 RGBA。我错过了什么......?

您认为数据不正确的原因是什么?

  (0x3006E91D, 0X3C257A7A, 0x3F7FFFFE, 0x3727D251) =>
  (4.90802e-10, 0.0101, 1.0, 6.10531e-10) => (simplified)
  (0, 0.0101, 1.0, 0)

除了可能毫无意义的 alpha 值之外,这似乎是一个非常合理的起始位置,因为它显然是一个计算的颜色范围,分布在一个立方体上。

alpha 值最终是无关紧要的,因为关联的 material 没有指定 blendMode 设置,这反过来意味着它默认为 OPAQUE,因此透明度被忽略。

https://gltf-viewer.donmccurdy.com/ 中加载模型并设置断点确认数据已按预期解码: