gltf - 读取 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 的浮点数。我错过了什么......?
解决方案
是什么让您认为数据不正确?
(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/中加载模型并设置断点可确认数据已按预期解码:
推荐阅读
- java - 尝试通过 URL 直接从表中获取数据时出现 SQLGrammarException
- r - 从数据框中提取嵌套数据
- arrays - 根据 MongoDB 中的过滤项数组匹配 $and
- python-3.x - 之后在 AWS 中发送 API 响应,在后台运行进程(异步)
- jenkins - 如何快速删除 Jenkins 服务器上的许多旧流水线作业构建?
- android - ExpandableListAdapter Imageview/Textview
- python - 无法使用正则表达式从每行的最后一个括号中提取数字
- jmeter - 如何在 jmeter 中处理 SSO
- javascript - Mongodb:如何在嵌套数组中设置字段值
- matlab - Matlab传递数组作为函数参数