菜鸟教程小白 发表于 2022-12-11 19:00:06

swift - 具有多个用户的ARKit


                                            <p>与多个用户/设备一起使用Apple的新ARKit的最佳方法是什么?<br><br>似乎每个设备都可以分别了解自己的场景。到目前为止,我最好的猜测是使用原始特征点位置,并尝试在设备之间进行匹配以将不同的视图点粘合在一起,因为ARKit没有提供任何绝对参考引用。<br><br>===编辑1,我尝试过的事情===<br><br>1)特征点<br><br>我一直在玩耍,并且暴露了原始特征点,现在我确信在它们的当前状态下它们是死胡同:<br><li>它们不是原始特征点,它们仅公开位置,但通常不会在跟踪的特征点中找到任何属性</li><li>它们的实例化不会在帧之间继续,位置也不完全相同</li><li>通常会发生这样的情况,即当摄像机输入几乎没有变化时,报告的特征点变化很大,要么出现很多,要么消失很多。 </li><br>因此,总的来说,我认为尝试以某种有意义的方式使用它们,而不能够在一台设备(更不用说多个设备)内进行任何类型的良好点匹配是不合理的。<br>另一种方法是实现我自己的特征点检测和匹配,但是与其取代ARKit,还不如取代ARKit。<br><br>2)二维码<br><br>正如@Rickster所建议的那样,我还尝试了识别易于识别的对象(如QR码)并从该固定点获取相对参照更改(请参阅<a href="https://stackoverflow.com/questions/44579839/ios-revert-camera-projection" rel="noreferrer noopener nofollow">this question</a>)。这有点困难,这暗示我使用一些openCV来估计相机姿态。但更重要的是非常有限</p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p>现在,在WWDC 2018上发布ARKit 2.0之后,可以为2至6个用户制作游戏。<br><br>为此,您需要使用<code>ARWorldMap</code>类。通过保存<code>world maps</code>并使用它们开始新的 session ,您的iOS应用程序现在可以添加新的增强现实功能:多用户和持久的AR体验。<br><br> <strong> AR多用户体验</strong>。现在,您可以通过将存档的<code>ARWorldMap</code>对象发送到附近的iPhone或iPad来创建参考的共享框架。使用多个设备同时跟踪相同的<code>world map</code>时,您可以建立一种体验,使所有用户(最多6个)可以共享并看到相同的虚拟3D内容(在Xcode 10和iOS 12中使用全新的Pixar的3D格式的<code>USDZ</code>文件格式)。<br><pre><code>session.getCurrentWorldMap { worldMap, error in
    guard let worldMap = worldMap else {
      showAlert(error)
      return
    }
}

let configuration = ARWorldTrackingConfiguration()
configuration.initialWorldMap = worldMap
session.run(configuration)
</code></pre><br> <strong> AR持久性体验</strong>。如果保存<code>world map</code>,然后iOS应用程序变为非 Activity 状态,则可以在下次启动应用程序时和在同一物理环境中轻松还原它。您可以使用恢复的<code>ARAnchors</code>中的<code>world map</code>将相同的虚拟3D内容(以USDZ或DAE格式)放置在上一个保存的 session 中的相同位置。</p>
                                   
                                                <p style="font-size: 20px;">关于swift - 具有多个用户的ARKit,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/46753535/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/46753535/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: swift - 具有多个用户的ARKit