SpatialMapping

SpatialMapping

Scripts qui exploitent SpatialMapping fonctionnalités connexes.

  1. Activer le « SpatialPerception » capacité dans Paramètres du lecteur -> de Windows Store -> Paramètres de publication -> Capacités.
  2. Si vous utilisez les composants RemoteMapping, vous devrez également définir la InternetClientServer, PrivateNetworkClientServer, et les capacités de microphones.

IMPORTANT : Assurez – vous S’il vous plaît ajouter la capacité de perception de l’ espace dans votre application, dans l’ unité sous
Edit -> Paramètres du projet -> Player -> Paramètres pour Windows Store -> Paramètres de publication -> Capacités
ou dans vos capacités Visual Studio Package.appxmanifest.

Plugins

addon PlaneFinding qui peut être utilisé pour trouver des surfaces planes (ie: murs / planchers / tables / etc) dans les données de maillage retournées par la cartographie spatiale.

préfabriqués

Les prefabs suivants rendent facile d’accéder et de visualiser les données de cartographie spatiale dans les HoloLens ou dans l’Unité Editor rapidement.

RemoteMapping.prefab

Utiliser avec SpatialMapping préfabriqué, il vous permet d’envoyer des mailles des HoloLens à l’unité et de sauvegarder / charger les mailles pour une utilisation ultérieure.

SpatialMapping.prefab

Base de préfabriqué qui vous permet de visualiser et de données de cartographie spatiale d’accès sur les HoloLens. Il peut également enregistrer / modèles de pièces de charge qui ont été capturés à partir du portail de périphériques Windows.

SurfacePlane.prefab

Helper préfabriqué qui doit être référencé par le composant SurfaceMeshesToPlanes pour classer les plans comme plancher, plafond, mur, etc pendant le traitement.

Scripts

Les scripts suivants vous donnent la possibilité d’accéder aux données spatiales de cartographie sur les HoloLens et charger des données spatiales de cartographie dans le Unity Editor.

ObjectSurfaceObserver.cs

A SpatialMappingSource qui charge les données de cartographie spatiale enregistrées à partir du portail de périphériques Windows.

RoomModel Le modèle de la pièce à utiliser lors du chargement des maillages dans l’ unité.

SpatialMappingManager.cs

Gère les interactions entre l’application et toutes les sources de données de cartographie spatiale (fichier, observateur, réseau).

PhysicsLayer La couche physique à utiliser pour toutes les données spatiales cartographie de maillage.

SurfaceMaterial Le matériau à appliquer lors du rendu des données spatiales cartographie de maillage.

DrawVisualMeshes Détermine si les mailles de cartographie spatiale seront rendus.

CastShadows Détermine si les mailles de cartographie spatiale peuvent projeter des ombres.

SpatialMappingObserver.cs

Ajoute et met à jour les données de cartographie spatiale pour toutes les surfaces découvertes par le SurfaceObserver en cours d’exécution sur les HoloLens.

TrianglesPerCubicMeter Niveau de détail à utiliser pour chaque maille trouvée par le SurfaceObserver.

Extents étendue du volume d’observation qui se dilatent hors de la position de la caméra.

TimeBetweenUpdates Temps d’attente (sec) avant de traiter les mises à jour de la SurfaceObserver.

SpatialMappingSource.cs

Génère et récupère des mailles à partir des données de cartographie spatiale provenant de l’objet source (fichier, observateur, réseau). SpatialMappingManager.cs gère la commutation entre les types de sources et d’interagir avec cette classe.

TapToPlace.cs

Script simple pour ajouter à un gameobject qui permet aux utilisateurs d’exploiter et de placer le gameobject le long de la maille de cartographie spatiale. Nécessite GazeManager, GestureManager et SpatialMappingManager dans la scène.

Scripts \ RemoteMapping

Les scripts suivants vous permettent d’envoyer des données spatiales de cartographie des HoloLens à l’Unité Editor et pour sauvegarder / charger les mailles pour une utilisation ultérieure.

FileSurfaceObserver.cs

A SpatialMappingSource qui charge les données de cartographie spatiale enregistrées au cours d’une séance de cartographie à distance.

MeshFileName Nom du fichier à utiliser lors de l’ enregistrement des données de maillage à partir des données de maillage réseau ou de surface de chargement dans l’ unité.

SaveFileKey Key à la presse lors de l’ exécution dans l’unité Editor pour sauver maillages qui venaient du réseau.

LoadFileKey Key à la presse lors de l’ exécution dans l’unité Editor pour charger des mailles qui ont été enregistrer à partir du réseau.

MeshSaver.cs

Classe statique qui peut lire et écrire maillage des données envoyées lors d’une session de cartographie à distance dans le fichier spécifié dans FileSurfaceObserver.cs.

RemoteMappingManager.cs

Permet l’envoi de maillages à distance de HoloLens à l’unité.

RemoteMappingKey La clé pour appuyer lors de l’ exécution dans l’éditeur Unity pour permettre la cartographie spatiale sur le réseau.

SendMeshesKeyword L’expression de parler lorsque vous êtes prêt à envoyer des mailles sur le réseau de HoloLens à l’ unité.

RemoteMeshSource.cs

Composant réseau qui fonctionne sur les HoloLens et peut envoyer des mailles à l’unité.

Serverip L’adresse IPv4 de la machine exécutant l’éditeur Unity.

ConnectionPort Le port réseau de la machine Unity qui recevra les données spatiales de cartographie des HoloLens.

RemoteMeshTarget.cs

objet SpatialMappingSource qui fonctionne dans l’éditeur Unity et de recevoir des données spatiales de cartographie des HoloLens.

Serverip L’adresse IPv4 de la machine exécutant l’éditeur Unity.

ConnectionPort Le port réseau de la machine , l’ unité qui recevra les données de maillage à partir des HoloLens.

SimpleMeshSerializer.cs

Classe statique qui convertit une unité de maille à un tableau d’octets. Utilisé par MeshSaver.cs pour sérialiser et désérialiser les données de maillage envoyés au cours d’une séance de cartographie à distance.

Scripts \ SpatialProcessing

Les scripts suivants vous permettent de traiter les données brutes de cartographie spatiale afin de trouver des avions, supprimer des sommets, etc.

PlaneFinding.cs

script Unity qui enveloppe le PlaneFinding DLL native. Utilisé par SurfaceMeshesToPlanes.cs.

RemoveSurfaceVertices.cs

Un composant de traitement spatial qui va supprimer tous les sommets de cartographie spatiale qui entrent dans les volumes englobants spécifiés.

BoundsExpansion Le montant, le cas échéant, d’élargir chaque volume bondissant par.

SurfaceMeshesToPlanes.cs

Un composant de traitement spatial qui peut trouver et créer des plans basés sur des maillages de cartographie spatiale.Utilise PlaneFinding.cs et requiert le plug-in de PlaneFinding.

ActivePlanes Collection de plans trouvés dans les données spatiales de cartographie.

SurfacePlanePrefab Une gameobject qui sera utilisé pour généreravions. Si aucun préfabriqué est fourni, un cube deunité primitive sera utiliséplace.

MinArea Surface minimale requise pour un avion pour être créé.

DrawPlanes masque de bits qui spécifie le type d’avions qui doivent être rendus (murs, planchers, plafonds, etc.).

DestroyPlanes masque de bits qui spécifie le type d’avions qui doivent être mis au rebut.

SurfacePlane.cs

Génère avions et les classe par type (mur, plafond, plancher, table, inconnue). Devrait être un composant sur le SurfacePlanePrefab utilisé par SurfaceMeshesToPlanes.cs.

PlaneThickness Quelle est l’ épaisseur de chaque plan devrait être.

UpNormalThreshold Seuil pour normals acceptables. Utilisé pour déterminer si un avion est horizontal ou vertical.

FloorBuffer Max distance du plan de plancher plus avant un plan horizontal sera classé comme une table.

CeilingBuffer Max distance du plus grand avion de plafond avant un plan horizontal sera classé comme une table.

WallMaterial Matériel à utiliser lors du rendu de types de plan de mur.

FloorMaterial Matériel à utiliser lors du rendu de types de plan de plafond.

TableMaterial Matériel à utiliser lors du rendu de types tableau d’avion.

UnknownMaterial Matériel à utiliser lors du rendu de types d’avion inconnus.

Shaders

Occlusion.shader

Un shader d’occlusion de base qui peut être utilisé pour occlure des objets derrière les mailles de cartographie spatiale.Utilisez SpatialMappingManager.SetSurfaceMaterial () pour utiliser ce matériel avec les données spatiales de cartographie. Si vous voulez créer une occlusion «fenêtre», une meilleure Shader à utiliser est WindowOcclusion.shader.

Wireframe.shader

Un shader de fil de fer de base qui peut être utilisé pour le rendu des maillages de cartographie spatiale. Utilisez SpatialMappingManager.SetSurfaceMaterial () pour utiliser ce matériel avec les données spatiales de cartographie.

Tests

PlaneFinding.unity

Pour utiliser cet exemple de code, chargez la scène PlaneFinding et appuyez sur Play. L’algorithme de PlaneFinding se déroulera dans une boucle. Passer à la vue de la scène pour voir une visualisation des plans trouvés. Le composant PlaneFindingTest expose quelques propriétés qui vous permettent de manipuler les paramètres de l’API PlaneFinding en temps réel et d’observer leur impact sur l’algorithme.

NOTE: Dans l’intérêt de la simplicité, ce script de test appelle les API PlaneFinding directement à partir du fil de l’ unité principale de mise à jour (). Dans une application réelle, les API PlaneFinding DOIVENT être appelées à partir d’ un fil d’arrière – plan afin d’éviter de caler le fil de rendu et de provoquer une baisse de la fréquence d’images.

RemoteMapping.unity

La scène RemoteMapping utilise le SpatialMapping et RemoteMapping prefabs pour envoyer des données de cartographie spatiale entre les HoloLens et l’application en cours d’exécution dans l’éditeur Unity. Pour exécuter ce test, vous devez d’abord ouvert 11000 de port sur votre pare-feu, puis définir l’adresse IPv4 de votre PC dans les composants ‘RemoteMeshSource’ ‘RemoteMeshTarget’ et. Vous pouvez ensuite créer et déployer des HoloLens. Une fois que vous voyez les mailles wireframe apparaissent dans vos HoloLens, appuyez sur le bouton «jouer» dans l’unité pour exécuter l’application dans l’éditeur. Veiller à ce que la «vue du jeu» a le focus, puis appuyez sur la ‘N’ clé (RemoteMappingKey) pour passer en utilisant le réseau comme la source de cartographie spatiale dans l’éditeur. Une fois que vous êtes sûr que vous avez un bon maillage, disent les ‘Envoyer Meshes’ (SendMeshesKeyword) pour envoyer les mailles des HoloLens à l’Unité Editor. Appuyez sur la touche ‘S’ (SaveFileKey) pour sauver le maillage à votre PC. Appuyez sur le bouton ‘play’ pour arrêter l’application de courir dans l’éditeur Unity. Maintenant, appuyez sur ‘play’ une fois de plus pour redémarrer l’application. Cette fois-ci, appuyez sur la touche «L» (LoadFileKey) pour charger le maillage que vous avez précédemment enregistré dans l’éditeur.

SpatialProcessing.unity

La scène de SpatialProcessing teste les deux scripts de traitement disponibles dans HoloToolkit: SufraceMeshesToPlanes et RemoveSurfaceVertices. Si en cours d’exécution dans l’éditeur, l’ObjectSurfaceObserver va charger le fichier SRMesh.obj défini dans l’objet SpatialMapping de la scène. Si vous ne possédez pas déjà un fichier, vous pouvez capturer l’un de la ‘3D View’ page du Portail de périphériques Windows. Si en cours d’exécution sur les HoloLens, les surfaces du monde réel seront analysés. Après 15 secondes, les mailles seront convertis en avions. Si un plan de sol est trouvé, le test va supprimer les sommets de mailles de surface qui tombent dans les limites de tout plan actif.

TapToPlace.unity

Cette scène est la configuration minimale pour utiliser le script TapToPlace. Il comprend GazeManager, GestureManager et SpatialMapping préfabriqué. BasicCursor préfabriqué est inclus pour la facilité d’utilisation. Il y a un cube dans la scène avec TapToPlace ajouté sur elle. Contemplez et appuyez sur le cube. Il se déplace le long du maillage de la cartographie spatiale basée sur le regard de l’utilisateur. Alors que le cube est en mode «placement», le maillage de la cartographie spatiale sera visible. Lorsque robinet est effectué à nouveau, le cube sera placé sur le maillage et le maillage ne sera plus visible.