Comments (8)
+1
from 3d-tiles.
Until we flush out the bounding volume, Cesium is deriving the bounding sphere from the bounding box: https://github.com/AnalyticalGraphicsInc/cesium/pull/3158/files#diff-e51181d6e2f4fd006b1404f2fe1f65a2R58
Not optimal, but only temporary.
from 3d-tiles.
I'm not ready to fully design this quite yet, but I am thinking we will replace tile.box
and tile.content.box
with something like tile.boundingVolume
/tile.content.boundingVolume
, which would be a dictionary object like:
boundingVolume : {
sphere : //
box : // a true box in Cartesian space
region : // a "box" in Cartographic space, what "box" currently is
...
}
I think box
would be an AABB in the tilesets coordinate system (which we would need to store in tiles.json) so, for example, cities with a principal bearing axis of 45 degrees or point clouds with arbitrary orientation can be subdivided optimally instead of just slicing longitude/latitude/height.
There may also be a need for box to be an OBB (or for separate AABB and OBB properties).
Perhaps the spec will allow multiple bounding volumes to be declared in boundingVolume
so the client can pick the optimal one for the task, e.g., a k-DOP may be used for collision detection and a sphere may be used for culling.
Is allowing multiple bounding volumes overkill, e.g., the union of children bounding volumes is a better fit than a parent's bounding volume so it can be useful to test the parent, then children bounding volumes before rendering the parent. This can be done with the current tiles.json schema. Is something more general worth the complexity?
from 3d-tiles.
Is there anything I can do to help on this? I think we'd like to use a bounding sphere for the root tile in a global tileset scenario, so we can have a root covering the whole globe.
from 3d-tiles.
Yes, you are welcome to do all of it. ๐
In Cesium, here are the types of interest:
I have also toyed with the idea that we only need AABB, not OBB, since the tileset should be able to define a local coordinate system, e.g., for point clouds or cities that are not subdivided on longitude/latitude boundaries, so the tiles would use an AABB in the tileset's coordinate system, which would be an OBB in WGS84. I dunno, it will need some implementation work to be sure.
To get started, perhaps you could just do the least amount needed to the spec and Cesium to add support for bounding spheres. Then we can see how to scale it to AABB/OBB (should be obvious).
What do you think?
from 3d-tiles.
That's generous ๐
Sounds good, I'll have a go at adding support for bounding spheres and then we'll see about the other types.
from 3d-tiles.
Awesome! Looking forward to you progress.
from 3d-tiles.
Spec updates: #51
from 3d-tiles.
Related Issues (20)
- Excuse me, is there currently a code implementation for implicit segmentation๏ผ
- Question: Are subtile urls supposed to implicitly use the parent tileset query parameters? HOT 7
- Maybe spell error HOT 1
- Clarify the use of non-8-bit-channels in property textures HOT 1
- How to format data HOT 1
- glTF metadata uses integers where it should use "glTF IDs"
- Inconsistency in tile schema and its description
- Cesium 1.1 tiling data failed to load
- Clarify details about `featureCount` and `nullFeatureId` HOT 4
- Can Earth Explorer 3D Map with Augmented reality be added as Viewer?
- Can Map Data Explorer iOS and Android be added as Viewer - it supports 3DTILES
- Selection Issue with GLB Model Organized by Tileset.json HOT 2
- Basic, minimal examples; sources for README figures HOT 10
- EXT_mesh_features Clarification: How many feature ids does an indexed geometry have when ids are implicitly derived? HOT 5
- EXT_mesh_features Rendering: How to visualize "interpolated" features? HOT 8
- 3D-Tiles 1.1 Implicit tile about .subtree binary file HOT 5
- Implementation notes refer to `bufferView` where `bitstream` should be used
- 3D-Tiles 1.1 implicit tile : Octree HOT 1
- 3D-Tiles 1.1 voxel HOT 1
- Clarification for content availability of implicit tileset roots HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from 3d-tiles.