3D mesh
功能点介绍
主要功能函数
函数名 | 返回值 | 参数类型 | 参数 |
---|---|---|---|
StARkitStartSpatialMesh | EStARkitCode | 无 | 无 |
StARkitStopSpatialMesh | EStARkitCode | 无 | 无 |
StARkitClearSpatialMesh | EStARkitCode | 无 | 无 |
StARkitSaveFinalSpatialMesh | EStARKitCode | string | meshPath:保存文件路径。 |
string | simplifyMeshPath: | ||
StARkitGetFinalSpatialMesh | EStARkitCode | string | meshPath:存储的数据文件路径。 |
SStARkitMeshData | meshData:读取的文件数据。 | ||
StARkitGetBlockMesh | EStARkitCode | SStARkitMeshData[] | meshData:拿到的可以直接用于画mesh的数据。 |
SStARkitMeshData
1)命名空间:Lenovo.stARkit.Toolkit.Utilites.Definitions。
2)简介:这是用来画Mesh的数据的集合,FindPlane和SpatialMesh的数据最后会整合后为SStARkitMeshData,这里面的顶点数组和三角数组可以用来直接画Mesh。
3)属性:
属性名 | 类型 | 说明 |
---|---|---|
MeshID | uint | 空间Mesh的编号,根据这个ID来判断哪个部分的Mesh数据更新了。 |
MeshVerSion | uint | Mesh数据的更新号。 |
Vertices | Vector3[] | Mesh的顶点数组。 |
Triangles | int[] | Mesh的三角面排列数组。 |
plane | SStARkitPlaneData | 当Mesh是FindPlane的数据时包含一个中心点和法线信息。 |
SBlockMeshInfo
1)命名空间:Lenovo.stARkit.Toolkit.Utilites.Definitions。
2)简介:这是SpatialMesh的mesh的数据信息的结构体,这个结构体包含了顶点个数和三角面个数,和SMeshFaceTriangleIndex,SMeshVertex配合一起使用。
3)属性:
属性名 | 类型 | 说明 |
---|---|---|
MeshID | uint | 空间Mesh的编号,根据这个ID来边帮那个部分的Mesh数据更新了。 |
MeshVersion | uint | Mesh数据的更新号,当此编号发生变化,表示数据发生了变化。 |
MeshVertexCount | uint | 此次mesh数据的顶点个数。 |
MeshFaceCount | uint | 此次mesh数据的三角面个数。 |
SMeshFaceTriangleIndex
1)命名空间:Lenovo.stARkit.Toolkit.Utilites.Definitions。
2)简介:这是SpatialMesh的三角面信息的结构体,表示哪3个顶点组成一个三角面,和SBlockMeshInfo,SMeshVertex配合使用。
3)属性:
属性名 | 类型 | 说明 |
---|---|---|
v0 | uint | 三角面的第一个顶点。 |
v1 | uint | 三角面的第二个顶点。 |
v2 | uint | 三角面的第三个顶点。 |
SMeshVertex
1)命名空间:Lenovo.stARkit.Toolkit.Utilites.Definitions。
2)简介:这是SpatialMesh的顶点信息结构体,表示一个顶点在世界坐标系下的位置,和SBlockMeshInfo,SMeshFaceTriangleIndex配合使用。
3) 属性:
属性名 | 类型 | 说明 |
---|---|---|
x | float | 顶点X轴的坐标 |
y | float | 顶点Y轴的坐标 |
z | float | 顶点Z轴的坐标 |
功能点样例
3D mesh Demo是空间重建功能展示,需要设备具有TOF模组。
选择Assets/stARkit/Lenovo.stARkit.SDK/Tutorial/SpatialMesh/Scene/SpatialBlockMeshExample,依照上面的Android Build的步骤出一个APK。
将Build好的apk在设备中安装好后运行应用。
运行起来后将看到有4个选项按钮在视野前方并会跟随头动,使用gaze对这些按钮进行操作。
Start Scan Mesh : 开启空间扫描功能,函数的调用结果会在4个按钮下方的第一个显示栏显示,根据显示内容查看函数调用情况。如果函数调用成功了,那么每帧都会去获取数据,但不是每次都有数据更新的,数据函数的结果会在最下方的信息栏显示,最后的数字表示拿到Mesh碎片的个数。
Stop Scan Mesh : 关闭扫描功能,函数的调用结果会在4个按钮下方的第一个显示栏显示,根据显示内容查看函数调用情况。
Save Final Mesh : 将扫描到的结果全部保存下来,现在保存的文件格式raw,当需要时可以调用加载FinalMesh的函数读取显示。函数的调用结果会在4个按钮下方的第一个显示栏显示,根据显示内容查看函数调用情况。
Clear Cache Mesh : 清除当前缓存的数据。函数的调用结果会在4个按钮下方的第一个显示栏显示,根据显示内容查看函数调用情况。
Save Final Mesh 后光标点击Mesh,检测到Mesh的碰撞体会生成Cube。
.png)