الوعي المكاني: ما الذي يمكن أن تفعله نظارات Hololens؟


اليوم ، سنقفز في مجال الوعي المكاني مع نظارات Microsoft Hololens ونتحدث عن تطوير Windows Mixed Reality (WMR) ، وكذلك ما يمكن توقعه من الجيل الثاني.


, Hololens Unity Mixed Reality Toolkit (MRTK).


UWP Microsoft.


Hololens?


Hololens – (Mixed Reality), (Spatial Awareness). Microsoft . EasyAR SDK 4.0 Sparse & Dense SpatialMap, .


Microsoft «» (25 ): Scene Understanding SDK.


, Spatial Understanding, Holotoolkit 2017.4.1.0 ( – MRTK) Unity 2017.4. – «How-To: Use Spatial Understanding to Query your Room with HoloLens».


, Hololens .


«» Hololens?


(: )


Hololens ToF- .
. , , Hololens ( ):



Hololens Spatial Awareness


– Unity, 3D-. .


«» (entry) , . Hololens : , , . Hololens .


( 5–10 , / ). . , , , .



Spatial Awareness MRTK Unity.
MRTK Microsoft. , Unity , github.


:


  • Observation Extents = 1.0f – ;
  • TPM = 600 – (scanning density). , ( );
  • Surface Update Time = 0.3f () – .

:




, Unity:


  • mesh.vertices Vector3 []– ;
  • mesh.triangles int []– , ;
  • mesh.uv Vector2[]– UV-.
    vertices triangles, :


, : :


  • i;
  • pi(x,y,z);
  • pi, i:

pi=1|Adj(i)|jAdj(i)qj


:


  • Adj(i)– , pi;
  • qj– , pi.

Wiki Unity , . MarkGX 2011 ( ). laplacianFilter, :


  • Vector3[] sv;
  • int[] t – , . ( ).

() . :


itt[k],t[k+1],t[k+2]: i, , , .

.


, , x, y, z, .


:


    public static Vector3[] laplacianFilter(Vector3[] sv, int[] t)
    {
        Vector3[] wv = new Vector3[sv.Length];
        List<Vector3> adjacentVertices = new List<Vector3>();

        float dx = 0.0f;
        float dy = 0.0f;
        float dz = 0.0f;

        for (int vi=0; vi< sv.Length; vi++)
        {
            adjacentVertices = MeshUtils.findAdjacentNeighbors (sv, t, sv[vi]);

            if (adjacentVertices.Count != 0)
            {
                dx = 0.0f;
                dy = 0.0f;
                dz = 0.0f;

                for (int j=0; j<adjacentVertices.Count; j++)
                {
                    dx += adjacentVertices[j].x;
                    dy += adjacentVertices[j].y;
                    dz += adjacentVertices[j].z;
                }

                wv[vi].x = dx / adjacentVertices.Count;
                wv[vi].y = dy / adjacentVertices.Count;
                wv[vi].z = dz / adjacentVertices.Count;
            }
        }
        return wv;
    }

:



, «» . , . , .


(HC-algorithm).
piqi() oidi.


bi:


bi:=pi(αoi+(1α)qi)


αdi. , di, , :


di:=1|Adj(i)|jAdj(i)bj


i, biβ[0;1]:


di:=(βbi+1β|Adj(i)|jAdj(i)bj)


β.


. .

, (α=0). «» β=0,5.


:




, ( ) «» .


Hololens , . , , , .


Extents , , .


, , (, Azure Kinect Snapdragon). .


All Articles