ARKIT ARCamera zFar

时间:2017-07-25 16:08:05

标签: arkit arcamera

任何人都知道如何更改zFar或ARKIT ARCamera? 或者获取它的当前值。

我有一个非常大的模型被剪裁。我认为。 在搅拌机中我遇到了同样的问题并通过在Frustum上设置远值来修复它。

我可以为每个相机框架创建投影矩阵,但无法设置它。

    func session(_ session: ARSession, cameraDidChangeTrackingState camera: ARCamera) {
        textManager.showTrackingQualityInfo(for: camera.trackingState, autoHide: true)

        let projectionMatrix: matrix_float4x4 = camera.projectionMatrix(withViewportSize: camera.viewport.size,
                                                                   orientation: .portrait,
                                                                   zNear: 0.1,
                                                                   zFar: 5000)


        //ERROR - readonly
        camera.projectionMatrix = matrix_float4x4


...

1 个答案:

答案 0 :(得分:1)

ARCamera与渲染3D虚拟内容无关。正如其文档所述,它只是关于AR会话中捕获的视频帧的相机位置和成像特征的信息。"也就是说,它提供的数据可以帮助您设置用于渲染的任何技术(即SceneKit,使用Metal的自定义渲染器等)。

camera.projectionMatrix(...)方法是该信息提供角色的一部分 - 它使用ARKit知道的物理设备相机的方向,以及您提供的zNear和zFar值,来构建您可以使用的矩阵你的渲染器。

如果您正在使用SceneKit,则可以将该矩阵传递给SCNCamera。 (您可能需要从simd_float4x4转换为SCNMatrix4。)如果您正在使用其他渲染器,则可以在那里使用该矩阵。