Cesium 3d tiles格式介绍

这是一个3d tiles的格式文件

{
  "asset": {
    "version" : "0.0"
  }, //Asset是一个包含了整体tileset元数据属性的对象。其中version属性是定义3D Tiles版本的字符串。版本号定义了tileset.json的JSON格式和瓦片格式的基础设定。tilesetVersion属性是一个选填的字符串,用于定义特定应用中tileset的版本,可以用于更新tileset。
  "properties": {
    "Longitude": {
      "minimum": -0.0005589940528287436,
      "maximum": 0.0001096066770252439
    },
    "Latitude": {
      "minimum": 0.8987242766850329,
      "maximum": 0.899060112939701
    },
    "Height": {
      "minimum": 1,
      "maximum": 241.6
    }
  }, //Properties是一个包含tileset中每个要素每个属性信息的对象。这个tileset.json代码片段是用于三维建筑,每一个瓦片都有建筑物模型,每个模型都有Height属性
  "geometricError": 494.50961650991815,//是一个非负数值,在tileset没有渲染时定义米制误差
  "root": {  //root用于定义根瓦片(参考上一节)。root.geometricError与最高层级tileset.json的geometricError不同。tileset.json的geometricError定义的误差用在整个tileset还没有被渲染的时候;root.geometricError定义的误差用在只有根瓦片被渲染的时候。


    "boundingVolume": {
      "region": [
        -0.0005682966577418737,
        0.8987233516605286,
        0.00011646582098558159,
        0.8990603398325034,
        0,
        241.6
      ]
    },
    "content": {
      "boundingVolume": {
        "region": [
          -0.0004001690908972599,
          0.8988700116775743,
          0.00010096729722787196,
          0.8989625664878067,
          0,
          241.6
        ]
      },
      "url": "0/0/0.b3dm"
    },
    "geometricError": 268.37878244706053,
    "refine": "ADD",
    "children": [ //是定义子瓦片对象的数组。每个子瓦片都有boundingVolume,这个边界体被父瓦片的boundingVolume完全包围,通常子瓦片的 geometricError要小于父瓦片的geometricError。对于叶子瓦片而言,子瓦片数组的长度为0,
      {
        "boundingVolume": {
          "region": [
            -0.0004853062518095434,
            0.898741188925484,
            -0.0002736676267127107,
            0.8989037314387226,
            0,
            158.4
          ]
        },
        "content": {
          "boundingVolume": {
            "region": [
              -0.0004058588642587614,
              0.898746512179703,
              -0.0002736676267127107,
              0.8989037314387226,
              0,
              158.4
            ]
          },
          "url": "1/0/0.b3dm"
        },
        "geometricError": 159.43385994848,
        "children": [
          {
            "boundingVolume": {
              "region": [
                -0.0004853062518095434,
                0.898741188925484,
                -0.0003930656008416433,
                0.898818995703538,
                0,
                66.7
              ]
            },
            "content": {
              "url": "2/0/0.b3dm"
            },
            "geometricError": 10.831613588830955
          },
          {
            "boundingVolume": {
              "region": [
                -0.0003984063083527456,
                0.8987434753068045,
                -0.00028070130359824817,
                0.8988027117816164,
                0,
                48.2
              ]
            },
            "content": {
              "url": "2/1/0.b3dm"
            },
            "geometricError": 11.833855250694043
          },
          {
            "boundingVolume": {
              "region": [
                -0.00039631191325035245,
                0.8988008442793176,
                -0.000280491864088009,
                0.8989002407802179,
                0,
                78.1
              ]
            },
            "content": {
              "url": "2/1/1.b3dm"
            },
            "geometricError": 24.187299340965403
          },
          {
            "boundingVolume": {
              "region": [
                -0.00047979101137324135,
                0.8988092742196048,
                -0.0003937113726648811,
                0.898901462510695,
                0,
                122.2
              ]
            },
            "content": {
              "url": "2/0/1.b3dm"
            },
            "geometricError": 48.508446081365975
          }
        ]
      },
      {
        "boundingVolume": {
          "region": [
            -0.0002874033679259065,
            0.8987233516605286,
            0.00009827949017980081,
            0.8988939226883266,
            0,
            75.2
          ]
        },
        "content": {
          "boundingVolume": {
            "region": [
              -0.00028230700651008276,
              0.8987309438427749,
              -0.00011402236003278958,
              0.8988939226883266,
              0,
              75.2
            ]
          },
          "url": "1/1/0.b3dm"
        },
        "geometricError": 132.82048511777703,
        "children": [
          {
            "boundingVolume": {
              "region": [
                -0.0002874033679259065,
                0.8987293381398633,
                -0.00018024015185345448,
                0.8987995352823785,
                0,
                38.1
              ]
            },
            "content": {
              "url": "2/2/0.b3dm"
            },
            "geometricError": 4.206139430532202
          },
          {
            "boundingVolume": {
              "region": [
                -0.00018407987620784196,
                0.8987233516605286,
                -0.0000894132175796695,
                0.8987836876927705,
                0,
                72.9
              ]
            },
            "content": {
              "url": "2/3/0.b3dm"
            },
            "geometricError": 0
          },
          {
            "boundingVolume": {
              "region": [
                -0.00018493508754131914,
                0.8987896218122265,
                0.00009827949017980081,
                0.8988920377327339,
                0,
                46.9
              ]
            },
            "content": {
              "url": "2/3/1.b3dm"
            },
            "geometricError": 0
          },
          {
            "boundingVolume": {
              "region": [
                -0.00027722809838677943,
                0.8987969696483782,
                -0.00017832028967626075,
                0.8988916014004213,
                0,
                55.4
              ]
            },
            "content": {
              "url": "2/2/1.b3dm"
            },
            "geometricError": 0
          }
        ]
      },
      {
        "boundingVolume": {
          "region": [
            -0.0002821848334624433,
            0.8988867144785156,
            0.00011646582098558159,
            0.8990603398325034,
            0,
            158
          ]
        },
        "content": {
          "boundingVolume": {
            "region": [
              -0.0002782229360604159,
              0.8989292306990948,
              0.000006946410422937427,
              0.899046220118855,
              0,
              158
            ]
          },
          "url": "1/1/1.b3dm"
        },
        "geometricError": 156.46285780389445,
        "children": [
          {
            "boundingVolume": {
              "region": [
                -0.00027865926837341453,
                0.8988880758353316,
                -0.00014501940754820897,
                0.8989746092596459,
                0,
                77.3
              ]
            },
            "content": {
              "url": "2/2/2.b3dm"
            },
            "geometricError": 0
          },
          {
            "boundingVolume": {
              "region": [
                -0.00015598007525073333,
                0.8988867144785156,
                0.00011646582098558159,
                0.8989826028676196,
                0,
                106.2
              ]
            },
            "content": {
              "url": "2/3/2.b3dm"
            },
            "geometricError": 0
          },
          {
            "boundingVolume": {
              "region": [
                -0.00015252432333178438,
                0.8989769130942584,
                0.00003328342883553189,
                0.8990603398325034,
                0,
                67.9
              ]
            },
            "content": {
              "url": "2/3/3.b3dm"
            },
            "geometricError": 8.010233984367021
          },
          {
            "boundingVolume": {
              "region": [
                -0.0002821848334624433,
                0.8989765465751156,
                -0.0001477072145962801,
                0.899040914317929,
                0,
                76
              ]
            },
            "content": {
              "url": "2/2/3.b3dm"
            },
            "geometricError": 40.38435697163592
          }
        ]
      },
      {
        "boundingVolume": {
          "region": [
            -0.0005682966577418737,
            0.8989007643789939,
            -0.0002669481090925327,
            0.8990582279841088,
            0,
            204
          ]
        },
        "content": {
          "boundingVolume": {
            "region": [
              -0.0005526410543514849,
              0.8989100669839071,
              -0.0002669481090925327,
              0.8990037911647392,
              0,
              204
            ]
          },
          "url": "1/0/1.b3dm"
        },
        "geometricError": 149.600454457028,
        "children": [
          {
            "boundingVolume": {
              "region": [
                -0.0005474399731805417,
                0.8989017068567899,
                -0.00040917498983755046,
                0.8990014698768336,
                0,
                81.2
              ]
            },
            "content": {
              "url": "2/0/2.b3dm"
            },
            "geometricError": 0
          },
          {
            "boundingVolume": {
              "region": [
                -0.00041203732981082115,
                0.8989007643789939,
                -0.00027176521782803744,
                0.8989922894449685,
                0,
                108.7
              ]
            },
            "content": {
              "url": "2/1/2.b3dm"
            },
            "geometricError": 0
          },
          {
            "boundingVolume": {
              "region": [
                -0.0004253716452960582,
                0.8989891478523147,
                -0.0002760587277879431,
                0.8990362368355337,
                0,
                30.1
              ]
            },
            "content": {
              "url": "2/1/3.b3dm"
            },
            "geometricError": 18.837170280352364
          },
          {
            "boundingVolume": {
              "region": [
                -0.0005682966577418737,
                0.8989984853638134,
                -0.000407220221075317,
                0.8990582279841088,
                0,
                53.3
              ]
            },
            "content": {
              "url": "2/0/3.b3dm"
            },
            "geometricError": 67.4774528507299
          }
        ]
      }
    ]
  }
}

Tileset.json中最高层级的对象有四个属性:asset, properties, geometricError,
和 root。

Asset是一个包含了整体tileset元数据属性的对象。其中version属性是定义3D Tiles版本的字符串。版本号定义了tileset.json的JSON格式和瓦片格式的基础设定。tilesetVersion属性是一个选填的字符串,用于定义特定应用中tileset的版本,可以用于更新tileset。

Properties是一个包含tileset中每个要素每个属性信息的对象。这个tileset.json代码片段是用于三维建筑,每一个瓦片都有建筑物模型,每个模型都有Height属性(参考Batched 3D Model瓦片格式中的Batch Table)。

properties 每个对象的名称都与每个要素中对应属性的名称相同,定义了他们的minimum 和 maximum数值,在自定义色阶样式时很有用。

geometricError是一个非负数值,在tileset没有渲染时定义米制误差。

root用于定义根瓦片(参考上一节)。root.geometricError与最高层级tileset.json的geometricError不同。tileset.json的geometricError定义的误差用在整个tileset还没有被渲染的时候;root.geometricError定义的误差用在只有根瓦片被渲染的时候。

root.children是定义子瓦片对象的数组。每个子瓦片都有boundingVolume,这个边界体被父瓦片的boundingVolume完全包围,通常子瓦片的 geometricError要小于父瓦片的geometricError。对于叶子瓦片而言,子瓦片数组的长度为0,
所以 children也可以不定义。

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
制作 Cesium 3D Tiles 地形需要准备高程数据和纹理数据,并使用 Cesium 提供的工具进行处理和转换。下面是一个基本的制作流程: 1. 准备高程数据:获取高程数据,可以是 DEM(数字高程模型)文件、LIDAR 数据等。确保数据的分辨率和覆盖范围适合您的需求。 2. 准备纹理数据:获取地表纹理图像,可以是卫星图像、航拍图像等。确保纹理图像和高程数据的对应关系正确。 3. 使用 Cesium 3D Tiles 高程工具:Cesium 提供了 `CesiumTerrainBuilder` 工具,用于将高程数据转换为 3D Tiles 格式。您可以按照 Cesium 官方文档中的说明进行安装和使用。 4. 使用 Cesium 3D Tiles 纹理工具:Cesium 还提供了 `Cesium3DTilesServer` 工具,用于将纹理数据转换为 3D Tiles 格式。同样,您可以按照官方文档中的说明进行安装和使用。 5. 合并高程和纹理数据:将生成的高程 3D Tiles 和纹理 3D Tiles 进行合并,以创建完整的地形数据集。您可以使用 `tileset.json` 配置文件来描述数据集的元数据和属性。 6. 加载和显示地形:使用前面提到的方法,将地形数据集加载到 Cesium Viewer 中,并设置合适的相机视角和其他显示参数。 请注意,制作 Cesium 3D Tiles 地形需要一定的数据处理和计算资源。具体的细节和工具使用方法,请参考 Cesium 官方文档和示例代码。 希望这些信息对您有所帮助!如果您还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值