在ARKit中我可以使用hitTest:tapPointtypes:ARHitTestResultTypeExistingPlaneUsingExtent如果您想将对象放置在例如表为types:ARHitTestResultTypeExistingPlaneUsingExtent将仅检测检测到的平面范围内的命中。如果你想把物体放在地板上,它就没那么有用了,因为你需要四处走动,直到ARKit在你的地板上放置(或扩展)了很多平面。ARHitTestResultTypeExistingPlane解决了这个问题,因为您只需要检测到地板上的一小块区域,就可以在任何地方放置物体。然而,问题是一旦A
我有ARKit场景,我将聚光灯放在头顶以转换阴影。因为我想在透明平面上转换阴影,所以我在聚光灯上将属性shadowMode设置为延迟(https://developer.apple.com/documentation/scenekit/scnshadowmode/1523758-deferred)。这行得通,但是当我再次移除聚光灯时,应用程序崩溃了:[SceneKit]错误:阴影节点未注册[SceneKit]错误:_willExecuteDeferredShadows-没有灯光当未设置shadowMode(默认为“forward”)时,应用程序不会崩溃如何在不崩溃的情况下移除灯?
我正在使用iPhoneX上的前置摄像头运行面部标志检测,并且非常努力地尝试获取面部标志的3D点(VNFaceLandmarkRegion2D仅提供图像坐标X、Y)。我一直在尝试使用ARSCNView.hitTest或ARFrame.hitTest,但到目前为止都没有成功。我认为我的错误可能在于将初始地标点转换为正确的坐标系。我已经尝试了很多排列组合,但目前根据我的研究,这是我想出的:letpoint=CGPoint(x:landmarkPt.x*faceBounds.width+faceBounds.origin.x,y:(1.0-landmarkPt.y)*faceBounds.he
当我在ARKit中围绕y轴旋转设备时,我正在尝试计算设备的旋转。为清楚起见,ARKit中的y轴是垂直于地面指向上方的轴。我使用eulerangles像这样获得相机的旋转:varalpha=sceneView.pointOfView?.eulerAngles.y这大约适用于0=时,但对于应该是其他角度的东西,我得到了错误的读数。我怀疑这与万向节锁有关,我必须以某种方式使用四元数才能获得正确的角度,而不管象限如何。非常感谢任何帮助! 最佳答案 通过使用四元数而不是欧拉角来解决它。这是我使用的代码:guardletcameraNode=s
在ARKit3.0中demoApple提出了depthoffield效果。我试图找到这方面的文档,但找不到我们应该如何启用它。我发现启用motionblur很容易和noisegrain效果。基本上,您可以在Objective-C中像这样设置一个标志scnview.rendersMotionBlur=true;但我找不到景深效果。这东西还没有暴露给开发者吗? 最佳答案 景深是RealityKit和SceneKit框架的后处理渲染器功能。ARKit中没有景深,因为ARKit不负责渲染。在RealityKit中,景深默认开启DepthOf
我有以下创建SCNBox并将其转换到屏幕上的代码。这行得通,但只要我将手机朝任何其他方向转动,力脉冲就不会更新,它总是会在相同的旧位置射击盒子。代码如下:@objcfunctapped(recognizer:UIGestureRecognizer){guardletcurrentFrame=self.sceneView.session.currentFrameelse{return}/letbox=SCNBox(width:0.2,height:0.2,length:0.2,chamferRadius:0)letmaterial=SCNMaterial()material.diffus
我正在使用Xcode9Beta和Swift4。创建单一View应用程序。如何在我的单一应用程序View中使用参数现实功能?这是我的代码。这没有任何错误。但我无法在我的场景中得到任何结果。importUIKitimportARKitimportSceneKitclassViewController:UIViewController{@IBOutletweakvarscaneView:ARSCNView!overridefuncviewDidLoad(){super.viewDidLoad()letscene=SCNScene(named:"art.scnassets/ship.scn")
我必须使SCNCylinder看起来像动态饼图,我可以通过使用以下代码向SCNCylinder添加纹理或应用颜色来使其看起来像静态饼图。但是,我的饼图值随机变化并且想要添加颜色值占据圆柱体百分比部分的Material。varplanet:SCNGeometryplanet=SCNCylinder(radius:0.2,height:0.05)letmaterial=SCNMaterial()material.diffuse.contents=UIImage(named:"texture.jpg")//ORtoapplysinglecolormaterial.diffuse.conten
Whenapplicationlaunchedfirstaverticalsurfaceisdetectedononewallthancamerafocustothesecondwall,inthesecondwallanothersurfaceisdetected.ThefirstwallisnownomorevisibletotheARCamerabutthiscodeisprovidingmetheanchorsofthefirstwall.butIneedanchorsofthesecondwallwhichisrightnowVisible/focusedincamera.i
实际上,我正在尝试在iOS上构建一个应用程序,该应用程序使用增强现实和3D对象识别来创建围绕特定花盆的动画。我选择ARKit是因为它的准确性,但似乎只有平面识别可用。有人知道可以使用ARKit并允许图像或3D对象识别的SDK吗?我听说过可以检测人脸的Vision和OpenCV,但我不知道它们是否可以完成这项工作,或者它们是否可以与ARKit同时工作。有什么建议吗?提前致谢:) 最佳答案 好吧,我来晚了回答这个问题。但我认为它会帮助其他开发人员。从iOS11开始,Apple引入了CoreML/Vision框架。出色的基于ML的工具,可