
Heute werden wir mit Microsoft Hololens-Brillen in den Bereich Spatial Awareness einsteigen und über die Entwicklung von Windows Mixed Reality (WMR) sowie darüber sprechen, was von der zweiten Generation zu erwarten ist.
, 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
, :

, : :
:
Wiki Unity , . MarkGX 2011 ( ). laplacianFilter
, :
Vector3[] sv
;int[] t
– , . ( ).
() . :
: , , , .
.
, , 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).
() .
:
– . , , , :
, :
.
. .
, . «» .
:

, ( ) «» .
Hololens , . , , , .
Extents
, , .
, , (, Azure Kinect Snapdragon). .