Technik Welt tracking-Leistung wird beeinflusst durch die Ressourcen-Einschränkungen
Während der Ausführung einer ARKit Sitzung mit Welt-tracking aktiviert ist, wird der Xcode-Konsole zeigt log-Meldungen, die über (ich vermute: reduziert) tracking-Leistung, obwohl
-
in der AR-Sitzung im Normalen tracking-Zustand,
-
Ich bin mit dem Gerät in einem gut beleuchteten Raum mit viel "features" zu erkennen, und
TLDR: ich möchte verstehen, was Sie verursacht, welche Auswirkungen Sie haben und wie Sie Sie vermeiden, oder (re -) agieren auf Sie, wenn Sie nicht auftreten—NB. nicht einfach verstecken Sie den Fehler.
[Technique] World tracking performance is being affected by resource constraints [0]
[Technique] World tracking performance is being affected by resource constraints [1]
Die Console-app zeigt, dass diese sind die kommenden aus der Bibliothek ARKit und fallen in den logging-Kategorie Technik.
Obwohl Sie klingen wie Warnungen, die Konsole app zeigt Ihre Art, wie Fehler.
Als erwartet, während mit Hilfe Welt verfolgen, die Konsole app zeigt eine Menge von CoreMotion
logs um die Zeit der Fehler, aber diese Zeilen scheinen nicht zu enthalten Fehler, Warnungen oder andere info, die mir hilft, zu diagnostizieren, was Los ist.
Moment ist der Fehler in der log gibt es keine Delegierten Rückrufe, aber mit der Zeit (irgendwas zwischen 5 Sekunden oder 50 Sekunden) der Bildschirm friert ein, mit der callback-Sitzung fehlgeschlagen:
Error Domain=com.apple.arkit.error Code=200 "World tracking failed." UserInfo={NSLocalizedDescription=World tracking failed., NSLocalizedFailureReason=World tracking cannot determine the device's position.}
Den ARKit Quelle/Dokumentation bietet keine Hinweise auf das, was "resource constraints" möglicherweise verursacht die Unfähigkeit zu bestimmen Sie die position des Geräts, der es gerade liest:
Welt-tracking hat einen schwerwiegenden Fehler aufgetreten.
Ich versucht habe (ohne Erfolg) um die Warnungen zu stoppen angezeigt durch:
-
zurücksetzen der session-tracking: immer noch Fehler,
-
setzt die Sitzung mit der Entfernung aller
ARAnchor
s: immer noch Fehler, -
deaktivieren Flugzeug-Erkennung (sobald Sie nicht mehr benötigt wird): immer noch Fehler,
Anhalten der AR-Sitzung verstummen die Warnungen (macht Sinn, da es bedeutet, dass das Gerät Stoppt tracking seine Bewegung während der Pause ist), aber bei Wiederaufnahme der Sitzung, die Warnungen zurück.
Wenn die session geschlossen wird und neu zu erstellen (d.h. entlassen VC und neu), zwar nicht mit bewegt die Kamera (oder die Beleuchtung geändert) das problem nicht immer wieder auftreten.
Meine beste Vermutung ist, dass blinkt TL-Lichter sind die Ursache für die tracking-performance-Warnungen, da Apple Erklärung, wie die Welt tracking funktioniert:
... visual-inertial odometrie. Das Verfahren kombiniert Informationen aus dem iOS-Gerät die motion-sensing-hardware mit dem computer-vision-Analyse der Szene sichtbar auf das Gerät die Kamera. ARKit erkennt auffällige Merkmale in der Szene, Bild, tracks, die Unterschiede in den Positionen der diese Funktionen über video-frames, und vergleicht diese Informationen mit motion-sensing-Daten.
(iPhone 6S, iOS 11 beta 4, keine anderen apps im hintergrund laufen)
Fragen:
-
Was ist der Unterschied zwischen
[0]
und[1]
? -
Was kann die Ursache für diesen Fehler?
-
Welche Auswirkungen auf Sie haben, während die
ARSession
ist nicht gescheitert (noch)? Ich nehme an, wir werden sehen, "nervös", Modelle wie der Welt-Koordinaten durch den mitgelieferten Rahmen-updates sind nicht korrekt—NB. nach dem zurücksetzen/beendenARAnchor
tracking der Fehler immer noch aufgetreten ist. -
Werden wir wissen, wenn die AR-Sitzung ist zu Versagen, oder wird es unerwartet sein? (Wieder, die
ARSession
fehl nicht sofort nach der tracking-Status ändert sich auf "begrenzt") -
Gibt es eine Möglichkeit, damit umzugehen, z.B. zu befreien, diese genannten "resource constraints"—oder sogar verhindern, dass Sie von dem auftreten überhaupt?
- Einfach öfters mal mit dem Gerät verbunden, um ein Xcode debug-Sitzung wird sich drastisch verlangsamen, um so mehr über wifi. Probieren Sie die app vom Springboard zwar nicht mit Xcode und sehen, wenn Sie keinen Bildschirm einfrieren Fragen. Sie können dann sogar die Verbindung zu Xcode, starten Sie den Mac-Konsole app, und überprüfen Sie das system.log, um zu sehen, ob diese Fehler protokolliert wurden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erlauben, nur Portrait-Gerät Orientierung gelöst dieser Fehler für mich.
Ich denke, das ist xcode 9.1 Fehler. Wenn Sie verwenden SceneKit: finden Sie, wo Sie gesetzt werden .backgroundColor = "Ihre Farbe" für ARSCNView oder Unterklasse. Kommentar diese Zeile und clean-Projekt.
Dieser Fehler passierte mir, weil ich manuell Hinzugefügt werden, ein view controller im storyboard und hat eine
ARSKView
zu. Dieser fügt es als Kind zu einemUIView
die standardmäßig einer untergeordneten Ansicht in eineUIViewController
. Daher unterstützt landscape-und portrait-Orientierung, die ich hatte, um Auto-layout-Einschränkungen, die für einige Grund ausgelöst dieser Fehler.Als ich sah auf die Lager AR-Projekt, das
ARSKView
ist eine sofortige Kind von der view-controller und unterstützt alle Größen und Orientierungen aus der box ohne auto-layout-constraints. Wenn ich es auf diese Weise, die Fehler verschwunden.Ich denke, das ist eine Art Tasche, da dieses Problem passiert bei mir nur, wenn ich Einschränkungen wenn ich versuche zu po etwas.
Wenn ich deaktivieren, zum Beispiel, Einschränkung unten mein code funktioniert auch wie erwartet.