有人知道如何更改zFar或ARKIT ARCamera吗?或者获取它的当前值。
我有一个非常大的模型,正在被裁剪。我认为。在搅拌器中,我有同样的问题,并通过设置Frustum的far值来修复它。
我可以为每个摄像机帧创建一个投影矩阵,但不能设置它。
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
...发布于 2017-07-26 02:37:11
ARCamera与渲染你的3D虚拟内容没有任何关系。正如它的文档所说,它只是“关于AR会话中捕获的视频帧的摄像头位置和成像特征的信息”。也就是说,它提供的数据可以帮助您设置用于渲染的任何技术(例如SceneKit、使用金属的自定义渲染器等)。
camera.projectionMatrix(...)方法是提供信息的角色的一部分,它使用ARKit了解的有关物理设备摄影机方向的信息,以及您提供的zNear和zFar值,来构建可在渲染器中使用的矩阵。
如果您使用的是SceneKit,则可以将该矩阵传递给SCNCamera。(您可能需要从simd_float4x4转换为SCNMatrix4。)如果您使用的是其他渲染器,则可以在那里使用该矩阵。
https://stackoverflow.com/questions/45308495
复制相似问题