Cesium Certification Section 1 - Foundations
Foundations I
https://cesium.com/learn/cesium-foundations/
Lessons 1-4:
Lesson 1: The Cesium Platform
- Cesium OpenSource / Proprietary Business Model
- Overview:
- List itemCesiumJS was created in 2011 by an Analytical Graphics Inc. (aerospace visualizations), and Cesium spun out as its own company in 2019.
- Cesium Ion is the commercial wing of that.
Knowledge Check:
- How did Cesium Start?
- In 2011 as a company for aerospace visualizations.
- Patrick Cozzi, is the CEO
- What runtimes does Cesium Support:
- O3DE, Unity, Omniverse, Unreal, CesiumJS, and
- What open standard did cesium create:
Lession 2: 3D Tiles
2.1) Why was the 3D Tiles specification first created?
- To stream 3D models from sources such as Point Clouds, photogrammetry meshes, 3D buildings, vector data.
- The existing tech didn’t exist, so they created the tech & spec in 2015, and the OGC adopted it in 2019
2.2) What are the ten core features of 3D Tiles?
-
Open, follows an OGC specification
- Optimized for streaming and rendering
- Can show high-level abstractions, or zoom in for details (i.e. Optimzed for Hierarchical Level of Detail (HLOD))
- Can show high-level abstractions, or zoom in for details (i.e. Optimzed for Hierarchical Level of Detail (HLOD))
- Designed for 3D
- Not built in 2.5D, meaning you can have a 3D camera float around everywhere.
- Its ontology does not rely on constructs like “zoom levels”, instead it uses a geometric rendering model, that uses “tunable pixel error”, and “geometric error for Level-Of-Detail (LOD) selection” (e.g. for a given LOD, what is acceptable in terms of geometric error?).
- Bounding volumes are 3D extents, not 2D cartography which is based on Web Mercator, which has its poles bound to infinity, making 3D calculations impractical
- Also bc the US DoD, and the National System for Geospatial Intelligence, says it is not a good idea. They have a paper on it.
- Interactive
- Support user interactions like mouseover!
- Support user interactions like mouseover!
- Styleable
- Metadata for individual models, allow shading alteration at runtime without altering the code!
- Height dependent styling !
- Adaptable
- Can work with multiple subdivision strategies for 3D: Traditional 3D is quadtree, but that is unnecessarily costly.
- Can work with multiple subdivision strategies for 3D: Traditional 3D is quadtree, but that is unnecessarily costly.
- Flexible
- Avoids unecessary data loads:
- “refinement” = increasing the resolution
- “replacement refinement”: 2D, when a user zooms in, and the visual map tiles are replaced with a higher-resolution one.
- “Additive refinement”: 3D, when you progressively add more data.
- Zoomed in, more details…
- “refinement” = increasing the resolution
3D Data allows both types!
- Avoids unecessary data loads:
- Heterogeneous
- 3D Tiles are heterogeneous because there is no one-size-fits-all for 3D datasets.
- Batched models (e.g., buildings) need a different representation from instanced models (e.g., trees), which need a different representation from point clouds, and so on.
The heterogeneous nature of 3D Tiles allows discrete levels of detail combined with HLOD.
- EXAMPLE: a 3D building could be a billboard and label at one LOD, an extruded footprint at a higher LOD, a 3D model at the next LOD, and a textured 3D model at the highest LOD.
- 3D Tiles are heterogeneous because there is no one-size-fits-all for 3D datasets.
- Precise
- Has full precision geometry, with roots in rocket science.
- Temporal
- Designed for time-dynamic visualizations so you can see snow cover change over time.
2.3) Why is metadata such a critical feature in the 3D Tiles 1.1 (aka “Next”) specification?
- Metadata = semantics
- Because it allows the model to be rendered as one big block BUT have its individual features identified at runtime, which results in per-tile runtime processing and low CPU overhead during rendering
- The new 1.1 version allows metadata to be rendered in lookup tables that are aggregated
- Left: per-texel colors showing the feature classification, e.g., roof, sky roof, windows, window frames, and AC units . Right: classification is used to determine rendering material properties, e.g., make the windows translucent.
2.4) What is Implicit vs Explicit Tiling Schemes?
Partial Updates!
- Implicit means that support for well-known spatial indexes without the need to explicitly define them.
- This enables random access capability at any time (aka, partial updates to a tile!)
Via Digital Twin Simulations
This partial update capability means that simulations streaming agents of a digital twin can be smooth AF!
- Implicit tiling supports massive simulations such as a crowd of people in a city. Spatial indexes enable efficient queries for nearby objects.
2D Cartography integration
This means that implicit tiling can represent WMTS, TMS, and CDB data in the 3D space! Interoperability!
S2 Subdivision (Google spatial index)
Version 1.1 also includes S3: a global subdivision, where each tile is equal area, and minimal distortion at the pole.
- The S2 Hilbert curve on the WGS84 ellipsoid.
Next Tile Spec (3.1)
Developer resources including the 3D Tiles Next Reference Card, sample data, and the upcoming 3D Tiles Next Tech blog series. - https://github.com/CesiumGS/3d-tiles/blob/main/next/3d-tiles-next-reference-card.pdf - https://github.com/CesiumGS/3d-tiles-samples
Lesson 3: Cesium ion
https://cesium.com/learn/cesium-foundations/#lesson-3-cesium-ion