菜鸟教程小白 发表于 2022-12-13 03:17:27

ios - 如何在 Scenekit/ARKit 中使用 shadowMode=deferred 移除灯光?


                                            <p><p>我有 ARKit 场景,我在头顶放置聚光灯以转换阴影。 </p>

<p>因为我想在透明平面上转换阴影,所以我在聚光灯上将属性 <code>shadowMode</code> 设置为延迟 (<a href="https://developer.apple.com/documentation/scenekit/scnshadowmode/1523758-deferred" rel="noreferrer noopener nofollow">https://developer.apple.com/documentation/scenekit/scnshadowmode/1523758-deferred</a>)。</p>

<p>这可行,但是当我再次移除聚光灯时,应用程序崩溃:</p>

<p><code> 错误:影子节点未注册</code><br/>
<code> 错误:_willExecuteDeferredShadows - 没有光</code></p>

<p>当 shadowMode 未设置时,应用程序不会崩溃(默认为“前进”)</p>

<p>我怎样才能在不崩溃的情况下移除灯?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我发现我需要在删除之前在包含灯光的节点上设置 node.hidden=Yes。这证明了崩溃:</p>

<pre><code>if(node.light) {
node.hidden = YES;
;
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何在 Scenekit/ARKit 中使用 shadowMode=deferred 移除灯光?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/47270056/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/47270056/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何在 Scenekit/ARKit 中使用 shadowMode=deferred 移除灯光?