我正在从 Xcode 的默认 AR 项目开始做这个增强现实项目。
我需要知道 ARKit 使用的相机的焦距。
该页面很好地定义了焦距:
焦距,通常以毫米(mm)表示,是对摄影镜头的基本描述。它不是对镜头实际长度的测量,而是计算从光线会聚形成物体清晰图像的点到相机焦平面处的数字传感器或 35mm 胶片的光学距离。镜头的焦距是在镜头聚焦于无限远时确定的。
据说,苹果提供了这种称为内在函数的相机矩阵,定义为
据苹果公司称,
值 fx 和 fy 是像素焦距,对于方形像素来说是相同的。值 ox 和 oy 是主点距图像帧左上角的偏移量。所有值均以像素表示。
fx我得到和的相同数字fy,即1515.481。
要获得以毫米为单位的实际焦距,
F(mm) = F(pixels) * SensorWidth(mm) / ImageWidth (pixel)但我没有传感器尺寸。FC = fx/sx = fy/sy,其中sx和sy是图像尺寸的宽度和高度,我想会给我两个数字,因为fx= fy... 这又回到了零平方。在 iPhone 11 上,ARCamera 捕获以下尺寸的帧:1920x1440,至少酒店报告了这个数字camera.imageResolution。
ARCamera以精神理智的名义,有没有办法获得所使用的焦距RealityKit?
我使用 Reality Composer 创建了一个非常简单的场景(“SpeechScene”),其中一个语音标注对象(“Speech Bubble”)锚定在一个Face锚点上。
我已通过以下方式将此场景加载到代码中:
let speechAnchor = try! Experience.loadSpeechScene()
arView.scene.anchors.append(speechAnchor)
let bubble = (arView.scene as? Experience.SpeechScene)?.speechBubble
Run Code Online (Sandbox Code Playgroud)
它按预期呈现。但是,我想动态更改此现有实体的文本。
我在这里发现了一个类似的问题,但我不清楚如何引用meshResourcevanillaRealityKit.Entity对象的属性。
这可能吗?谢谢!