Skip to main content

gltf 存储细节

警告
进行 import、export 时需要注意。

glTF: z+ forward

模型应存储为 Z轴 正方向朝前。

  VRM0 VRM1
forward z- z+
right x+ x-

在将 vrm-0.x 转换为 vrm-1.0 时,请绕Y轴进行180度的旋转。

Vector3 vrm0;
var vrm1 = new Vector3(-vrm0.x, vrm0.y, -vrm0.z);

glTF: divided vertex buffer

停止共享 bufferView 之间的 primitive。 

  VRM0 VRM1
bufferView shared(共享) divided(分割)

优点

接近游戏引擎内存布局,转换较少 可用一般的 glTF 加载程序加载
缺点 在除UniVRM之外的glTF加载器中,内存使用可能激增(虽然可以加载,但顶点缓冲区中可能会出现未使用区域) 在导出时,可能会增加顶点并改变顺序。在导入时需要费力合并。处理morphTarget较为繁琐。

在将 vrm-0.x 转换为 vrm-1.0 时,请绕Y轴进行180度的旋转。

例:

  prim0 prim1
position 100 100
index 0..100 0..100

👇

  prim0 prim1
position 100 100

バッファーが連結されている

【连接缓冲区】

index 0..100 100..200

実装
不要在Vrm专用的 gltfPrimitive 之间共享缓冲区加载程序,一般的glTF加载程序没有问题。