scnnode相关内容
我正在构建一个scenekit应用程序,但我遇到了一些更精细的细节问题。我创建了一个scene,我正在向它添加自定义几何体,它工作得很好,直到节点数量达到大约100个。向场景中添加大量节点是理想的,是否有更干净的方法? for i in 0..
..
XCode中的文档清楚地指出,当您计划测试3D线段时,可以使用SCNRender、SCNView或SCNNode本身在SceneKit中测试几何图形。我可以使用没有渲染器或视图的SCNScene节点,因此我计划使用SCNNode hitTesting。我创建了一个SCNScene,在其中放了一个SCNNode,并测试了一条通过的简单光线,但我总是得到一个空的命中列表,我不知道为什么: imp
..
所以我正在制作一个游戏,在上述游戏中,您将使用 DPad 在场景中移动您的球.我正在使用 Xcode 7 Beta 5,尽管在 beta 4 中也存在同样的问题.这是测试视图控制器的代码: 类 TestController: UIViewController,DPadDelegate {@IBOutlet var scnView:SCNView!@IBOutlet var dpad:DPad!v
..
目标是在 SceneKit 中重现类似于下图的光迹.路径不需要那么详细,但想法是要达到类似的视觉效果. 我们尝试使用不透明度约为 0.5 的薄立方体.我们将大约 200 个串在一起,并将它们连接到一个节点上,以充当光迹.那根本没有性能. 另一篇文章建议使用粒子发射器,但我们还需要在另一个物体撞击轨迹时检测碰撞.类文档说粒子发射器的碰撞检测也没有性能. 关于模拟类似光迹的最佳方法有
..
下面的代码应该将触摸坐标转换为 SceneKit 场景的世界坐标. 但是,如下面的输出所示,unprojectPoint 返回的点无论您在屏幕上的哪个位置(iPhone 5s)触摸都有效地返回相同的点. unprojectPoint 的类文档建议使用介于 0 和 1 之间的 Z 值,但使用不同的值(如 0.5)不会改变 unprojectPoint 的输出. 这篇SO帖子讨论了如
..
我遵循了@rickster 的此代码,该代码 100% 有效,看起来很棒.在视频中,他正在为 SCNNode 设置动画,该 SCNNode 使用 ARAnchor 从一个位置到另一个位置并返回.我尝试做类似的事情,但我希望使用 ARAnchor 设置的节点跟随/更新它的位置到另一个作为相机子节点的节点. 我在更新 func renderer(_ renderer: SCNSceneRende
..
我在 SceneKit 中使用 SCNLevelOfDetails. 我想知道是否有办法知道引擎何时更改特定节点几何的 levelOfDetails. 非常感谢. 解决方案 我正在回答我自己的问题.为了提供更多上下文,我们需要知道 LOD 何时更改以停止空闲动画,我们的模型已蒙皮.如果您在 LOD 更改时不禁用此动画会发生什么情况,即地理遍布整个地方并且看起来是错误的.
..
我正在尝试选择一个放置在检测到的平面上的对象,以便对其执行各种任务,例如通过手势旋转. 为了搜索放置的对象并避免获得无关性质的 hitTestResults(例如选择平面或 ARWorldMap 本身),我尝试将 hitTest(_:options:) 与 SCNHitTestOption.categoryBitMask 一起使用.然而,似乎 hitTest 返回所有类型的结果,而不仅仅是具
..
我知道当节点缩放时 SCNPhysicsBody 不会缩放,但我还没有找到解决这个问题的好方法.我想缩放节点,然后在缩放节点后将 SCNPhysicsBody 更新为节点. let box = SCNBox(width: 0.2, height: 0.3, length: 0.4, chamferRadius: 0.1)box.firstMaterial?.diffuse.contents =
..
我已经下载了 Apple 提供的 .usdz 模型:https://developer.apple.com/arkit/画廊/ 但现在,我想用这些模型之一创建一个 SCNNode,所以我这样做是为了获取节点: guard let urlPath = Bundle.main.url(forResource: "retrotv", withExtension: "usdz") else {返回
..
我有一个简单的 Swift ARKit 设置,其中我有一个 SCNNode,其中有一个在 ARSCNView 中可见的 3D 对象. 我想确定这个对象在 ARSCNView 上的二维坐标.我的意思是对象被绘制到屏幕上时的 x 和 y 坐标. 我提供了一个草图来说明我的意思: 有没有办法获得这些坐标,或者至少是一个近似值?我需要这个以便对相机框架进行一些进一步的处理.基本上我对物体
..
我有一个 SCNPlane,当检测到水平表面有足够的区域时,它会添加到场景中.根据放置的地板/桌子,飞机似乎被放置在正确的位置.问题是当我将一个 SCNNode(无论是盒子、金字塔、3D 模型等)放到飞机上时,它最终会找到一个着陆点,99% 的人开始疯狂地摇晃.很少有它只是降落而根本没有移动.我也认为这可能是由于节点掉落并降落在平面表面下方.它既不是“顶部"也不是“低于"平面.可能是因为节点在两个
..
我正在开发一个 ARKit 项目,在水平平面上点击时需要波纹动画效果.为此,我采用了 UIView 对象并将其作为 SCNPlane 对象材料的内容传递.我已将 Ripple 动画添加到 UIView 对象.一切正常.但我无法将 SCNPlane 颜色更改为清晰颜色.我可以为材质使用透明度属性.但它也隐藏了 Ripple 动画.所以,我在这里需要的是,SCNPlane 对象的背景颜色应该是透明的,
..
我正在尝试在 ARKit 的对话气泡中创建一个带有简单文本的报价生成器. 我可以用文字显示对话泡泡,但文字总是从中间开始并溢出对话泡泡之外. 任何帮助使其在对话气泡的左上角对齐并在对话气泡内环绕将不胜感激. 结果 课程 class SpeechBubbleNode: SCNNode {私人让 textNode = TextNode()var 字符串:字符串?{已设置{te
..
我正在为我的应用程序使用 ARKit,并尝试从我的网络服务器(URL)动态加载 .scn 文件 这是我的代码的一部分 let urlString = "https://da5645f1.ngrok.io/mug.scn"让 url = URL.init(string: urlString)让请求 = URLRequest(url: url!)让会话 = URLSession.shared
..
我正在使用 ARKit 来显示 3D 对象.我设法将节点放置在用户(也就是相机)面前的现实世界中.但是当我放下它们时,我无法让它们面对相机. let tap_point=CGPoint(x: x, y: y)让结果=arscn_view.hitTest(tap_point,类型:.estimatedHorizontalPlane)守卫 results.count>0 else{返回}守卫让
..
只是想知道是否可以(我知道可以,但是如何)像在 Measure 应用程序中一样在 ARSCNView 中绘制虚线?也许有一种方法可以开箱即用地使用场景节点,idk. 我一直在使用 SCNCylinder 画一条直线,IDK 是否可以重复使用它并进行调整,或者我们必须使用一种非常不同的方式来制作虚线. import SceneKit类 CylinderLineNode: SCNNode {私
..
我正在使用带有 ARKit 的 SceneKit,现在有一个简单的应用程序,我点击屏幕,它会向我的场景添加一个 ARAnchor 和一个 SCNNode. 在某些时候,我想要移动整个场景,所以我尝试更改 sceneView.scene.rootNode.position.x += 10 来测试这一点.如果我在任何特定节点上调用它,该节点确实会适当移动.但是在 rootNode 上调用它,没有
..
我在 ARKit 1.5 beta 中已识别图像的位置放置了一个 SCNNode(一个平面).我想在点击飞机时向控制台打印一条消息.到目前为止,我有这个代码: //MARK: - ARSCNViewDelegate(图像检测结果)///- 标签:ARImageAnchor-Visualizingfunc renderer(_ renderer: SCNSceneRenderer, didAdd
..
我正在使用 ARKit 进行一个小项目.我希望能够在点击时将对象添加到我的 AR 场景视图中,双击删除它们,然后通过平移或拖动来拖动主题. 放置对象的初始点击工作正常,但我在删除节点和拖动时遇到了一些问题. 移除和拖动的主要问题是很难真正“按住"或点击 SCNNode.大多数结果最终不在我添加的 SCNNode 上. 第二个问题是拖动有点问题,SCNNode 并没有像我的手指那样
..