在阅读glTF,3d tiles官方文档后,尝试使用官方的一些免费工具将3dmax模型处理成gltf和3d tiles模型。

3dmax版本:2018

模型资源:模型            提取码:cuog

一、glTF

在3D Max中安装3DS Max exporter插件(该插件要求3D max版本为2015以上),可以直接从3dmax中导出glTF/glb。

同时为了之后转换的3d tiles有LOD效果,在3D Max对模型进行了三角网优化,复制两个相同模型,分别减少50%的顶点和75%的顶点。

二、3d tiles

gltf/glb转化为3d tiles模型,需要将其转换为.b3dm文件格式,再编写tileset.json文件。

推荐在vs code中安装glTF Tools直接查看glTF,并且可以验证glTF有效性。

为了减小.b3dm文件大小,加快前端加载速度,可使用KHR_draco_mesh_compression扩展压缩几何数据(坐标、动画、蒙皮数据等),同时减小贴图大小,尽量不超过1024X1024。

使用管网工具gltf-pipeline可以给gltf模型添加KHR_draco_mesh_compression扩展,还可以进行gltf/glb互转

//安装
npm install -g gltf-pipeline//压缩glTF几何数据
gltf-pipeline -i model.gltf -o modelDraco.gltf -d//结合gulp以类库的方式使用gltf-pipelineconst gltfPipeline = require('gltf-pipeline');
const fsExtra = require('fs-extra');
const processGltf = gltfPipeline.processGltf;
const gltf = fsExtra.readJsonSync('model.gltf');
const options = {separateTextures: true,compressionLevel: 7  //压缩级别 [0-10]
};
processGltf(gltf, options).then(function(results) {fsExtra.writeJsonSync('model-separate.gltf', results.gltf);// 保存贴图,.bin数据文件const separateResources = results.separateResources;for (const relativePath in separateResources) {if (separateResources.hasOwnProperty(relativePath)) {const resource = separateResources[relativePath];fsExtra.writeFileSync(relativePath, resource);}}});

glbToB3dm

接下来将三个级别的glTF模型转换为.b3dm文件。在vs code中将glTF转换为glb格式。

下载cesium官方的转换工具的开源代码

https://github.com/CesiumGS/3d-tiles-validator/tree/master/tools

//下载后安装依赖npm install

在根目录下,运行以下命令,将glb转换为.b3dm

node ./bin/3d-tiles-tools.js glbToB3dm -i ./specs/data/CesiumTexturedBox/CesiumTexturedBox.glb -o ./output/CesiumTexturedBox.b3dm

三个级别的glb文件依次转换为.b3dm文件。

最后写一个简单的tileset.json文件,在3dmax查看模型的尺寸,用于3d tiles中的包围盒参数。

tileset.json

tileset.json中参数的意义请查看规范文档:https://github.com/ComeformPC/3d-tiles/tree/master/specification

{"asset": {"version": "1.0"},"geometricError": 500, //几何误差,判断是否渲染子节点"root": {"transform": [  //使用Cesium.Transforms.eastNorthUpToFixedFrame(origin)设置模型位置0.05602263155122217,0.6403416087687968,0.7660444431189781,0,-0.9961946980917457,0.08715574274765825,0,0,-0.06676517241775076,-0.7631294127377697,0.6427876096865391,0,-426427.5649314479,-4874089.370505605,4077985.572200376,1],"boundingVolume": {  //因为gltf是Y轴向上,3d tiles为Z轴向上,cesium会将gltf旋转90度"box": [0,0,0,30.6,  //X轴尺寸一半,X轴不变0,0,0,28.9,  //Z轴尺寸一半0,0,0,8.73    //Y轴尺寸一半]},"geometricError": 0.2,"refine": "REPLACE","content": {"uri": "scene-low.b3dm"},"children": [{"boundingVolume": {"box": [0,0,0,30.6,0,0,0,28.9,0,0,0,8.73]},"geometricError": 0.1,"content": {"uri": "scene-medium.b3dm"},"children": [{"boundingVolume": {"box": [0,0,0,30.6,0,0,0,28.9,0,0,0,8.73]},"geometricError": 0,"content": {"uri": "scene-origin.b3dm"}}]}]}
}

在我的开源项目中有转换后的3dtiles。有兴趣可以看一下。

https://github.com/ComeformPC/cesiumProject/tree/master/public/data/tilesets/architecture

【3Dtiles】3Dmax模型处理为gltf和3dtiles,包含LOD效果相关推荐

  1. 用毕安格将投影坐标的3dmax模型转换为3dtiles

    cesiumlab转换投影坐标的3dmax模型需要授权 下面用毕安格的工具来转换,当然试用期也是只有一个月 1.3dmax导出fbx 1.1 如果是绝对坐标,可以直接导出 1.2 如果是相对坐标,需要 ...

  2. 3dmax模型完美转glb模型,gltf格式模型转fbx格式转obj格式

    现在好多模型都是3dmax模型,但是客户要求是glb或者gltf模型 这个时候好多人直接导出glb模型,是没有颜色贴图的,这样的 这个时候是不能用的,怎么办,咱们要回到3dmax,把VR材质一个个重新 ...

  3. gltf转3DTiles

    gltf转3DTiles

  4. 通过超图在网页中加载3dmax模型

    接此: https://blog.csdn.net/bcbobo21cn/article/details/116806866 在场景中加载了3dmax模型后,保存场景: 场景节点下面出来一个场景: 保 ...

  5. 超图桌面版加载3dmax模型基本成功

    先须安装3dmax 的某个版本:我装的是2014,30天试用版本:安装完后如下: 下载3dmax 超图插件:这个应是在超图官网下:但我在超图官网没找到下载链接:在csdn vip 下的:插件解压后有一 ...

  6. 3dmax模型转换为*.FLT格式的建模要点

    要想在3dmax中建立模型,并将3dmax模型转换为OpenFlight模型并且能够使用,在Max中建模时我们必须注意以下几点: 1.建立的模型要尽量采用比较简易的Box来表现,不能使用NURBS.p ...

  7. 3DMax模型输入到WPF中运行

    3DMax模型输入到WPF中运行 原文:3DMax模型输入到WPF中运行 其实看看笔者文章之前,可以在网上搜索下将3Dmax模型输入到WPF的办法,大部分结果都是这篇文章.这篇文章呢?有点麻烦,就是我 ...

  8. Ogre导入3Dmax模型注意事项

    Ogre导入3Dmax模型注意事项 2010-03-01 12:53:26|  分类: Ogre |  标签: |字号大中小 订阅 1.由于Ogre与3Dmax坐标系统的不一致,可能会导致3Dmax导 ...

  9. 3dMax模型导入SuperMap

    目录 一.3dsmax2016 官方简体(64位)安装教程 二.超图 3ds MAX插件安装 2.1 插件下载 2.2 安装 三.模型导出 四.3dmax模型贴图路径的找回方法 五.SuperMap ...

  10. 将3DMax模型(max文件)转换为Solidworks模型(SLDPRT文件)

    前言:本文解决3DMax模型与SolidWorks (SW) 模型的转换问题,这个方法是从百度知道和CSDN博文等多种渠道的内容总结而来,在此向热心的答题者和博主们表示感谢. 1. 在3DMax软件打 ...

最新文章

  1. No cached version of com.android.tools.build:gradle:2.0.0 available for offline mode.
  2. Linux Top 命令解析 比较详细--转
  3. ue4场景没阴影_UE4性能调试分析常用方法
  4. NumPy - np.meshgrid()
  5. 自定义taglib引入失败_小程序拼团总失败?看看微信官方和开发者们怎么说
  6. php在哪改缩略图的大小,修改缩略图大小的方法
  7. 百度押注AI有了大回报,李彦宏首次披露Apollo如何赚钱
  8. 项目管理系列文章——关于软件工程在软件整个生命周期的位置
  9. 全球10大开放源代码项目
  10. Git 生成SSH Key 之使用PuTTYgen工具
  11. Wii 补充运动利器
  12. Java Attach机制实现原理
  13. 大学生电脑装什么软件?我整理了 10 款 Windows 神器,个个都是宝藏级!
  14. 美团再杀入共享充电宝的阳谋
  15. google黑客常用搜索语句
  16. 【sklearn】随机森林 - 预测用户是否离网
  17. C语言编译时无法打开文件,2812c语言编译时头文件无法打开
  18. FPGA数字信号处理(八)Quartus FFT IP核实现
  19. 微信小程序——剪贴板 的使用
  20. 微信小程序支付(建行支付)

热门文章

  1. MongoDB Shell工具:mongosh的使用
  2. 终端天线—9.4G手机调试
  3. 学小易电脑端——大学生搜题平台
  4. python航空订票系统_航空订票系统 - 智慧点点的个人空间 - OSCHINA - 中文开源技术交流社区...
  5. QQ群导出群成员名单
  6. RoboCode 参考代码
  7. 高中计算机学科教学计划,高一信息技术教学计划及进度表.doc
  8. ElasticSearch从入门到精通:Logstash妙用
  9. 开发信模板之失联跟进样品篇
  10. Unity 如何实现批量修改图片格式