Bitbybit Docs
    Preparing search index...

    Class BabylonIO

    将模型加载到场景中并导出场景:glTF、glb、STL 和 OBJ 文件可从 File、URL 或原始 glb 字节导入,作为一个容器网格,其子节点位于其下;整个场景或选定的网格可导出为 .babylon、glb 或 STL 下载。

    Index

    Constructors

    export

    • 将整个场景下载为 .babylon 文件,这是引擎自己的 JSON 格式,其编辑器和加载器可以读回;缺少扩展名时会添加。

      Parameters

      Returns void

      bitbybit.babylon.io.exportBabylon({ fileName: "my-scene" });
      
    • 将整个场景下载为 glb 文件,即大多数 3D 工具和网页查看器可读取的二进制 glTF;discardSkyboxAndGrid 省略本库添加的天空盒和地面。

      Parameters

      Returns void

      bitbybit.babylon.io.exportGLB({ fileName: "my-scene", discardSkyboxAndGrid: true });
      
    • 将整个场景或选定的节点及其祖先写为 glb 字节,不下载任何内容,以便保存、传递或通过 loadGlbFromArrayBuffer 加载回来。

      选定节点的每个祖先也会被写入,使几何体保持其位置,文件携带调用时网格所具有的材质。

      Parameters

      • inputs: ExportSceneGlbBytesDto

        要写入的节点、是否排除天空盒和地面,以及是否使用 Draco 压缩

      Returns Promise<Uint8Array<ArrayBufferLike>>

      作为字节的 glb 文件

      const glb = await bitbybit.babylon.io.exportGLBBytes({ nodes: [chair], discardSkyboxAndGrid: true, compressWithDraco: false });
      const copy = await bitbybit.babylon.io.loadGlbFromArrayBuffer({ glbData: glb, fileName: "chair.glb", hidden: false });
    • 将网格及其可见的子网格下载为一个 STL 文件,即 3D 打印机接受的纯三角形格式;线条被省略。

      Parameters

      Returns Promise<any>

      下载开始后返回一个空对象

      await bitbybit.babylon.io.exportMeshToStl({ mesh, fileName: "part" });
      
    • 将多个网格及其子网格下载为一个 STL 文件;线条被省略。

      Parameters

      Returns Promise<any>

      下载开始后返回一个空对象

      await bitbybit.babylon.io.exportMeshesToStl({ meshes: [meshA, meshB], fileName: "parts" });
      

    load

    • 从 File 将 glTF、glb、STL 或 OBJ 模型加载到场景中,并返回一个以模型的网格为子节点的容器网格;其他扩展名会抛出错误。

      加载的网格投射和接收阴影,当 hidden 为 true 时初始隐藏。

      Parameters

      • inputs: AssetFileDto

        模型文件以及是否以隐藏状态开始

      Returns Promise<Mesh>

      容纳已加载模型的容器网格

      const file = await bitbybit.asset.getFile({ fileName: "chair.glb" });
      const model = await bitbybit.babylon.io.loadAssetIntoScene({ assetFile: file, hidden: false });
    • loadAssetIntoScene 一样从 File 将 glTF、glb、STL 或 OBJ 模型加载到场景中,但不返回网格。

      Parameters

      • inputs: AssetFileDto

        模型文件以及是否以隐藏状态开始

      Returns Promise<void>

      const file = await bitbybit.asset.getFile({ fileName: "chair.glb" });
      await bitbybit.babylon.io.loadAssetIntoSceneNoReturn({ assetFile: file, hidden: false });
    • 从网址将 glTF、glb、STL 或 OBJ 模型加载到场景中,并返回一个以模型的网格为子节点的容器网格。

      rootUrl 是文件夹,assetFile 是其中的文件名,因此模型旁边的纹理也能解析;服务器必须允许跨域请求。

      Parameters

      Returns Promise<Mesh>

      容纳已加载模型的容器网格

      const model = await bitbybit.babylon.io.loadAssetIntoSceneFromRootUrl({ rootUrl: "https://example.com/models/", assetFile: "chair.glb", hidden: false });
      
    • loadAssetIntoSceneFromRootUrl 一样从网址将模型加载到场景中,但不返回网格。

      Parameters

      Returns Promise<void>

      await bitbybit.babylon.io.loadAssetIntoSceneFromRootUrlNoReturn({ rootUrl: "https://example.com/models/", assetFile: "chair.glb", hidden: false });
      
    • 将以字节形式保存的 glb 模型(例如 occt.io.convertStepToGltf 的输出)加载到场景中,并返回一个以模型的网格为子节点的容器网格。

      Parameters

      • inputs: AssetGlbDataDto

        glb 字节数据、模型的名称以及是否以隐藏状态开始

      Returns Promise<Mesh>

      容纳已加载模型的容器网格

      const glb = await bitbybit.occt.io.convertStepToGltf({ stepData: file, meshPrecision: 0.005, meshAngle: 0.5, meshRelative: true, internalVerticesMode: false, controlSurfaceDeflection: false });
      const model = await bitbybit.babylon.io.loadGlbFromArrayBuffer({ glbData: glb, fileName: "part.glb", hidden: false });
    • loadGlbFromArrayBuffer 一样将以字节形式保存的 glb 模型加载到场景中,但不返回网格。

      Parameters

      • inputs: AssetGlbDataDto

        glb 字节数据、模型的名称以及是否以隐藏状态开始

      Returns Promise<void>

      await bitbybit.babylon.io.loadGlbFromArrayBufferNoReturn({ glbData: glb, fileName: "part.glb", hidden: false });