【问题标题】:ARKIT ARCamera zFarARKIT ARCamera zFar
【发布时间】:2017-12-31 16:28:52
【问题描述】:

有人知道如何更换 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


...

【问题讨论】:

    标签: arkit arcamera


    【解决方案1】:

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

    camera.projectionMatrix(...) 方法是信息提供角色的一部分——它使用 ARKit 知道的关于物理设备摄像头方向的信息,加上你提供的 zNear 和 zFar 值,来构建一个可以在渲染器中使用的矩阵.

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

    【讨论】:

      猜你喜欢
      • 2017-12-20
      • 1970-01-01
      • 2017-12-18
      • 1970-01-01
      • 2019-12-21
      • 2018-06-26
      • 2019-12-12
      • 1970-01-01
      • 2019-02-07
      相关资源
      最近更新 更多