我有一个应用程序,它将渲染一个增强现实场景和一个您可以走进该场景的门户。场景被一架飞机挡在视野之外,但如果你穿过那架飞机,你就会“闯入”虚拟环境。
我不是在寻找代码,而是在寻找如何解决这个问题的帮助。我想让它让你进入虚拟场景的唯一方法是穿过我创建的门口。我首先考虑跟踪摄像头的位置,并确保您在跨过阈值以启用渲染之前非常靠近入口,但似乎如果我这样做,用户将无法看穿接近/进入虚拟场景之前的门口。
我有一个应用程序,它将渲染一个增强现实场景和一个您可以走进该场景的门户。场景被一架飞机挡在视野之外,但如果你穿过那架飞机,你就会“闯入”虚拟环境。
我不是在寻找代码,而是在寻找如何解决这个问题的帮助。我想让它让你进入虚拟场景的唯一方法是穿过我创建的门口。我首先考虑跟踪摄像头的位置,并确保您在跨过阈值以启用渲染之前非常靠近入口,但似乎如果我这样做,用户将无法看穿接近/进入虚拟场景之前的门口。
首先看一下如何只使用 SceneKit 编辑器在 ARKit 中创建 Portal 效果?Stack Overflow 发布如何自己制作门户。
防止用户穿过虚拟墙的可靠方法是拥有与真实墙相同的虚拟墙配置(物理墙在哪里——虚拟墙也存在)。
您还需要对象检测工具。要在真实物理墙上精确定位虚拟墙,只需使用Core ML框架和预训练的小尺寸mlmodel
以及 ARKit 框架的类,如ARImageTrackingConfiguration()或ARWorldTrackingConfiguration()。
如果您没有机会构建与构建真实墙壁相同的虚拟墙壁配置,您可以在用户与虚拟墙壁碰撞时使用户的 iPhone 振动。这是一个代码:
import AudioToolbox.AudioServices
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)
AudioServicesPlayAlertSound(kSystemSoundID_Vibrate)
希望这可以帮助。
我能想到一些方法。
使当一个人穿过墙壁时,整个屏幕变为空白,除了一条消息告诉他们他们需要从墙壁后退,也许还有一个箭头告诉他们向哪个方向移动。
让它撞到墙上会改变整个场景。
将两者结合起来,问他们是否想在他们撞到墙上时转移场景。