DenseSpatialMap Class

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

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

Description

DenseSpatialMap用来对环境进行精确的三维稠密重建,其重建的模型用三角网格表示,称为mesh。

DenseSpatialMap占用1个camera的buffer。


Methods

isAvailable

C#

public static bool isAvailable()

当设备支持稠密重建功能时返回True,否则返回False。

inputFrameSink

C#

public virtual InputFrameSink inputFrameSink()

输入帧输入端口。DenseSpatialMap输入帧必须包含图像和对应的camera参数、空间信息(cameraTransform和trackingStatus)。参考 InputFrameSink

注意:camera支持针孔和鱼眼相机模型,使用鱼眼相机性能会受影响。

bufferRequirement

C#

public virtual int bufferRequirement()

当前组件占用camera buffer的数量。

create

C#

public static DenseSpatialMap create()

创建DenseSpatialMap对象。

start

C#

public virtual bool start()

开始重建或从暂停中恢复,继续重建。

stop

C#

public virtual void stop()

暂停重建过程。调用start来继续重建过程。

close

C#

public virtual void close()

关闭重建过程。close之后不应继续使用。

getMesh

C#

public virtual SceneMesh getMesh()

获取 SceneMesh 类型的mesh管理对象。其中的内容会在调用 DenseSpatialMap.updateSceneMesh 函数之后自动更新。

updateSceneMesh

C#

public virtual bool updateSceneMesh(bool updateMeshAll)

获取最近更新的mesh,保存到由 DenseSpatialMap.getMesh 得到的 SceneMesh 对象中。

参数updateMeshAll指明是进行full update还是incremental update。当updateMeshAll为True时进行full update,所有的mesh都会保存到 SceneMesh 中;当updateMeshAll为False时进行incremental update,只保存最近更新的mesh到 SceneMesh 中。

进行full update将占用额外的时间和内存空间,导致性能下降。