【3Dtiles】3Dmax模型处理为gltf和3dtiles,包含LOD效果
在阅读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效果相关推荐
- 用毕安格将投影坐标的3dmax模型转换为3dtiles
cesiumlab转换投影坐标的3dmax模型需要授权 下面用毕安格的工具来转换,当然试用期也是只有一个月 1.3dmax导出fbx 1.1 如果是绝对坐标,可以直接导出 1.2 如果是相对坐标,需要 ...
- 3dmax模型完美转glb模型,gltf格式模型转fbx格式转obj格式
现在好多模型都是3dmax模型,但是客户要求是glb或者gltf模型 这个时候好多人直接导出glb模型,是没有颜色贴图的,这样的 这个时候是不能用的,怎么办,咱们要回到3dmax,把VR材质一个个重新 ...
- gltf转3DTiles
gltf转3DTiles
- 通过超图在网页中加载3dmax模型
接此: https://blog.csdn.net/bcbobo21cn/article/details/116806866 在场景中加载了3dmax模型后,保存场景: 场景节点下面出来一个场景: 保 ...
- 超图桌面版加载3dmax模型基本成功
先须安装3dmax 的某个版本:我装的是2014,30天试用版本:安装完后如下: 下载3dmax 超图插件:这个应是在超图官网下:但我在超图官网没找到下载链接:在csdn vip 下的:插件解压后有一 ...
- 3dmax模型转换为*.FLT格式的建模要点
要想在3dmax中建立模型,并将3dmax模型转换为OpenFlight模型并且能够使用,在Max中建模时我们必须注意以下几点: 1.建立的模型要尽量采用比较简易的Box来表现,不能使用NURBS.p ...
- 3DMax模型输入到WPF中运行
3DMax模型输入到WPF中运行 原文:3DMax模型输入到WPF中运行 其实看看笔者文章之前,可以在网上搜索下将3Dmax模型输入到WPF的办法,大部分结果都是这篇文章.这篇文章呢?有点麻烦,就是我 ...
- Ogre导入3Dmax模型注意事项
Ogre导入3Dmax模型注意事项 2010-03-01 12:53:26| 分类: Ogre | 标签: |字号大中小 订阅 1.由于Ogre与3Dmax坐标系统的不一致,可能会导致3Dmax导 ...
- 3dMax模型导入SuperMap
目录 一.3dsmax2016 官方简体(64位)安装教程 二.超图 3ds MAX插件安装 2.1 插件下载 2.2 安装 三.模型导出 四.3dmax模型贴图路径的找回方法 五.SuperMap ...
- 将3DMax模型(max文件)转换为Solidworks模型(SLDPRT文件)
前言:本文解决3DMax模型与SolidWorks (SW) 模型的转换问题,这个方法是从百度知道和CSDN博文等多种渠道的内容总结而来,在此向热心的答题者和博主们表示感谢. 1. 在3DMax软件打 ...
最新文章
- No cached version of com.android.tools.build:gradle:2.0.0 available for offline mode.
- Linux Top 命令解析 比较详细--转
- ue4场景没阴影_UE4性能调试分析常用方法
- NumPy - np.meshgrid()
- 自定义taglib引入失败_小程序拼团总失败?看看微信官方和开发者们怎么说
- php在哪改缩略图的大小,修改缩略图大小的方法
- 百度押注AI有了大回报,李彦宏首次披露Apollo如何赚钱
- 项目管理系列文章——关于软件工程在软件整个生命周期的位置
- 全球10大开放源代码项目
- Git 生成SSH Key 之使用PuTTYgen工具
- Wii 补充运动利器
- Java Attach机制实现原理
- 大学生电脑装什么软件?我整理了 10 款 Windows 神器,个个都是宝藏级!
- 美团再杀入共享充电宝的阳谋
- google黑客常用搜索语句
- 【sklearn】随机森林 - 预测用户是否离网
- C语言编译时无法打开文件,2812c语言编译时头文件无法打开
- FPGA数字信号处理(八)Quartus FFT IP核实现
- 微信小程序——剪贴板 的使用
- 微信小程序支付(建行支付)