问题标签 [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.
ios - 使用 ARSCNPlaneGeometry 获得 SCNPhysicsShape 会生成球体形状而不是平面
在使用 的应用程序中ARKit
,我使用ARSCNPlaneGeometry
类update
方法SCNGeometry
从ARPlaneGeometry
. 我SCNPhysicsShape
从该几何中获得 a 以用作SCNPhysicsBody
平面节点:
我遇到的问题是,即使显示的平面节点是平面,生成的物理形状也不是平面,而是粗糙球体。我知道这一点是因为我使用的是场景视图调试选项.showPhysicsShapes
。
我还在使用 的renderer(_:didUpdate:for:)
方法不断更新几何和物理形状,ARSCNViewDelegate
并且形状保持不变。
以前有人遇到过这个问题吗?
ios - 当我回到包含 ARSCNView 的视图控制器时,相机冻结。如何在没有 ARSCNView 停止工作的情况下在这个视图控制器中来来去去?
我如何初始化 ARSCNView
当关闭此视图控制器并尝试重新启动会话时,相机停止出现。有人知道如何帮助我吗?谢谢
ios - 根据 SCNView 大小或手机屏幕大小缩小 SCNNode
我有一个很大的 SCNNode,我想按比例缩小它。目前节点是根据幻数缩小的。但是,节点应根据手机的屏幕尺寸或节点的 SCNView 尺寸缩小。
为了让事情变得更容易,我想为节点的 SCNView/电话屏幕设置一定的填充。
因此,给定一个 SCNNode 和手机屏幕/SCNView 中的一定量的填充,我希望您计算 SCNNode 的比例因子。
有关视觉解释,请参见附图。你能帮我计算比例因子吗?
ios - 多层scn文件需要时间来渲染arkit
当用户点击屏幕时使用 ARKit 2 放置 .scn 文件时,单层模型会立即在屏幕上渲染,但是当多层(2 到 3 层).scn 文件需要大约 1 到 3 秒来渲染时,就会出现问题,有点卡住 UI 而渲染?一旦 ARConfiguration 会话被重置,它就适用于所有模型。我已经在苹果提供的用于处理交互应用程序的演示中检查了这些模型,并且它们也发生了同样的情况。谁能帮我解决为什么多层对象第一次没有立即渲染?
ios - 从 ARWorldTrackingConfiguration 获取当前帧作为 uiimage?
我需要在配置 ARWorldTrackingConfiguration 时提取物理相机看到的帧(未添加 SCNScene)。我是 ios 新手,所以也许我遗漏了一些东西,但我无法做到这一点。任何有关如何执行此操作的帮助表示赞赏。
我尝试使用提取
其中 sceneView 是我的 ARSCNView,我认为它会给我 YCbCr 中的图像
然后我尝试使用转换为 RGB
但是在调用 pixelBufferToUIImage() 后得到 nil 错误
ios - iOS ARKit 应用程序:如何在不旋转内部相机视图的情况下旋转 UI(屏幕)?
我正在尝试使用 ARKit 制作一个具有一些 AR 体验的 iOS 应用程序。该应用程序现在有一个带有“开始”按钮的启动视图(在应用程序刚刚启动后首先显示)和一个 AR 视图(在我点击启动视图中的“开始”按钮后显示),并且我也有每个视图控制器。AR 视图本质上是一个全屏 ARSCNView,它显示来自相机的实时图像,以及一些 UIButton。
在我想在每个阶段指定方向之前,所有的事情似乎都运作良好。需要将启动视图设置为纵向,AR 视图设置为横向。为了自动更改屏幕的方向,我尝试viewDidLoad()
为 AR ViewController 添加以下代码:
并设置
但是,效果并不好 --- 虽然 UI 的方向已正确更改,但相机预览也“旋转”了 90 度(因此您从应用中看到的所有图像都将旋转 90 度):
image1 (设备现在物理上是纵向的,相机视图在某种程度上是垂直的)
image2 (设备现在物理上是横向的,但相机视图仍然是垂直的)
我还尝试了另一种方法:
但它最终以同样的方式结束。
我希望它如下所示,用户界面固定为横向,但相机始终处于正常方向(重力向下):
image3 (这是在允许自动旋转的情况下捕获的,但我希望它在切换到此视图时自动旋转!)
任何帮助或提示将不胜感激!
swift - 方法 renderer(_:didAdd node:, for anchor:) 未调用
我尝试在我的 AR 体验中实现平面检测。我有一个ARSCNView
带有ARSCNViewDelegate
扩展名的子类。
我的cameraDidChangeTrackingState
委托方法被调用。但是,我从来没有见过我的renderer(_:didAdd node:, for anchor:)
方法被调用。任何想法?
编辑:我可以找到 ARPlaneAnchors session(_ session: ARSession, didAdd anchors: [ARAnchor])
,但我不确定是否应该使用这个,因为在大多数(也是苹果)示例中,它们会将对象添加到锚节点,如我上面的代码所示。还是我必须自己触发那个 didAdd node:, for anchor
方法?
swift - 如何从 .scn 计算 ARSCNView 区域的 SCNNode 的变换和位置
我不明白如何使用 Vision 对象计算 ARSCNView 上的 SCNNode 位置。我在 ARSCNView 中检测到人脸 (VNFaceObservation),从 .scn 文件加载节点。我希望那个节点随着面部位置移动。
我用方法计算人脸边界框的二维位置:
并将 UIView 显示为带有返回矩形的场景视图子视图。它与面部位置相匹配。
从文件加载节点后,将节点添加到场景。
我尝试在场景会话委托的方法中计算节点的新位置:
但我不明白我应该如何修改 SCNNode 位置并创建新的 SCNVector3。我认为,当设备移动或检测到人脸移动时,我应该使用 sceneView.pointOfView?.simdWorld* 属性来计算偏移量。但我不确定这是真的方式
这个计算的任何想法或算法?