我正在尝试实现自定义CIFilter以与我的ARSCNView中的SCNNode一起使用。不幸的是,它只是在节点应该在屏幕上的位置创建了一个灰色矩形。我也尝试过使用内置的CIFilters来仔细检查我的代码,但无济于事。在其他一些SO帖子上,我读到CIFilter仅在选择OpenGL作为SCNView的渲染API时才起作用,因为CoreImage不能很好地与Metal配合使用,据我所知,不可能让ARSCNView与OpenGL。上述帖子是2016年的,所以我想知道是否有任何变化。我想要实现的是在屏幕上勾勒/突出显示对象,以反馈用户有关对象选择的信息。我通过添加着色器修改器实现了一些可用
我正在自动创建多个节点,我想将它们安排在我周围,因为目前我只是将当前X位置增加0.1。capsuleNode.geometry?.firstMaterial?.diffuse.contents=imageViewcapsuleNode.position=SCNVector3(self.counterX,self.counterY,self.counterZ)capsuleNode.name=topic.nameself.sceneLocationView.scene.rootNode.addChildNode(capsuleNode)self.counterX+=0.1所以问题是,我怎
我正在研究ARKit和图像检测。现在我有一个应用程序可以检测图像并将平面放置在屏幕上检测到的对象所在的位置。我怎样才能在飞机上添加一个像按钮一样的可点击元素。我想在每个检测到的对象上都有一个点击事件。这是我的渲染器函数的样子:funcrenderer(_renderer:SCNSceneRenderer,didAddnode:SCNNode,foranchor:ARAnchor){guardletimageAnchor=anchoras?ARImageAnchorelse{return}letreferenceImage=imageAnchor.referenceImageupdate
好的,和其他人一样,我在ARKit/世界空间中拖动/翻译SCNNode时遇到了问题。我看过DraggingSCNNodeinARKitUsingSceneKit以及所有热门问题,以及来自Apple的代码https://github.com/gao0122/ARKit-Example-by-Apple/blob/master/ARKitExample/VirtualObject.swift我尝试尽可能地简化,只是做了我在普通场景套件游戏中会做的事情-http://dayoftheindie.com/tutorials/3d-games-graphics/t-scenekit-3d-pic
我正在制作一个简单的测量应用程序。目前,我将球体作为SCNNodes放置在周围,节点之间出现一个标签,显示从节点1到节点2的线的长度。标签是这样创建的:funcaddLabel(){letplane=SCNPlane(width:0.07,height:0.02)plane.cornerRadius=plane.height/10letsks=SKScene(size:CGSize(width:plane.width*10e3,height:plane.height*10e3))sks.backgroundColor=UIColor(red:0.1,green:0.1,blue:0.1
我试图检测在我的AR场景中实例化的SCNNode上的点击。它似乎不像这里的SceneKitHitTest结果那样工作,而且我对场景工具包没有太多经验。我只想检测点击点是否包含在场景中的任何节点内,从而检测物体上的点击。我从其他答案中尝试过的内容:overridefunctouchesBegan(_touches:Set,withevent:UIEvent?){guardlettouch=touches.firstelse{return}letresults=sceneView.hitTest(touch.location(in:sceneView),types:[ARHitTestRe
我对Swift和IOS开发还很陌生,所以这可能是一个简单的问题,但我很难在互联网上找到答案。我试图通过在其中一个节点上运行SCNAction来为静态DAE模型制作动画。然而,在SCNAction完成后(并且节点被移动),节点位置将立即回到其原始位置(加载静态DAE模型时的相同位置)。但是当我打印节点的位置时,我注意到节点的位置实际上因为SCNAction而改变了。当我在同一个节点上再次运行SCNAction时,该节点将返回到最后一个SCNAction产生的结束位置,并从那里开始SCNAction。我想知道为什么节点的实际位置和场景中出现的位置不匹配。另一个有趣的事情是,当我按顺序([a
好像我想通过组合一些SCNBox和SCNPyramid等来创建一些自定义形状,我可以通过设置正确的位置和几何形状将它们放在一起。然而我就是找不到一种方法将它们组合成一个可以在物理世界中修改或react的单元。下面的代码我想创建一个简单的房子形状SCNNode,我希望节点在受到任何碰撞和重力影响时相互连接。谁能给点提示?letboxGeo=SCNBox(width:5,height:5,length:5,chamferRadius:0)boxGeo.firstMaterial?.diffuse.contents=UIColor.blueColor()letbox=SCNNode(geom
我正在权衡将自定义数据添加到SCNNode实例的选项。我一直在考虑的一种方法是使用关联对象。另一种是使用SCNNode子类。关于关联对象,我想知道是否可以使用NSKeyedArchiver.archiveRootObject(_:toFile:)存档场景并保留数据。关于SCNNode子类,这意味着我的场景图将由该子类实例组成,而不是SCNNode实例。我想知道这是否会引起麻烦。我已在错误报告中向Apple提出请求,向SCNNode添加一个userData属性,类似于中SKNode的属性>SpriteKit,但与此同时,我需要找到一种方法来处理我们得到的东西。
我正在尝试旋转我的对象(SCNNode)以面向它移动的点。我只在x轴和y轴上移动,到目前为止我尝试过://Actiontomovenodeletaction1=SCNAction.moveTo(SCNVector3(x:4.0,y:0.0,z:6.0),duration:3)//Getthetanangle:letangle=CGFloat(atan2(z,x))ifangle-previousAngle>Pi{playerAngle+=2*Pi}elseifpreviousAngle-angle>Pi{playerAngle-=2*Pi}previousAngle=angleplay