该规范将animations.samplers.input
属性解释为:
包含关键帧输入值(例如时间)的访问器的索引。该访问器必须具有组件类型 FLOAT。这些值以秒为单位表示时间,time[0] >= 0.0,并且值严格递增,即 time[n + 1] > time[n]。
但是,从演示仓库的第一个基本示例动画三角形中,我很难理解这一点
具体来说,如果我们从animation.bin中获取动画的相关二进制数据并将其解码为 a Float32Array
,我们会得到以下值列表:
[0, 0.25, 0.5, 0.75, 1, 0, 0, 0, 1, 0, 0, 0.7070000171661377, 0.7070000171661377, 0, 0, 1, 0, 0, 0, 0.7070000171661377, -0.7070000171661377, 0, 0, 0, 1]
鉴于“严格增加值”,这当然没有意义。
我在这里有什么误解?output
为了随着时间的推移更新轮换,这些值是如何使用(与 结合)的?
请注意,animation.bin 是从input
采样器引用的视图。换句话说,从gltf
- 输入 == 访问器 2
- 访问器 2 == 缓冲区视图 2
- bufferView 2 == 来自缓冲区 1 的字节(0-100)
- 缓冲区 1 == 动画.bin