• 【模型渲染】前端如何让glb模型转3dtiles


    发现了一个新插件,3D Tiles Tools,CesiumGS 出品,新鲜热乎(当前写这篇文章的时候,版本是v 0.4.1),所以,有些功能还不够使用。这里是我当前版本发现的问题,例如:不可以从一个文件夹中读取glb,然后转到另一个输出文件夹中

    希望之后的版本,可以有更多的优化。

    执行步骤:

    1. 拷贝项目(拷贝最新分支的代码,是我所建议的)
     git clone https://github.com/CesiumGS/3d-tiles-tools
    
    • 1

    因为之前我拷贝了最新稳定版本v 0.4.1的代码,结果跟项目的文档上有所出入(有些功能使用了会报错),是换成了 upgrade-cmpt 这个看提交记录是最新的分支的代码才没有报错

    1. 切换到对应目录下,或者直接通过编辑器打开项目,下载依赖文件
    npm install
    
    • 1
    1. 下载完成后,它里面会有一些demo以及文件,可以运行一个命令看看有没有报错,这里官方的示例是gzip压缩一个文件夹:

    -i 前面的是调用的方法,-i 后面跟的是输入文件或者文件夹,-o 后面跟着的是输出文件或文件夹

     npx ts-node .\src\cli\main.ts gzip -i ./specs/data/TilesetOfTilesets/ -o ./output/TilesetOfTilesets-gzipped/
    
    • 1
    1. 如果示例是成功的,那我们就开始转模型格式吧:
      举个例子,我要调用 glbToB3dm 方法转glb文件夹里面的glb,然后输出到output文件夹里,对应的是转换后的b3dm文件。

    比较无语的地方就在这里,这个转换方法是一一对应的,就是一个glb转一个b3dm。所以我才吐槽,不能一个文件夹对应一个文件夹。

     npx ts-node .\src\cli\main.ts glbToB3dm -i ./glb/1.glb -o ./output/1.b3dm
    
    • 1
    1. 然后转换成对应瓦片了,可是没有tileset.json,所以需要再创建一个json出来:
      调用 createTilesetJson 方法,去扫描刚刚转换出来的 output 文件夹,让其根据里面的 b3dm 生成一个tileset.json
     npx ts-node .\src\cli\main.ts createTilesetJson -i ./output/ -o ./output/tileset.json
    
    • 1
    1. 重点来了,如果有多个glb,怎么转成 b3dm?
      答案是:写一个批处理文件出来,把下面的代码复制粘贴到记事本中,保存后更改其后缀名为.bat,双击执行就行了。

    代码的内容可以视情况而变,例如文件夹地址名称不对,那就改;例如,可以在循环代码后,再接一个生成tileset.json的命令。等等。

    @echo off
    for %%f in (./glb/*.glb) do (
        npx ts-node .\src\cli\main.ts glbToB3dm -i "%%f" -o "./output/%%~nf.b3dm"
    )
    echo All files have been processed.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 快去运行看看转换出来的3dtiles能否渲染吧!
      还有比较多的插件,例如 objTo3d-tiles,运行方法大差不差的,可以多多尝试。
  • 相关阅读:
    什么牌子的电容笔性价比高?电容笔牌子排行
    DOM事件详解(一)
    js 时差计算 根据时间戳获取相差时间 几时几分几秒
    BufferPool缓存机制
    18_C++_面向对象_数组类_各种运算符重载
    Flutter混编之路IOS插件0基础开发(mac环境)
    《你好,放大器》----学习记录(三)
    解放AI生产力——为什么要使用ComfyUI
    高端知识竞赛活动中的舞美设计
    git原来还可以这么用?你不知道的自定义命令
  • 原文地址:https://blog.csdn.net/jiangxinyu50/article/details/138212860