scenekit相关内容
类似于您可以在 ARKit 中看到的一些测量应用程序,我有一个平面,上面有 2 个标记节点,并在 2 个标记节点之间画了一条线.但我需要的是 2 个之间的 SCNPlane.所以,如果你的原件是地板,你在墙的两边放了一个标记,你可以在你的 AR 世界中用 SCNPlane 来代表物理墙. 目前我正在放置带有以下代码的行: let line = SCNGeometry.lineFrom(ve
..
我试图在相机前附加一个物体,但问题是它始终与初始相机方向有关.即使相机的方向是向上或向下,如何调整/获取 SCNVector3 位置以将对象放置在前面? 这就是我现在的做法: let ballShape = SCNSphere(radius: 0.03)让 ballNode = SCNNode(geometry: ballShape)让 viewPosition = sceneView.p
..
在我的 Swift/ARKit/SceneKit 项目中,我需要判断前置摄像头中用户的脸是否平行于相机. 通过比较相机的左右眼距离(使用 faceAnchor.leftEyeTransform 和 worldPosition 属性),我能够判断出水平平行度. 但我被困在垂直平行线上.任何想法,如何实现? 解决方案 假设你在你的应用中使用了 ARFaceTrackingConfi
..
我想在不旋转图像的情况下平移平面.出于某种原因,我的图像正在旋转. var translation = matrix_identity_float4x4翻译.colum = -0.2让变换 = simd_mul(currentFrame.camera.transform, translation)planeNode.simdWorldTransform = matrix_multiply(cur
..
我有一个 SCNPlane,当检测到水平表面有足够的区域时,它会添加到场景中.根据放置的地板/桌子,飞机似乎被放置在正确的位置.问题是当我将一个 SCNNode(无论是盒子、金字塔、3D 模型等)放到飞机上时,它最终会找到一个着陆点,99% 的人开始疯狂地摇晃.很少有它只是降落而根本没有移动.我也认为这可能是由于节点掉落并降落在平面表面下方.它既不是“顶部"也不是“低于"平面.可能是因为节点在两个
..
在我的渲染器委托中,我从视图中心创建了一个光线投射查询,以跟踪估计平面并显示跟随光线投射结果的 3D 指针. 它是通过 view.raycastQuery(from:allowing:alignment:) 完成的,但返回 nil. 我的问题是为什么?没有文档说明为什么这个函数会返回一个 nil 值.我知道光线投射结果可能为空,但为什么不创建查询? func renderer(_ r
..
我正在开发一个 ARKit 项目,在水平平面上点击时需要波纹动画效果.为此,我采用了 UIView 对象并将其作为 SCNPlane 对象材料的内容传递.我已将 Ripple 动画添加到 UIView 对象.一切正常.但我无法将 SCNPlane 颜色更改为清晰颜色.我可以为材质使用透明度属性.但它也隐藏了 Ripple 动画.所以,我在这里需要的是,SCNPlane 对象的背景颜色应该是透明的,
..
请用非常简单的语言解释上述 3 个位置之间的区别.我想知道什么时候使用一种和另一种. 解决方案 worldPosition 是场景中的位置,相对于世界中心 (0,0,0),也就是场景的 rootNode 所在的位置. 位置是节点相对于其父节点的位置.如果节点是 rootNode 的子节点,则位置与 worldPosition 相同.如果节点是不在 0,0,0 和/或旋转的父节点的子节
..
如何将 2d 点从 3d SCNNode 绘制到 uiview. 假设我有以下 SCNNodes pos(1.002163 -0.524722 -0.770023)位置(1.174463 -0.765098 -0.607172)位置(0.668790 -0.744061 -0.696863)位置(0.781208 -0.744061 -1.228943) 我需要上面的 2d 点.我是 A
..
我正在尝试播放视频,在 ARSCNView 中显示透明度.SCNPlane 用作视频的投影空间,我正在尝试使用 GPUImage 为该视频设置颜色键. 我在这里关注了这个例子.不幸的是,我还没有找到将视频投影回我的 videoSpriteKitNode 的方法.因为过滤器是在 GPUImageView 中渲染的,而 SKVideoNode 需要一个 AVPlayer. 我不确定这是否可
..
遵循 Apple 的 通过音频创建沉浸式 AR 体验,我认为尝试将对象放置在任何地方而不仅仅是在垂直和水平平面上会很有趣.是否可以在没有平面检测的情况下使用触摸放置对象?我知道平面检测会提高命中测试和 ARAnchor 检测的准确性,那么有没有办法在场景中的任何其他位置执行命中测试? 解决方案 如果您的 AR 场景在当前会话中已经包含任何 3D 几何图形,您绝对可以使用 hit-testi
..
我正在使用 overlaySKScene 类似的东西创建注释(https://sketchfab.com/models/1144d7be20434e8387a2f0e311eca9b1#).我跟着 https://github.com/halmueller/ImmersiveInterfaces/tree/master/跟踪 %20Overlay 以创建叠加层. 但是在提供的示例中,他们只创
..
有人熟悉使用弯曲的 UIBezierPaths 在 ARKit 中创建 SCNShape 吗?我正在创建一个封闭的圆形路径,但在我的 ARKit 场景中我得到了一个菱形. 这是我用来创建贝塞尔曲线和 SCNShape 的代码: 让半径:CGFloat = 1.0让outerPath = UIBezierPath(ovalIn: CGRect(x: -radius, y: -radius,
..
我在玩 ARKit 和图像检测.现在我有一个应用程序可以检测图像并将平面放置在屏幕上检测到的对象所在的位置. 如何在平面上添加可点击元素,如按钮.我想在每个检测到的对象上都有一个点击事件. 这是我的渲染器函数的样子: func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnch
..
我使用 ARKit 和 SceneKit 在 AR 空间中放置了一些对象.这很好用.现在我想添加一个额外的相机 (SCNCamera),它放置在场景中的其他地方,由一个公共 SCNNode 附加和定位.它旨在从另一个(固定)角度向我展示当前场景. 现在我想在 i.Ex 上展示这个额外的 SCNCamera 提要.一个 SCNPlane(作为第一个漫反射材料) - 就像一个电视屏幕.当然,我知
..
我正在创建一个 iOS ARKit 应用程序,我想在增强现实中放置一个大对象. 当我尝试将对象放置在特定位置时,它似乎总是随着相机位置的变化而移动,而且我无法通过更改相机位置从所有角度查看对象. 但是如果我将它的比例值减小到 0.001(减小对象的大小),我可以从各个角度查看对象,并且放置的对象的位置也不会改变到那个程度. 物体的边界框:- 宽度 = 3.66 高度
..
我正在尝试使用 ARKit 的 3D Face Mesh 获取眼睛的宽度和 2 只眼睛的距离. 我用过ARAnchor的CATransform3D; struct CATransform3D{CGFloat m11、m12、m13、m14;CGFloat m21、m22、m23、m24;CGFloat m31、m32、m33、m34;CGFloat m41、m42、m43、m44;};
..
我希望添加与此应用程序类似的广告牌效果:https://twitter.com/marpi_/status/897130955105644544 我希望使用 SCNText 几何的 SCNode 始终面向相机. 我尝试过但没有成功: SCNLookAtConstraint 以sceneView.pointOfView 作为目标,但这会旋转节点以背离相机,导致文本向后,并且无法更改
..
尝试使用 ARKit 来显示 WKWebView,我得到的只是一个显示背景但没有前景的页面.虽然页面可以滚动.我附上了 Apple 网页作为屏幕截图. 代码如下: DispatchQueue.main.async {让 webView = WKWebView(frame: CGRect(x: 0, y: 0, width: 640, height: 480))让 request = URL
..
在这个视频中,一个物体被赋予了一个动画,它在放置时会在房间周围盘旋,然后当点击它时,它会以另一个动画下降.如何在我的项目中添加这种动画?添加一个已经动画的对象是唯一的方法吗? 谢谢 https://youtu.be/OS_kScr0XkQ 解决方案 我认为上下悬停很可能是一个动画序列.以下用于悬停效果的动画序列将在第一个下拉选择功能中起作用. let moveDown =
..