GithubHelp home page GithubHelp logo

Batch Table changes about 3d-tiles HOT 7 CLOSED

cesiumgs avatar cesiumgs commented on July 19, 2024
Batch Table changes

from 3d-tiles.

Comments (7)

pjcozzi avatar pjcozzi commented on July 19, 2024

Throughout 3D Tiles, should batchTable be renamed?

Discussed with @lilleyse offline. We're going to keep batchTable.

from 3d-tiles.

lilleyse avatar lilleyse commented on July 19, 2024

Some ideas for adding a binary section to the batch table to store properties like colors, normals, scales, etc in a more space-efficient way:

Usually the batch table stores an array of values, like:

{
    "id" : ["unique id", "another unique id"],
    "displayName" : ["Building name", "Another building name"],
    "scale" : [1.0, 1.4]
}

But for numeric data like scale it is more efficient to store in a binary form. The property in the batch table can instead reference a chunk of binary data like:

{
    "id" : ["unique id", "another unique id"],
    "displayName" : ["Building name", "Another building name"],
    "scale" : {
        "byteOffset" : 0,
        "componentType" : "FLOAT",
        "type" : "SCALAR"
}

Where:

  • byteOffset is the offset from the start of the batchTableBinary.
  • componentType can be the following values: "BYTE", "UNSIGNED_BYTE", "SHORT", "UNSIGNED_SHORT", "INT", "UNSIGNED_INT", "FLOAT", and "DOUBLE"
  • type can be "SCALAR", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3", "MAT4"

The data is assumed to be tightly packed, so we are not using a byteStride variable for now.

Well known semantics that the client understands how to process like rgb, scale, and normal should be labelled as TILES3D_RGB, TILES3D_SCALE, TILES3D_NORMAL. For these properties the componentType and type are optional.

Every tile format will need to change to support the batch table binary section. batchTable will be broken into batchTableJson and batchTableBinary, and batchTableLength in the header will be replaced by two values batchTableJsonLength and batchTableBinaryLength. Like the batch table itself, batchTableBinary is optional.

from 3d-tiles.

pjcozzi avatar pjcozzi commented on July 19, 2024

+1 from me!

from 3d-tiles.

pjcozzi avatar pjcozzi commented on July 19, 2024

Cesium implementation PR by @lilleyse - CesiumGS/cesium#4112

from 3d-tiles.

pjcozzi avatar pjcozzi commented on July 19, 2024
  • We should do #103 as part of this.

from 3d-tiles.

pjcozzi avatar pjcozzi commented on July 19, 2024

Spec updates: #125

from 3d-tiles.

pjcozzi avatar pjcozzi commented on July 19, 2024

#125 will be merged shortly.

from 3d-tiles.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.