# 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`加载程序没有问题。