菜鸟教程小白 发表于 2022-12-12 15:12:27

swift - 如何在 ARKit 3.0 中启用 `Depth of Field` 选项?


                                            <p><p>在 ARKit 3.0 <a href="https://developer.apple.com/videos/play/wwdc2019/604/" rel="noreferrer noopener nofollow">demo</a> 中苹果公司提出了<code>景深</code>效果。我试图找到这方面的文档,但我找不到我们应该如何启用它。</p>

<p>我发现启用 <a href="https://developer.apple.com/documentation/arkit/arscnview/3182993-rendersmotionblur" rel="noreferrer noopener nofollow">motion blur</a> 很容易和 <a href="https://developer.apple.com/documentation/arkit/arscnview/3255193-renderscameragrain" rel="noreferrer noopener nofollow">noise grain</a>效果。基本上,您在 Objective-C 中设置了一个这样的标志</p>

<pre><code>scnview.rendersMotionBlur = true;
</code></pre>

<p>但我找不到景深效果。</p>

<p>这东西还没有暴露给开发者吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p><strong><code>Depth Of Field</code></strong> 是 RealityKit 和 SceneKit 框架的后处理渲染器功能。 ARKit 中没有 <code>Depth Of Field</code>,因为 ARKit 不负责渲染。</p>
<h2>在 RealityKit 中,景深默认开启</h2>
<p><strong><code>Depth Of Field</code></strong> 是全新的<strong>RealityKit</strong> 配套框架的选项之一。 ARCamera 的景深通过 <code>ARView.RenderOptions</code> 基于 iOS 设备功能进行激活和停用,如果您的设备支持它,则默认为 <code>ON</code>。要将其 <code>OFF</code> 您必须使用 <code>disableDepthOfField</code> 全局类型属性:</p>
<pre><code>static let disableDepthOfField: ARView.RenderOptions
</code></pre>
<blockquote>
<p><em><strong>RealityKit Documentation</strong></em>: Disable the depth of field effect for all virtual content.</p>
</blockquote>
<h2>在 SceneKit 中,景深默认是关闭的</h2>
<p>在 <strong>SceneKit</strong> 框架中,有一个用于虚拟相机的 <code>wantsDepthOfField</code> 实例属性。</p>
<pre><code>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
</code></pre>
<blockquote>
<p><em><strong>SceneKit Documentation</strong></em>: A Boolean value that determines whether SceneKit renders depth-of-field blur effects for the camera</p>
</blockquote></p>
                                   
                                                <p style="font-size: 20px;">关于swift - 如何在 ARKit 3.0 中启用`Depth of Field` 选项?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/57137701/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/57137701/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: swift - 如何在 ARKit 3.0 中启用 `Depth of Field` 选项?