2017-08-01 5 views

Antwort

2

Siehe the docs for ARLightEstimate.ambientIntensity:

Dieser Wert auf der internen Belichtungskorrektur der Kameraeinrichtung

Mit anderen Worten basieren, wenn Sie die Gerätekamera verwenden örtliche Lichtverhältnisse zu schätzen und Wenn Sie ARKit nicht anderweitig verwenden, sollten Sie besser die camera APIs verwenden. (Zum einen sind diese APIs auf allen iOS 11-Geräten und einigen früheren iOS-Versionen verfügbar, anstatt die steilen OS/Hardware-Anforderungen von ARKit zu erfüllen.)

Ein kurzer Überblick darüber, was Sie dort tun müssen:

  1. eine AVCaptureSession einrichten und wählen Sie die Kamera AVCaptureDevice , die Sie wollen. Es kann sein, dass Sie einen Video/Foto-Aufnahmeausgang anschließen müssen (was in Ihrem Fall meistens nicht verwendet wird).
  2. Starten Sie die Capture-Sitzung.
  3. Verwenden Sie KVO, um die Eigenschaften von Belichtung, Temperatur und/oder Weißabgleich unter AVCaptureDevice zu überwachen.

Sie finden (ältere, ObjC) -Code, die alle diese (und noch viel mehr, so dass Sie die Teile extrahieren benötigen, die für Sie relevant sind) in Apples AVCamManual sample code.

1

Sie kein ARSCNView brauchen, aber Sie brauchen eine zu laufen haben ARSessionhttps://developer.apple.com/documentation/arkit/arsession

Sobald Sie, dass einrichten können Sie currentFrame nennen, die Ihnen eine ARFrame geben, die eine lightEstimate Eigenschaft hat, die die ambientIntensity enthält schätzen.

+0

Danke, ich habe es geschafft, es funktioniert (auch wenn der Wert ein bisschen komisch ist). Ich verwendete 'self.arConfig = [ARWorldTrackingSessionConfiguration new]; self.arConfig.lightEstimationEnabled = YES; ' Und ich setze die Erlaubnis für die Verwendung der Kamera. –

+0

Leider scheint es, dass es nicht möglich ist, es mit der Frontkamera zu verwenden, die ich brauche. –