A overview of 3DTiles

21 篇文章 1 订阅

A overview of 3DTiles

Overview

  • Open and interoperable 开放和互操作
  • Heterogeneous 多源异构的数据
  • Designed for 3D 专为 3D 设计的流式渲染
  • Semantic, interactive, and styleable 语义化、交互性和可样式化

An Example Tileset

在这里插入图片描述

namespace Cesium3DTiles {
/**
 * @brief A <a
 * href="https://github.com/CesiumGS/3d-tiles/tree/master/specification">3D
 * Tiles tileset</a>, used for streaming massive heterogeneous 3D geospatial
 * datasets.
 */
class CESIUM3DTILES_API Tileset final {
public:
  /**
   * @brief Constructs a new instance with a given `tileset.json` URL.
   * @param externals The external interfaces to use.
   * @param url The URL of the `tileset.json`.
   * @param options Additional options for the tileset.
   */
  Tileset(
      const TilesetExternals& externals,
      const std::string& url,
      const TilesetOptions& options = TilesetOptions());
      
    };

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Tilesets and Tiles

在这里插入图片描述

namespace Cesium3DTiles {
class Tileset;
class TileContent;
struct TileContentLoadResult;
/**
 * @brief A tile in a {@link Tileset}.
 *
 * The tiles of a tileset form a hierarchy, where each tile may contain
 * renderable content, and each tile has an associated bounding volume.
 *
 * The actual hierarchy is represented with the {@link Tile::getParent}
 * and {@link Tile::getChildren} functions.
 *
 * The renderable content is provided as a {@link TileContentLoadResult}
 * from the {@link Tile::getContent} function.
 * The {@link Tile::getGeometricError} function returns the geometric
 * error of the representation of the renderable content of a tile.
 *
 * The {@link BoundingVolume} is given by the {@link Tile::getBoundingVolume}
 * function. This bounding volume encloses the renderable content of the
 * tile itself, as well as the renderable content of all children, yielding
 * a spatially coherent hierarchy of bounding volumes.
 *
 * The bounding volume of the content of an individual tile is given
 * by the {@link Tile::getContentBoundingVolume} function.
 *
 */
class CESIUM3DTILES_API Tile final {
    
    };
}

Bounding Volumes

在这里插入图片描述

namespace Cesium3DTiles {
/**
 * @brief A bounding volume.
 *
 * This is a `std::variant` for different types of bounding volumes.
 *
 * @see CesiumGeometry::BoundingSphere
 * @see CesiumGeometry::OrientedBoundingBox
 * @see CesiumGeospatial::BoundingRegion
 * @see CesiumGeospatial::BoundingRegionWithLooseFittingHeights
 */
typedef std::variant<
    CesiumGeometry::BoundingSphere,
    CesiumGeometry::OrientedBoundingBox,
    CesiumGeospatial::BoundingRegion,
    CesiumGeospatial::BoundingRegionWithLooseFittingHeights>
    BoundingVolume;
 /**
 * @brief Transform the given {@link BoundingVolume} with the given matrix.
 *
 * If the given bounding volume is a {@link CesiumGeometry::BoundingSphere}
 * or {@link CesiumGeometry::OrientedBoundingBox}, then it will be transformed
 * with the given matrix. Bounding regions will not be transformed.
 *
 * @param transform The transform matrix.
 * @param boundingVolume The bounding volume.
 * @return The transformed bounding volume.
 */
CESIUM3DTILES_API BoundingVolume transformBoundingVolume(
    const glm::dmat4x4& transform,
    const BoundingVolume& boundingVolume);
/**
 * @brief Returns the center of the given {@link BoundingVolume}.
 *
 * @param boundingVolume The bounding volume.
 * @return The center point.
 */
CESIUM3DTILES_API glm::dvec3
getBoundingVolumeCenter(const BoundingVolume& boundingVolume);
}

Spatial Data Structures

在这里插入图片描述

Geometric Error

在这里插入图片描述

Screen Space Error

在这里插入图片描述

Refinement Strategies

在这里插入图片描述

namespace Cesium3DTiles {
/**
 * @brief Refinement strategies for a {@link Cesium3DTiles::Tile}.
 */
enum class TileRefine {
  /**
   * @brief The content of the child tiles will be added to the content of the
   * parent tile.
   */
  Add = 0,
  /**
   * @brief The content of the child tiles will replace the content of the
   * parent tile.
   */
  Replace = 1
};
} // namespace Cesium3DTiles

参考

  1. 3d-tiles-overview
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值