Advanced Operations#

Importing Cesium 3DTiles#

A Cesium 3DTiles model is a directory with a tileset.json file inside that defines the model structure and a set of 3D files (*.b3dm. *.gltf) that comprise the model tiles

For a model to show in the absorber workspace:

  1. Create a <model_name>.metadata file in the model directory where <model_name> is the same name as the directory name.

  2. Copy the content below into your new file.

  3. From the tileset.json file, identify the “transform” property of the “root” node and copy the 13-15 values into “TilesetEcefX”, “TilesetEcefY” and “TilesetEcefZ”.

  4. Optionally (but highly recommended), copy the values from the minimum and maximum values from the tileset “properties”.

  5. Due to difference between different tileset creations method, you might have to edit the “tilesetRotation” and “primativeRotationOffset” to align your tileset to the workspace

  6. If the model 3D is right but the textures are wrong, change the “gltfVersion” to 2.0

Attention

When changing the tilset_name.metadata file, the room should be closed and reopened for changes to take effect

../_images/Metadata_file.png

Sample tileset_name.metadata file#

{
    "tilesetName": "<Change_Me>",
    "tilesetRotation": {
        "x": -90.0,
        "y": 180.0,
        "z": 0.0
    },
    "translationOffset": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
    },
    "rotationOffsetEuler": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
    },
    "scaleOffset": {
        "x": 1.0,
        "y": 1.0,
        "z": 1.0
    },
    "primativeRotationOffset": {
        "x": 90.0,
        "y": 0.0,
        "z": 0.0
    },
    "gltfVersion":1.0,
    "autoCalcTranslation": true,
    "autoCalcRotation": false,
    "shaderOverride": "Absorber/Lit/ClippedTextureWithStencil",
    "geometricErrorMultiplier": 2.0,
    "geometricErrorOffest": 7,
    "useDebugBounds": false,
    "Height_bounds": {
        "maximum": <Change_Me>,
        "minimum": <Change_Me>
    },
    "Latitude_bounds": {
        "maximum": <Change_Me>,
        "minimum": <Change_Me>
    },
    "Longitude_bounds": {
        "maximum": <Change_Me>,
        "minimum": <Change_Me>
    },
    "TilesetEcefX": <Change_Me>,
    "TilesetEcefY": <Change_Me>,
    "TilesetEcefZ": <Change_Me>
}