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将占用额外的时间和内存空间,导致性能下降。