如何在ARKit 3.0中启用“景深”选项?

3
在苹果公司的ARKit 3.0 演示中,展示了景深效果。我试图找到相关文档,但是没有找到如何启用此功能的说明。
我发现启用运动模糊噪声颗粒效果很容易。基本上,在Objective-C中设置一个标志即可。
scnview.rendersMotionBlur = true;

但是我找不到关于景深效果的任何内容。
这是开发人员尚未暴露的东西吗?
1个回答

2

景深(Depth Of Field) 是RealityKit和SceneKit框架中的后处理渲染器功能。由于ARKit不负责渲染,因此在ARKit中没有景深

在RealityKit中,DoF默认为开启状态

景深是全新的RealityKit伴侣框架的选项之一。 ARCamera的景深通过ARView.RenderOptions基于iOS设备功能激活和停用。如果您的设备支持,它将默认处于ON状态。要关闭它,您需要使用disableDepthOfField全局类型属性:

static let disableDepthOfField: ARView.RenderOptions

RealityKit文档:禁用所有虚拟内容的景深效果。

在SceneKit中,景深默认关闭

SceneKit框架中,虚拟相机有一个wantsDepthOfField实例属性。

var wantsDepthOfField: Bool { get set }


let nonAR_Camera = SCNCamera()
nonAR_Camera.wantsDepthOfField = true
nonAR_Camera.focusDistance = 1.5        // distance in meters
nonAR_Camera.fStop = 4.0

SceneKit文档:一个布尔值,它决定了SceneKit是否为相机渲染景深模糊效果。

注:深度-of-field blur effects 指的是“景深模糊效果”。

感谢您提供的出色答案。所以,确认一下,使用Scenekit和ARSCNView没有办法启用景深吗? - alex papa
SceneKit提供了景深效果,但在ARKit 2.0中无法使用。虽然我相信可以通过AVFoundation框架启用ARKit 2.0的景深效果,但这并不容易。 - Andy Jazz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接