首页 > 解决方案 > 读取 GLTF 顶点颜色编码

问题描述

我正在尝试从官方测试样本集中解析 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 的浮点数。我错过了什么......?

标签: gltf

解决方案


是什么让您认为数据不正确?

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

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

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

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

JavaScript 调试器


推荐阅读