问题标签 [arscnview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
144 浏览

ios - 如何在 Xcode IB 中为 ARSCNView 设置首选渲染 API

在我的 ARKit 应用程序中,ARSCNView 被初始化并在内部基于故事板文件结构附加到 ViewController。所以在函数 viewDidLoad 我已经初始化了视图。但问题是它使用默认渲染 API 金属。但我想将其更改为 OpenGL ES2。在Apple 文档中,我读到preferredRenderingAPI 可以在IB 检查器中以某种方式更改。但我不明白怎么做。没有任何示例说明如何执行此操作?或者也许我仍然从代码中更改它,即使视图是从 IB 初始化的?

0 投票
2 回答
3875 浏览

swift - Swift ARKit 你如何完全杀死一个 ARSession?

我有一个ARSCNView正在运行的ARSession. 您可以肯定地暂停会话session.pause(),但这仍然有效,使会话继续运行。我尝试ARSCNView通过将其从超级视图中删除来解除分配。ARSCNView确实释放了,但之后ARSession仍在运行!你不能分配nilARSession任何一个。ARSessionDelegate我可以看到

仍然被调用!

完成后如何用 ARKit 彻底擦干净?

甚至可能吗?

0 投票
1 回答
378 浏览

swift - ARSCNView 在 iOS 12 上因 GPU 错误“命令缓冲区的执行被中止...(IOAF 代码 5)”而滞后

我不确定哪些代码与此处发布相关,但我真的只是想知道如何去调试它。我显示启用了 ARFaceTrackingConfiguration 的 ARSCNView,并在后台线程上执行频繁的 VisionVNDetectFaceLandmarksRequestARSCNView.hitTest针对面部几何图形。在 iOS 12 之前我没有延迟问题,即使现在它只是间歇性的,但是当它发生时,它会一次冻结整个屏幕几秒钟并显示错误:

Execution of the command buffer was aborted due to an error during execution. Discarded (victim of GPU error/recovery) (IOAF code 5)

不确定它是否相关,但我也偶尔会在 SceneKit 渲染线程(com.apple.scenekit.scnview-renderer)上崩溃,没有可用于调试的回溯。我没有使用任何自定义金属着色器,并且在这些滞后/崩溃发生时甚至没有渲染任何 SceneKit 几何图形。

我不能使用 OpenGL 渲染,因为我相信 ARSCNView 只支持金属支持渲染。根据这个问题,我也尝试过不设置照明环境,但这似乎并没有解决问题。

如果有人在渲染 ARSCNViews 时遇到这些错误,并且对如何调试这些滞后有任何建议,将不胜感激。

更新

我能够通过极端限制我的 Vision 地标请求来消除这些滞后和 GPU 错误。似乎这些只是由于在 iOS 12 上执行大量昂贵的图形操作造成的。这种解决方法似乎没有帮助 SceneKit 渲染器崩溃

0 投票
0 回答
263 浏览

ios - ARSCN查看方向问题

我有 viewController 1,它用 ARSCNView 呈现 viewController。在 viewControllers 的事务之间,方向发生了变化,所有的 UI 方向都在该位置,但 ARSCNView 相机视图位于错误的位置

(视图框架在当前位置,但相机视图倒置或向左)

当我将手机旋转到纵向并返回所有外观时。

  • ARSCNView 在自定义视图中

    /li>
  • ARViewContoller:

    /li>
  • 在 appDeleagte 中:

    /li>

调用 presentARViewController 函数后,会显示新屏幕,但相机视图的方向错误。

方向错误

0 投票
1 回答
184 浏览

ios - ARKit 2:使用 ARKit 放置 3D 对象会导致屏幕在 Xcode 10.1 和 iOS 12 中冻结

我正在使用 ARKit 在真实环境中放置虚拟对象。它在 Xcode 9 和 iOS 11 中运行良好。但是当我更新 Xcode 和 iOS 时,如果我将虚拟对象放置在检测到的平面上,它就会冻结,如果我旋转相机,相机也会不断刹车。我正在登录 Xcode

World tracking performance is being affected by resource constraints 1

指导我解决这个问题。

0 投票
1 回答
499 浏览

swift - 嵌入导航控制器时 ARSCNView 不显示对象

我正在尝试在点击图片时显示 3D 模型(请参见此处)。图片被点击,它继续3DFloorPlanViewController(嵌入在导航控制器中),相机工作但没有显示 3D 对象(见这里)。

我在没有导航控制器的情况下尝试了完全相同的代码,它运行良好,所以我很困惑为什么嵌入导航控制器时它不起作用。

故事板图片

我的 3D 对象位于名为“3D 对象”的文件夹中(参见此处)。我已经尝试了这两种功能named: "3D Objects/paperPlane.scn",但都没有奏效。named: "paperPlane.scn"addPaperPlane

这是代码3DFloorPlanViewController

0 投票
1 回答
621 浏览

swift - ARKit hitTest(_:options:) 选择放置的 3d 对象不起作用

我正在尝试选择一个已放置在检测到的平面上的对象,以便对其执行各种任务,例如通过手势旋转。

为了搜索放置的对象并避免获得无关性质的 hitTestResults(例如,选择平面或 ARWorldMap 本身),我尝试将 hitTest(_:options:) 与 SCNHitTestOption.categoryBitMask 一起使用。然而,hitTest 似乎返回所有类型的结果,而不仅仅是所选 categoryBitMask = 5 的对象,即使根据我的理解 categoryBitMask 是“仅搜索与指定位掩码匹配的对象的选项”。我该如何解决这个问题,有没有更好的方法在 ARKit 中选择放置的 3D 模型?下面是我必须旋转 3d 模型的功能。

0 投票
2 回答
1181 浏览

swift - ARKit Stereo – 是否可以同时运行两个 ARSCNView?

我正在考虑对我现有的 AR 应用程序进行一些修改,我想拆分视图并添加到 2ARSCNView中,这样用户可以使用 VR Card Box 并获得不同的体验,但 Xcode 总是返回我:

所以,我假设我不能同时运行 2 个ARSCNView会话,还是我错了?

0 投票
1 回答
195 浏览

swift - ARSCNView 中像素的颜色

我正在尝试获取由触摸位置确定的 CGPoint 处的像素颜色。我尝试了以下代码,但颜色值不正确。

运行此程序并触摸屏幕上一个非常大且一致的亮橙色点会产生广泛的 RGB 值,然后查看它们实际产生的颜色会产生完全不同的颜色(橙色的情况下为深蓝色)。

我猜可能坐标系不同,我实际上可能在图像上得到不同的点?

编辑:另外我应该提到我正在点击的部分是一个不受照明影响的 3D 模型,因此颜色应该并且在运行时看起来是一致的。

0 投票
1 回答
268 浏览

audio - 带有位置音频 SCNAudioPlayer 的 ARKit SceneKit ARSCNView 不会停止播放

使用 ARSCNView 运行 ARKit 2.0。iOS12 应用程序使用多线程,这就是为什么这些功能在主线程上执行(只是为了确定)。我也尝试过没有在主线程上显式执行功能,但无济于事。

我正在使用 .aiff 声音文件,但也尝试过 .wav。没有喜悦。

我什至尝试从节点层次结构中删除 audioNode_alarm 并且声音仍在播放。我什至从视图层次结构中删除了 ARSCNView 并且声音仍然播放。FFS

据我所知,我正在按照我应该做的事情做,以阻止音频播放。无论我尝试什么,音频都不会停止。谁能想到为什么?!