草庐IT

ARKit版

全部标签

ios - 如何在 ARKit 中使用 SCNNode 过滤器?

我正在尝试实现自定义CIFilter以与我的ARSCNView中的SCNNode一起使用。不幸的是,它只是在节点应该在屏幕上的位置创建了一个灰色矩形。我也尝试过使用内置的CIFilters来仔细检查我的代码,但无济于事。在其他一些SO帖子上,我读到CIFilter仅在选择OpenGL作为SCNView的渲染API时才起作用,因为CoreImage不能很好地与Metal配合使用,据我所知,不可能让ARSCNView与OpenGL。上述帖子是2016年的,所以我想知道是否有任何变化。我想要实现的是在屏幕上勾勒/突出显示对象,以反馈用户有关对象选择的信息。我通过添加着色器修改器实现了一些可用

ios - ARKit - 在相机上居中 SCNode

使用ARKit/Scenekit,我希望将映射到平面节点上的2D图像添加到场景中,但我希望此节点始终以用户/相机为中心。这是我在初始0,0,0位置添加节点的函数。letplane=SCNPlane(width:20,height:20)letmaterial=SCNMaterial()material.isDoubleSided=truematerial.diffuse.contents=UIImage(named:"CompassRose.png")plane.materials=[material]NodeCompass=SCNNode(geometry:plane)NodeCom

ios - ARKit - 继续获取 [0,0,0] 作为相机位置

我试图在全局坐标中获取相机在3D空间中的位置。overridefuncviewDidLoad(){super.viewDidLoad()//Doanyadditionalsetupafterloadingtheview,typicallyfromanib.sceneView.delegate=selfsceneView.showsStatistics=truesceneView.session.delegate=self}overridefuncviewWillAppear(_animated:Bool){super.viewWillAppear(animated)//Createas

ios - SceneKit 或 ARKit 的动态纹理 API

是否可以使用ARKit/SceneKit以编程方式即时对DAE/SCN模型进行纹理处理?用例是:我将有1个模型,我想用可能有数千种相似但不同的纹理“蒙皮”。我可以:提前对模型进行纹理处理,并强制我的应用程序或我的后端托管数千个庞大的纹理模型文件(所有这些文件都使用相同的较重的3D模型/网格文件,并且每个文件都将其与不同的较轻的2D纹理文件组合在一起);或允许我的应用程序/后端附带1个笨重的3D网格/模型文件和数千个较轻的2D纹理文件,然后使用一些SceneKit/ARKitAPI将正确的纹理应用到内存中的模型,-苍蝇这种动态纹理功能是否可行?如果是这样,如何?如果不是,那为什么(好奇!

swift - 使用 apple arkit 检测空白或颜色均匀的墙壁

现在可以使用ios11.3和applearkit1.5检测垂直平面(一个很好的例子:ARKitVerticalPlaneDetection)。但是有一个条件;您需要在墙上有一些颜色差异或结构才能被检测到。是否也可以检测空白墙或具有1种颜色的墙? 最佳答案 这里有一种自然的张力,它强加了一些固有的设计限制。为了让ARKit甚至为了世界跟踪的目的“看到”一个表面——甚至在将它检测为平面之前——表面需要有一些纹理。颜色、浮雕、高对比度点的变化,导致它具有某些视觉特征的东西。这对于很多水平面检测用例来说是可以的,因为人们喜欢购买木头制成的t

swift - ARKit 检测平面之间的交叉点

我正在使用ARKit(带有SceneKit)并试图找到一种方法来获取ARReference图像和Horizo​​ntalARPlaneDetection之间的交集,以便在检测到的图像正前方的表面上显示3D角色,例如Spawn红圈内见下图目前我能够让角色在检测到的图像前面生成,但是,角色漂浮在空中而不是站在表面上。letrealWorldPositon=SCNVector3Make(anchor.transform.columns.3.x,anchor.transform.columns.3.y,anchor.transform.columns.3.z)lethitTest=self.s

swift - 3D 模型看起来与 ARKit 中的大小不一样

问题陈述我在AR中遇到一个问题,我们的模型尺寸与真实产品不匹配。这款iPhone与真实iPhone尺寸相同,但与真实产品不匹配。IPhoneModelSize-(5.44x2.64x0.28in)引用截图引用.obj文件Downloadobj 最佳答案 .obj的比例很可能不正确。如果您将模型加载到SceneKitEditor中,然后单击右侧的“立方体”:您将在transforms部分中看到一个显示BoundingBox的区域。您可以在此处查看您的模型尺寸是否真的合适:在我的示例中,我的模型是SCNPlane,宽度和高度为0.1m(

swift - 在 ARKit 中查找用户面向的方向

我想知道我的相机在ARKit中面向哪个方向,以便我对我面前的物体所做的操作是正确的(比如向左滑动向左移动)。现在我尝试使用POV方向(不起作用,因为它始终为正)和节点方向(photo.worldFront.z-这将起作用,除非应用旋转,一旦旋转超过180度,方向是错误的).有什么建议吗? 最佳答案 您是正确地首先查看pointOfView。虽然rotation和eulerAngles都描述了相机朝向的方向,但在处理对象时使用它们并不简单,例如在你面前放置或移动物体,这是相机的空间。相反,在世界空间中设置您的位置或运动矢量,然后使用相

swift - 在低端设备中支持 ARKit?

在Apple演示中,他们说如果不支持ARWorldTrackingConfiguration,我们可以使用较小的AROrientationTrackingConfiguration(以前称为ARSessionConfiguration)。但是当我在A8设备(iPadmini4)上尝试这个时,是否让ARWorldTrackingConfiguration()失败没有区别。跟踪根本行不通。ifARWorldTrackingConfiguration.isSupported{letconfiguration=ARWorldTrackingConfiguration()sceneView.se

ios - 如何检查 iOS 11 安装的设备是否支持 ARKit?

我目前正在开发基于ARKit的应用程序。我需要检查ARKit支持的设备。我有两个UIViewController1)ARKitViewController2)非ARKitViewController。我必须根据设备支持设置一个ViewController之一。目前我正在检查以下代码。但这不适用于某些不支持ARKit但装有iOS11的设备。if#available(iOS11.0,*){arProfileClosetController=THARClosetViewController(nibName:THARClosetViewController.className,bundle:n