2017-08-28 3 views
0

Je travaille sur un COP en utilisant l'échantillon fourni par apple https://developer.apple.com/sample-code/wwdc/2017/PlacingObjects.zip.Comment trouver des obstacles sur une surface horizontale en utilisant ARKIT d'iOS 11 (Scenekit)?

En ce moment, placer l'objet fonctionne correctement après avoir détecté la surface. Mais quand je déplace l'objet de la surface détectée vers un autre espace comme des murs ou un obstacle, il se superpose à l'objet 3D.

Est-il possible de détecter les obstacles tout en plaçant/déplaçant l'objet 3D à travers l'appareil photo? Y a-t-il une sorte d'API disponible dans ARKit pour trouver l'obstacle dans la surface?

Si ce n'est pas une solution de contournement ou un calcul que nous pouvons faire pour trouver l'obstacle/mur et laisser l'utilisateur ne pas placer/déplacer l'objet au-dessus/au-delà de l'obstacle/mur?

+1

En termes de murs et autres, Arkit est encore incapable de détecter les surfaces verticales. Il peut donc y avoir un problème avec la détection de ceux-ci, ou même des surfaces non horizontales. Les seuls «obstacles» qu'il pourrait détecter sont les autres objets virtuels que vous avez placés et vous pouvez les gérer en traitant les collisions et en leur donnant des corps physiques. Malheureusement, je ne pense pas que vous serez capable de faire ce que vous voulez –

+0

@AlanS Y a-t-il un moyen de trouver si l'espace de l'objet virtuel sur lequel il est placé est une surface horizontale ou non? – yaali

+0

Désolé je n'ai pas particulièrement compris. Voulez-vous dire l'espace sur l'objet ou l'espace où l'objet est fini? Pour l'espace sur l'objet je ne sais pas trop comment vous pouvez vérifier que, pour l'espace sous un objet, vous pouvez utiliser essentiellement la détection de plan horizontal. –

Répondre

1

La réponse courte à ce stade est non, malheureusement. La détection de plans verticaux ou d'objets dans une scène est assez difficile. Ma compréhension est qu'Apple travaille sur la détection de plan vertical, et qu'il y a quelques startups qui font la détection d'objets.

La meilleure option sera d'attendre 6d.ai, car c'est ce sur quoi ils travaillent (bien qu'ils soient en furtivité si difficile à dire exactement). Si vous avez une expérience Core ML, vous pouvez utiliser un modèle de détection d'objet (trouver un modèle tiers) pour reconnaître des objets dans une scène et l'utiliser comme proxy pour la géométrie hors limites. Il y a aussi Matroid qui fournissent des capacités de détection/suivi d'objets.

Les exemples suivants ne sont pas spécifiques à ARKit/iOS, mais pourraient vous être utiles plus tard.

Vuforia a le soutien à la compréhension de la scène: https://library.vuforia.com/articles/Training/Getting-Started-with-Smart-Terrain

Hololens a en quelque sorte de soutien aussi bien: https://elbruno.com/2017/04/21/hololens-spatial-understanding-vs-spatial-mapping-and-a-step-by-step-on-how-to-use-it/