BlockInfo Struct

这个类型是C#语言的 EasyAR Sense API: BlockInfo 。页面中部分描述可能与Unity环境无关。

这个类型已经部分封装进Unity组件: DenseSpatialMapBlockController 。在大部分情况下不需要直接使用这个类型的成员和实例。如果要使用一些没有被封装的接口,需要使用 DenseSpatialMapBlockController.Info ,而非创建新的实例。

Description

稠密重建得到的模型使用三角网格表示,称为mesh。由于mesh会进行频繁的更新,为了保证效率,整个重建模型的mesh被分割成了非常多的mesh block。一个mesh block由一个边长大概1米的立方体组成,其中有vertex和index等元素。

BlockInfo用来描述一个mesh block的内容。其中(x,y,z)是mesh block的索引,将(x,y,z)乘上每个mesh block的物理尺寸可以获得这个mesh block的原点在世界坐标系中的坐标。可以通过mesh block在世界中的位置对需要显示的部分进行提前过滤,以节省渲染需要的时间。


Fields

x

C#

public int x

mesh block的索引(x,y,z)中的x。

y

C#

public int y

mesh block的索引(x,y,z)中的y。

z

C#

public int z

mesh block的索引(x,y,z)中的z。

numOfVertex

C#

public int numOfVertex

一个mesh block中所拥有的顶点的数目。

startPointOfVertex

C#

public int startPointOfVertex

顶点数据在vertex buffer中存放的起始位置,表示从第几个顶点开始是属于当前这个mesh block的。不等于偏移量的字节数,起始位置的偏移为startPointOfVertex*3*4个字节。

numOfIndex

C#

public int numOfIndex

一个mesh block中所拥有的索引的数目,每连续3个顶点构成一个三角面。

startPointOfIndex

C#

public int startPointOfIndex

与startPointOfVertex类似。索引数据在index buffer中存放的起始位置,表示从第几个索引开始是属于当前这个mesh block的。不等于偏移量的字节数,起始位置的偏移为startPointOfIndex*3*4个字节。

version

C#

public int version

当前mesh block更新的次数,version越大表示更新的次数更多。如果调用 DenseSpatialMap.updateSceneMesh 后一个mesh block的version变大了,说明其中的内容发生了变化。