3Dtiles翻译学习记录之二(模型改进)

六 、Refinement Strategies(改进策略)

当呈现一个tilesets时,运行时将遍历tile的层次结构,检查每个tile的几何错误,并计算相关的屏幕空间错误。当这个屏幕空间错误超过某个阈值时,运行时将递归地考虑要呈现的子块。包含可呈现内容的子块具有更高级别的细节和更小的屏幕空间错误。
通过两种细化策略,可以用子块的内容来增加细节级别。细化策略由tile的细化属性决定,可以是REPLACE或ADD。
在这里插入图片描述

1、Replacemet (替代)

该方式的子块包含的内容更加完整,具有更高级别的详细信息。当子tile的内容被渲染时,父节点的数据内容将被替换。

2、Additive(增加)

该方式的子tile包含父节点tile没有的细节内容。当子tile被渲染时,这个内容将被渲染在父tile的内容之上。

可以为每个tile单独指定refine属性,但只需要在tile集合的根tile中。当它没有给出时,策略将从父tile继承.

七 、优化渲染与3DTile

3D Tiles设计用于高效的渲染和大量异构数据集的流。下面是一个关于3D Tiles的概念如何被运行时用来交互式地渲染一个巨大的瓷砖集的总结。它展示了瓦片集和瓦片的层次结构、关联的边界体积、几何误差的概念和不同的细化策略如何一起发挥作用。本例中的瓦片集包含一组建筑。每个元素的边界体积用红色表示。
在这里插入图片描述

tilesets包含root tile,而root tile又包含三个子tile。每个子tile包含可渲染的内容。在这个例子中,每个tile的内容由两个建筑组成,存储为一个批处理3D模型。在这个级别上,内容以较低的细节级别存储,这意味着tiles具有较高的几何误差。每一个子节点都附加地指向一个子节点,其中存储相同内容的细节级别更高,因此几何误差更低。在渲染期间,运行时维护一个视图截锥,它由摄像机位置、方向和视场角度定义。视图截锥可以测试与tilesets和tile的边界体相交。

使用3D Tiles优化渲染:示例

  • 最初,运行时加载主tileset JSON,并测试视图截体是否与根tile的边界卷相交。在这个例子中,截锥体与根tile的边界体相交,这意味着这个tile所包含的内容被考虑用于渲染。此时,还没有加载任何可呈现的内容,来自tileset JSON的信息足以决定是否将呈现任何内容。
  • 运行时,可以确定与视图截锥相交的子tile的边界体积。在这个例子中,三个子tile中的两个的边界体确实与视图截锥相交。这意味着要这些相交子块的内容会被加载。
  • 在本例中,内容是具有较低细节级别的建筑的表示。因此,即tilesets的大部分是可见的,运行时也可以有效地渲染内容,因为它的复杂性很低。在呈现期间,运行时观察与呈现的tiles相关的几何错误的影响:它被转换成屏幕空间错误,以估计视觉表示的质量。只要没有超过阈值(本例中可能是18.0),就不需要对呈现的内容进行细化.
  • 然后用户可以与渲染的tilesets进行交互。例如,用户可以放大某一建筑物。这将导致屏幕空间错误增加,当它超过某个阈值时,就会考虑渲染下一级的tile。这些tiles包含相同内容的表示,具有更高层次的细节,因此具有较小的几何误差。运行时只需要加载与新视图截锥相交的tile内容。
    具有较高细节级别的内容将根据所选的细化策略加载和呈现。由于其较低的几何误差,导致屏幕空间误差低于阈值,这意味着较高的视觉质量。但是现在,只有一小部分的瓷砖是可见的,高水平的细节内容仍然可以有效地渲染。
    在这里插入图片描述
    这个例子展示了3D Tiles如何在任何尺度上平衡渲染性能和视觉质量。运行时可以检测视图截锥是否与贴图的边界体积相交,只有在这种情况下,贴图内容才会被下载。运行时最初可以显示具有最低详细级别的平铺内容,只有当屏幕空间错误超过一个阈值时(例如,当用户接近数据集的一个特性时),才会根据需要下载并呈现具有较高详细级别的内容。

八、Spatial Queries in 3D Tiles(空间查询)

3D tiles中具有边界体积的tile的层次结构允许高效的空间查询。这种空间查询的一个例子是光线投射:当运行时渲染一个tilesets时,用户可以通过选择单个模型或特征与场景进行交互,例如,突出显示模型或显示元数据。为了达到这个目的,拾取射线是从逆投影矩阵中计算出来的。光线从当前眼睛位置开始,穿过视图平面中的鼠标位置。这条光线与场景中的任何元素最近的交点决定了模型的哪一部分被选中了。
在这里插入图片描述

  • 交集的测试从渲染的贴图集的根tile开始。当射线与这个tile图的边界体相交时,它将与每个子tile进行相交测试。当找到与叶子tile的交集时,测试这个tile内容的实际几何数据是否与射线相交,以确定实际的拾取位置。
  • 在交集测试期间,树的空间一致性使快速修剪层次结构中未相交的部分成为可能:当一个tile的边界体积未相交时,则可以跳过该tile的子块的交集测试。在这个例子中,虚线显示的边界体不与拾取射线相交,并且遍历可能会在那里停止。
    在这里插入图片描述

九、Tile Formats

tile的可呈现内容由tile JSON的一部分URI引用。对于不同的模型类型,这些可呈现的内容可以以不同的格式存储。

  • Batched 3D Model: 异质模型,如纹理地形或3D建筑
  • Instanced 3D Model:同一个3D模型的多个实例
  • Point Clouds: 大量的点数据

一个tilesets可以包含任何tile格式的组合。通过允许不同格式的Tile组合成一个复合Tile(第10.5节),可以实现额外的灵活性。
一个tile的可渲染内容包含不同的特性。对于批处理的3D模型,几何体的每个部分可能是一个特征。例如,当几个建筑组合在一个批量3D模型中,那么每个建筑可能是一个特征。对于实例3D模型,每个实例都是一个特性。对于点云,有两个选项:一个特征可以是单个点,也可以是一组表示模型可识别部分的点

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值