BufferGeometry.toJSON()
方法将BufferGeometry对象序列化为JSON格式。该方法可将几何体对象导出为复合对象(包括顶点、法线、UV和索引)的数据结构,以便在其他平台及各种应用程序中使用。
var data = bufferGeometry.toJSON();
BufferGeometry.toJSON()方法不接受任何参数。调用该方法后,将返回一个复合数据对象,包括以下属性:
metadata
: 包含有关序列化过程的元数据。uuid
: BufferGeometry对象的唯一标识符。type
: 表示JSON对象的类型。data
: 表示BufferGeometry对象的数据。metadata
对象包括以下属性:
version
: THREE.js库的版本号。type
: 序列化的数据类型。generator
: 序列化的生成器。data
对象包括以下属性:
attributes
: 包含有关属性(如顶点、法线和颜色)的数据。index
: 包含有关三角形面的索引信息。attributes
对象包括以下属性:
position
: 包含有关顶点位置的数据。normal
: 包含有关法线向量的数据。uv
: 包含有关UV坐标的数据。color
: 包含有关颜色值的数据。index
对象包括以下属性:
array
: 包含有关索引的数据。以下是一个将BufferGeometry对象序列化为JSON字符串的示例:
var geometry = new THREE.BufferGeometry();
// 编写顶点、法线和索引数据
var jsonString = JSON.stringify(geometry.toJSON());
toJSON()
方法将跳过任何非数组的属性。 Geometry附加属性将被省略。
toJSON()
生成的 JSON 在解析时具有不同的对象/属性结构。 它是为加载和导入模型而精心设计的,并且应谨慎编辑。
在导出过程中,可能会丢失某些信息,例如绑定的骨骼。 可以通过设置“userData”属性以及添加其他属性并将其视为标头来添加其他元数据。
作者: 三维交互设计助手 @Three.js & 格物工作室
参考资料: