3D Tiles介绍(二)

本文详细介绍了3D Tiles的坐标系,包括其使用右手笛卡尔坐标系,z轴向上的特点,以及如何处理不同坐标系统的转换。同时阐述了瓦片变换的概念,每个瓦片可拥有一个4x4仿射变换矩阵,用于在局部和全局坐标系间进行转换。此外,文章还提及了glTF模型在3D Tiles中的坐标系统和单位处理方式。
摘要由CSDN通过智能技术生成

原文地址:点击打开链接

Coordinate System and Units 坐标系和单位

3D Tiles use a right-handed Cartesian coordinate system, that is, the cross product of x and y yields z. 3D Tiles define the z axis as up for local Cartesian coordinate systems (see theTile transform section). A tileset's global coordinate system will often be WGS84 coordinates, but it doesn't have to be, e.g., a power plant may be defined fully in its local coordinate system for using with a modeling tool without a geospatial context.

3D Tiles使用右手笛卡尔坐标系,即x和y的叉乘得到z轴。3D Tiles定义本地笛卡尔坐标系z轴向上。瓦片集的世界坐标系常常是WGS84坐标系,但是也不一定,例如,一个发电厂可以在没有地理空间框架的模型工具中,使用局部坐标系创建。

b3dm and i3dm tiles embed glTF. According to the glTF spec glTF uses a right-handed coordinate system and defines the y axis as up. By default embedded models are considered to be y-up, but in order to support a variety of source data, including models defined directly in WGS84 coordinates, embedded glTF models may be defined as x-up, y-up, or z-up with the asset.gltfUpAxis property oftileset.json. In general an implementation should transform glTF assets to z-up at runtime to be consistent with the z-up coordinate system of the bounding volume hierarchy.

b3dm和i3dm瓦片内嵌glTF。根据glTF说明,glTF使用y轴向上的右手坐标系。默认情况下,内嵌模型y轴向上,但是为了支持多种数据源,包括直接在WGS84坐标系定义的模型,内嵌glTF模型也可以通过tileset.json的asset.gltfUpAxis属性定义x轴向上,y轴向上或z轴向上。通常的实现是,在运行时变换glTF资产为z轴向上,以便和包围体层次的z轴向上坐标系保持一致。

The units for all linear distances are meters.

所有线性距离都采用米为单位。

All angles are in radians.

所有角度采用弧度值。

3D Tiles do not explicitly store Cartographic coordinates (longitude, latitude, and height); these values are implicit in WGS84 Cartesian coordinates, which are efficient for the GPU to render since they do not require a non-affine coordinate transformation. A 3D Tiles tileset can include application-specific metadata, such as Cartographic coordinates, but the sema

### 3D Tiles 的基本概念与使用方法 #### 什么是3D Tiles3D Tiles 是一种开放标准,旨在为大规模三维地理空间数据提供高效的流式传输和渲染能力。它由 Cesium 社区发起并维护,适用于各种类型的三维数据,包括地形、建筑模型、点云等。这种格式的设计目标是让客户端能够在网络环境中流畅加载和显示海量的三维场景。 #### 3D Tiles 的主要特点 - **分层结构**:采用四叉树或多分辨率金字塔结构来管理数据层次[^1]。 - **动态加载**:仅加载当前视图范围内的必要部分,减少带宽消耗和内存占用[^2]。 - **多源支持**:兼容多种原始数据格式(如 OSGB),并通过专用工具进行转换[^4]。 #### 如何获取或创建3D Tiles 数据? ##### 方法一:利用现有工具生成 对于已经存在的三维模型文件,可以通过特定软件将其转化为符合规范的标准3D Tiles 文件夹集合。例如,“Cesium 3dtileConvert 工具”就是这样一个实用程序,专攻从OSGB格式向3D Tiles转变的任务。 ```bash cesium-ion convert --source /path/to/osgb/files --destination /output/directory ``` 上述命令展示了如何调用 cesium 提供的服务接口执行批量处理作业。 ##### 方法:手动编写配置文件 如果只是想测试某些基础功能或者定制化程度较高,则可以直接参照官方文档说明自行定义JSON描述符以及关联几何体资源路径。 ```json { "asset": { "version": "1.0" }, "geometricError": 8, "refine": "REPLACE", "boundingVolume": { "region": [ -1.3962634, 0.7853982, -1.134464 , 0.9302721, 1e+006 , 2e+006 ] } } ``` 以上片段体现了最简单的tileset.json模板样式。 #### 常见应用框架介绍 目前主流的支持库有以下几个选项可供选择: - **CesiumJS**: 它是最先全面拥抱此协议的产品之一,在线演示效果非常出色; - **Three.js扩展插件(3d-tiles-renderer)**: 如果更倾向于轻量级解决方案的话,那么来自 NASA AMMOS 小组贡献的作品可能更加适合您尝试; --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值