2017-08-04 3 views
1

Ich bin neu in AR und ich möchte ein quadratisches oder rechteckiges Overlay basierend auf der angegebenen Breite und Höhe über die Kamera mit iOS 11 ARKit-Scenekit erstellen.Wie erstellt man ein quadratisches oder rechteckiges Overlay (Ebene) über der Kamera mit gegebener Breite und Höhe programmgesteuert mit Scenekit (ARKit) iOS 11?

Ich versuchte mit https://developer.apple.com/sample-code/wwdc/2017/PlacingObjects.zip und es zeigt ein Fokusquadrat in der Mitte mit dem wir jedes 3D-Modell positionieren können. Aber es ist wirklich instabil.

Ist es möglich, eine Ebene ähnlich den Fokus Platz in dem obigen Beispiel von der Größe des 3D-Modells auf Basis zu schaffen, die wir so vergeben werden, dass

1) Wir, das Flugzeug ziehen überall

2) Drehen Sie das Flugzeug

3) Setzen Sie ein 3D-Modell über den Fokus Quadrat (Ebene)

Etwas ähnliches zu diesem http://www.madewitharkit.com/post/163259313638/arkit-furniture-dropping-app-by

+0

Ja, all dies möglich ist. Was hast du bisher versucht und wo hast du Probleme? – PDK

+0

@PDK Ich versuchte, das angegebene Fokusquadrat im Beispielcode zu ändern, aber es funktioniert nicht wie erwartet. Kannst du mir bitte sagen, wie man in SCNNode ein Quadrat oder Rechteck (leeres Rechteck oder nur Rechteck) erzeugt und horizontal auf die X-Achse legt, wie in http://www.madewitharkit.com/post/163259313638/arkit angegeben -Möbel-Drop-App-by-Demo. – yaali

+0

Versuchen Sie, Ihre ursprünglichen Posts zu aktualisieren, indem Sie (genau) erklären, was Sie bisher getan haben und was das Ergebnis war (zB eine Fehlermeldung - und wie Sie keine Lösung dafür finden konnten) und vergessen Sie nicht, welche zu nennen Quellen, die Sie bereits verwendet haben. Wenn Sie sich nicht sicher sind, lesen Sie bitte _ (falls noch nicht geschehen): https://stackoverflow.com/help/asking und https://stackoverflow.com/help/how-to-ask – PDK

Antwort

2

Ein einfacher Weg, um Ihren Bedarf zu implementieren: einem Rechteck-Symbol, vorbereiten und ein SCNNode mit dem Verfahren erzeugen:

func geometryNodeFromImage(named name: String, width: CGFloat, height: CGFloat, length: CGFloat) -> SCNNode { 
    let box = SCNBox(width: width, height: height, length: length, chamferRadius: 0) 

    let rectangleMaterial = SCNMaterial() 
    rectangleMaterial.diffuse.contents = UIImage(named: name) 
    box.materials = [rectangleMaterial] 

    return SCNNode(geometry: box) 
} 
Verwandte Themen