From 9778e4ea5cefbb21404d32b40269fbe6d7b08b90 Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Mon, 25 Oct 2021 12:33:35 -0700 Subject: [PATCH 1/3] CESIUM_scene_crs: Initial commit --- .../2.0/Vendor/CESIUM_scene_crs/README.md | 60 ++++++++++++++++++ .../figures/ecef_coordinates.png | Bin 0 -> 56892 bytes .../schema/scene.CESIUM_scene_crs.schema.json | 15 +++++ 3 files changed, 75 insertions(+) create mode 100644 extensions/2.0/Vendor/CESIUM_scene_crs/README.md create mode 100644 extensions/2.0/Vendor/CESIUM_scene_crs/figures/ecef_coordinates.png create mode 100644 extensions/2.0/Vendor/CESIUM_scene_crs/schema/scene.CESIUM_scene_crs.schema.json diff --git a/extensions/2.0/Vendor/CESIUM_scene_crs/README.md b/extensions/2.0/Vendor/CESIUM_scene_crs/README.md new file mode 100644 index 0000000000..9c4ee2b535 --- /dev/null +++ b/extensions/2.0/Vendor/CESIUM_scene_crs/README.md @@ -0,0 +1,60 @@ +# CESIUM_scene_crs + +## Contributors + +- Don McCurdy, Independent + +## Status + +Cesium Vendor Extension - Supported in all Cesium implementations of the 3D Tiles [`3DTILES_content_gltf`](https://github.com/CesiumGS/3d-tiles/tree/3d-tiles-next/extensions/3DTILES_content_gltf) extension. + +## Dependencies + +Written against the glTF 2.0 spec. + +## Overview + +The `CESIUM_scene_crs` extension declares the Coordinate Reference System (CRS) in which a glTF 2.0 asset was authored, which may differ from the default — right-handed, +Y up, +Z forward, and -X right — as defined in the [Coordinate System and Units](https://www.khronos.org/registry/glTF/specs/2.0/glTF-2.0.html#coordinate-system-and-units) section of the glTF specification. + +glTF assets used in certain contexts, and notably as [3D Tiles](https://github.com/CesiumGS/3d-tiles/) content, are georeferenced and aligned with a larger geospatial dataset. "+Y up" or "+Z up" are meaningless conventions in this context – there is no single "Up" vector on the surface of a globe. + +Rather than requiring client implementations to transform generic glTF assets into a geospecific orientation at runtime, this extension allows content pipelines producing 3D Tiles with glTF content to prepare data as needed (e.g. orienting and perhaps splitting an asset) to be delivered in a 3D Tiles tileset. In order to identify that such processing has been applied and the default coordinate system no longer applies, scenes are annotated with a CRS. + +See [`3DTILES_content_gltf`](https://github.com/CesiumGS/3d-tiles/tree/3d-tiles-next/extensions/3DTILES_content_gltf) for additional details on the use of glTF 2.0 assets in 3D Tiles. + +## Extending Scenes + +Scenes annotated with the `crs` property are declared to have been authored for geospecific usage, with a particular CRS. Without this property, scenes in a glTF 2.0 asset are understood to have been authored using the coordinate system of the base glTF 2.0 specification. + +> **Example:** Scene within a glTF asset, annotated to indicate a EPSG:4978 CRS. +> +> ```jsonc +> { +> "asset": {"version": "2.0", "generator": "Cesium Ion v123"}, +> "extensionsUsed": ["CESIUM_scene_crs"], +> "extensionsRequired": ["CESIUM_scene_crs"], +> "scenes": [ +> "nodes": [0, 1, 2], +> "extensions": {"CESIUM_scene_crs": {"crs": "EPSG:4978"}} +> ] +> } +> ``` + +This extension currently supports only a single CRS: EPSG:4978, an [Earth-centered, Earth-fixed (ECEF)](https://en.wikipedia.org/wiki/Earth-centered,_Earth-fixed_coordinate_system) coordinate system. + +
+ Illustration of ECEF coordinate system. +
+ Source: Earth-centered, Earth-fixed coordinate system, Wikipedia, October 2021. +
+
+ + + +> **Implementation note:** EPSG:4978 defines `0,0,0` as the center of mass on Earth, where +Z extends through true north (i.e. the geodetic North Pole) and +X intersects the sphere of the earth at 0° latitude (the equator) and 0° longitude (the prime meridian which passes through Greenwich). As a result, no discrete "Up" vector exists relative to a ground plane. + +> **Implementation note:** Scenes are annotated with `EPSG:4978` as an informative declaration of their contents. Client implementations are not required to transform content to or from any particular CRS, and may choose simply to reject input not matching their expected CRS. Notably, 3D Tiles implementations require EPSG:4978 for glTF assets included with `3DTILES_content_gltf` and will have undefined behavior when the `crs` property is set to other values or omitted. Providing the CRS is an indication that required pre-processing has been done, and not a replacement for such pre-processing. + +## Schema + +* [scene.CESIUM_scene_crs.schema.json](./schema/scene.CESIUM_scene_crs.schema.json) diff --git a/extensions/2.0/Vendor/CESIUM_scene_crs/figures/ecef_coordinates.png b/extensions/2.0/Vendor/CESIUM_scene_crs/figures/ecef_coordinates.png new file mode 100644 index 0000000000000000000000000000000000000000..7bcfc8d33887d1dd0f0f7c900e2763892e11b859 GIT binary patch literal 56892 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 literal 0 HcmV?d00001 diff --git a/extensions/2.0/Vendor/CESIUM_scene_crs/schema/scene.CESIUM_scene_crs.schema.json b/extensions/2.0/Vendor/CESIUM_scene_crs/schema/scene.CESIUM_scene_crs.schema.json new file mode 100644 index 0000000000..1c4f06ee6e --- /dev/null +++ b/extensions/2.0/Vendor/CESIUM_scene_crs/schema/scene.CESIUM_scene_crs.schema.json @@ -0,0 +1,15 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema", + "title": "CESIUM_scene_crs glTF scene extension", + "type": "object", + "description": "glTF extension for declaring the Coordinate Reference System (CRS) of a scene.", + "allOf": [ { "$ref": "glTFProperty.schema.json" } ], + "properties": { + "crs": { + "type": "string", + "description": "Coordinate Reference System for the scene. Implementations currently allow \"EPSG:4978\" only." + }, + "extensions": { }, + "extras": { } + } +} From f0e2f37154de51981c5a18abe53b7f8918835a18 Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Mon, 25 Oct 2021 12:38:03 -0700 Subject: [PATCH 2/3] Clean up figcaption formatting. --- extensions/2.0/Vendor/CESIUM_scene_crs/README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/extensions/2.0/Vendor/CESIUM_scene_crs/README.md b/extensions/2.0/Vendor/CESIUM_scene_crs/README.md index 9c4ee2b535..27b3437008 100644 --- a/extensions/2.0/Vendor/CESIUM_scene_crs/README.md +++ b/extensions/2.0/Vendor/CESIUM_scene_crs/README.md @@ -43,12 +43,11 @@ Scenes annotated with the `crs` property are declared to have been authored for This extension currently supports only a single CRS: EPSG:4978, an [Earth-centered, Earth-fixed (ECEF)](https://en.wikipedia.org/wiki/Earth-centered,_Earth-fixed_coordinate_system) coordinate system.
- Illustration of ECEF coordinate system. -
- Source: Earth-centered, Earth-fixed coordinate system, Wikipedia, October 2021. -
+ Illustration of ECEF coordinate system.
+> **Source:** [Earth-centered, Earth-fixed coordinate system](https://en.wikipedia.org/wiki/Earth-centered,_Earth-fixed_coordinate_system), Wikipedia. + > **Implementation note:** EPSG:4978 defines `0,0,0` as the center of mass on Earth, where +Z extends through true north (i.e. the geodetic North Pole) and +X intersects the sphere of the earth at 0° latitude (the equator) and 0° longitude (the prime meridian which passes through Greenwich). As a result, no discrete "Up" vector exists relative to a ground plane. From 6ac4e7dcb603a0c4c68ccf561fe1e2bd55b9474e Mon Sep 17 00:00:00 2001 From: Don McCurdy Date: Mon, 25 Oct 2021 13:57:14 -0700 Subject: [PATCH 3/3] Remove extra whitespace. --- extensions/2.0/Vendor/CESIUM_scene_crs/README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/extensions/2.0/Vendor/CESIUM_scene_crs/README.md b/extensions/2.0/Vendor/CESIUM_scene_crs/README.md index 27b3437008..116b6469fa 100644 --- a/extensions/2.0/Vendor/CESIUM_scene_crs/README.md +++ b/extensions/2.0/Vendor/CESIUM_scene_crs/README.md @@ -48,8 +48,6 @@ This extension currently supports only a single CRS: EPSG:4978, an [Earth-center > **Source:** [Earth-centered, Earth-fixed coordinate system](https://en.wikipedia.org/wiki/Earth-centered,_Earth-fixed_coordinate_system), Wikipedia. - - > **Implementation note:** EPSG:4978 defines `0,0,0` as the center of mass on Earth, where +Z extends through true north (i.e. the geodetic North Pole) and +X intersects the sphere of the earth at 0° latitude (the equator) and 0° longitude (the prime meridian which passes through Greenwich). As a result, no discrete "Up" vector exists relative to a ground plane. > **Implementation note:** Scenes are annotated with `EPSG:4978` as an informative declaration of their contents. Client implementations are not required to transform content to or from any particular CRS, and may choose simply to reject input not matching their expected CRS. Notably, 3D Tiles implementations require EPSG:4978 for glTF assets included with `3DTILES_content_gltf` and will have undefined behavior when the `crs` property is set to other values or omitted. Providing the CRS is an indication that required pre-processing has been done, and not a replacement for such pre-processing.