# 常规三维切片制作-局部坐标系-Z

使用3dmax打开模型后,将模型节点的位置信息,模型绕z轴旋转信息批量导出,将模型坐标批量改为(0,0,0),然后批量导出模型为gltf或者glb文件;再使用该工具构建3dtiles。将模型信息上传后设置模型所在经纬度,下载生成的tileset.json和i3dm文件, 该工具构造的i3dm切片使用了局部坐标系(RTC_CENTER)可以更精确表示模型位置,旋转方面添加了z轴旋转。3dmax中导出的每个模型对象对应一个i3dm文件,i3dm文件中会引用导出的glb文件。将他们放到同一个文件夹中就制成了3dtils文件。

# 适用场景

适用于某一栋建筑物,部件之间构建3dtiles,门,窗,墙壁等部件之间需要精确对接情景,更适用于村庄,小区等常见场景

# 使用方法

  1. 使用3dmax打开模型,直接在3dmax中选择对象集合
  2. 执行以下脚本exportInfo.ms,输出模型信息
    点击查看代码
      selObj = selection as Array
      out_file = createfile "F:/Document/3dsMax/export/output_key.txt" encoding:#utf8
      for i=1 to selObj.count do(
         format "%;%;%;%;%\n" (i) (selObj[i].name) (selObj[i].pos) (selObj[i].max-selObj[i].min) (selObj[i].rotation.z_rotation)to:out_file
      )
      close out_file
    
  3. 修改该脚本中txtFile路径,并执行,执行结果在txtFile同目录下
  4. 3dmax中批量导出模型,导出之前需要把模型坐标改为0,z轴旋转角度改为0,使用batchExportObj.ms 执行:
    点击查看代码
     selObj = selection as Array
     for i=1 to selObj.count do(
         select selObj[i]
         $.pos = [0,0,0]
         $.rotation.z_rotation = 0
         dir_path = "F:/Document/3dsMax/export"
         file_path = dir_path + "/" +($.name) +".fbx"
         exportfile file_path #noprompt selectedOnly:true
    )
    
  5. 批量执行:
    fbx2gltf -i data.fbx -o data.glb