scenekit相关内容

ARKit 添加 X 翻转的 2D 视频

所以我有以下代码来创建自定义墙 let wall = SCNPlane(width: CGFloat(distance),高度:CGFloat(height))wall.firstMaterial = wallMaterial()让节点 = SCNNode(几何:墙)//总是在沙滩球之前渲染node.renderingOrder = -10//获取中心点node.position = SCNV ..
发布时间:2021-11-17 21:32:57 移动开发

ARKit - 获得“意外发现为零";使用 SCN 文件时300 MB

我正在加载一个 300mb 的 .dae 扩展 3d 模型,转换为 .scn,有 440 万个顶点,150 万个多边形,这是一个建筑的 3d 模型,由一位艺术家在 3DS MAX 中创建,如下所示: 让sceneToLoad = SCNScene(命名为:“art.scnassets/building1.scn")! (它被加载到应用程序的 SCNView 默认查看器中,以便用户可以查看、旋转 ..
发布时间:2021-11-17 21:32:54 移动开发

SCNNode中的Orientation和Rotation有什么区别

我对 SCNNode 的“旋转"和“方向"感到很困惑.在 Apple 的文档中,它们的定义非常相似: orientation:节点的方向,用四元数表示.可动画. rotation:节点的方向,表示为绕轴的旋转角度.可动画. Apple doc 说:旋转、eulerAngles 和方向属性都会影响节点变换属性的旋转方面.对这些属性之一的任何更改都会反映在其他属性中. 所以他们 ..
发布时间:2021-11-17 21:32:51 移动开发

SceneKit:材质预览始终为黑色

在 Xcode 中,我有一个从 .DAE 文件转换而来的 .SCN 文件.我与制作模型的人一起设置了所有基于物理 (PBR) 的设置.但无论我做什么,预览总是黑色的. 此外,如果我将环境更改为 Procedural Sky,模型也会显示为黑色. 我知道向场景添加灯光会“修复"这个问题,但我必须这样做吗?因为它给了我的模型不切实际的阴影? 解决方案 我将照明设置更改为纹理列表中的 ..
发布时间:2021-11-17 21:32:45 移动开发

SceneKit AR 游戏 fps 越来越低并且设备随着使用而变热

我正在使用 ARKit 和 SceneKit 开发 3D 游戏.游戏以 60 fps 流畅运行,但是当我继续使用它一段时间时,设备会变热并且帧速率下降到 30 fps.能量影响非常高,我在 Instruments 中注意到了一些东西.我将展示统计数据以及我在 Instruments 中看到的内容.这是游戏流畅运行时的统计数据,但我不明白为什么我得到 1.16K 作为节点数.我实际上并没有使用这么多 ..
发布时间:2021-11-17 21:32:39 移动开发

SceneKit - 围绕 X 轴和 Z 轴旋转对象

我将 ARKit 与 SceneKit 结合使用.当用户按下按钮时,我会创建一个锚点,并在对应的 SCNNode 中添加一个 3D 对象(从项目中的 .scn 文件加载). 3D 对象面向相机放置,与相机的方向相同.我想让它看起来像物体放在一个平面上,如果是这样的话,它不会倾斜.所以,如果我做对了,我需要应用一个旋转变换,使其绕 X 轴和 Z 轴的旋转变为 0. 我对此的尝试是:取节点 ..
发布时间:2021-11-17 21:32:27 移动开发

如何在 SceneKit 编辑器中将模型的枢轴点居中

无论如何可以将模型的枢轴居中吗?当前(默认情况下)它设置在左下角.我想设置到中心.我怎样才能做到这一点? 图片如下: 更新:我添加了另一个节点并将椅子添加为孩子. 所以,现在它工作得更好,但它不会一直旋转,如果我继续旋转,它会重置位置.这是平移操作的代码: @objc func panned(recognizer :UIPanGestureRecognizer) {var n ..
发布时间:2021-11-17 21:32:24 移动开发

如何计算垂直平面可见部分的四边形?

我的目标是计算“可见"垂直平面的一部分,锚定到某个 ARPlaneAnchor 并用四边形表示,如下图所示: 我目前的方法是基于少数命中测试,不幸的是,这似乎没有给我令人满意的结果. 首先,当我检测到一个 ARPlaneAnchor 时,我会在它的主节点上添加一个巨大的隐形 SCNNode. func renderer(_ renderer: SCNSceneRenderer, di ..
发布时间:2021-11-17 21:32:09 移动开发

重置 ARKit 坐标

我有一个简单的问题.如果我想开始游戏并将棋盘放在我面前: gameBoard!.position = SCNVector3(0, 0, -0.6) 这一直有效,直到我离开游戏并再次回来.我可以在镜头前或 0.6m 前面完全相同的位置显示游戏板吗?我可能已经搬到了另一个位置. 解决方案 如果您想重置 ARSession,您必须暂停、删除所有节点并通过重置跟踪和删除锚点重新运行会话. ..
发布时间:2021-11-17 21:32:06 移动开发

将具有透明度的 UIView(来自 xib)添加到 SceneKit

我正在尝试将一个 UIView 加载到具有半透明背景的 SceneKit 中,但目前,随着我降低不透明度,它只会淡化为白色.我想加载到 SceneKit 的 .xib 文件中有一个非常简单的 UIView 布局.到目前为止,我可以在 SCNMaterial 中显示 UIView,更改视图内的任何文本字段、图像等,没有问题.但是,我不能让它具有透明度.如果我更改视图的 alpha,它只会淡化为白色. ..
发布时间:2021-11-17 21:32:03 移动开发

手指按压所在的 ARKit 放置节点

我正在使用 ARKit 开发一个 ios 应用程序,我想知道如何在我的手指按在屏幕上但距离屏幕大约 0.5m 的位置创建一个节点.我知道我必须考虑设备的方向,但我仍然很困惑从哪里开始.任何帮助都会很棒!谢谢. 解决方案 解决方案很简单. 将您需要的节点作为子节点添加到具有位置向量 (0,0,1) 的相机中.现在,保存您创建的那个节点的世界位置,并立即从相机中移除子节点. 再次将 ..
发布时间:2021-11-17 21:31:36 移动开发

Swift 从 URL Xcode 加载 3d 资产

我有一个简单的 HTTP 服务器正在运行,我试图从我的本地服务器获取这个场景包,但它显示我 NIL 错误,或错误加载场景.我不明白如何从我的简单本地主机加载这个模型.如何配置我的代码,以便我能够从远程或本地服务器获取任何 Scenekit. 提前致谢 做 {let shipScene = try SCNScene(url: URL(fileURLWithPath: "http://loc ..
发布时间:2021-11-17 21:31:34 移动开发

SCNShape 在某些情况下不使用 UIBezierPath 绘制

我认为这可能是一个 iOS 错误,我已通过错误报告将其报告给 Apple.如果我可以使用一些解决方法或解释原因,我会在此处发布它. 我想在 SceneKit 中绘制 UIBezierPath 的描边.我正在使用 CGPath copyStrokingWithWidth 函数,然后使用给定的路径创建一个 SCNShape. 这适用于 2 点的线,但在 3 点的线上,SCNShape 不显 ..
发布时间:2021-11-17 21:31:27 移动开发

从 SCNScene url 获取下载进度

我正在使用 ARKit,但无法从 SCNScene url 获取下载进度.这是我的代码: func downloadModel(hitTestResult: ARHitTestResult) {DispatchQueue.global().async {//创建加载视图//我想在这里获得下载进度let loading = UIAlertController(title: nil, message ..
发布时间:2021-11-17 21:31:25 移动开发

如何为 ARKit 将 dae 导入 SceneKit

如果我运行 Xcode 的 ARKit 项目模板,我可以按预期移动默认船. 我尝试导入一些我从 Blender 导出的 dae 模型,将船切换到新项目但保持代码相同.它们总是显示在视图中,但位于相机前面.如果我试图在模型周围移动,它会粘在相机前面并且不会停留在同一个虚拟空间中. 我也试过从另一个教程导入一个 dae 并且按预期工作. 在将 3d 模型导出为 Collada dae ..
发布时间:2021-11-17 21:31:09 移动开发

ARKit – 有没有办法知道对象在与 ARCamera 相关的空间中的位置?

我在 ARKit 的屏幕上有一个对象,我想知道它与相机方向之间的水平角度,或者至少该对象位于屏幕的左侧、中间或右侧? 解决方案 绝对(很好) 首先,我们需要了解 ARKit. ARKit 对象不在 实际 空间中,而是基于相机看到的内容. 相机并不完美;您会注意到 “静止" 物体由于光线、周围环境等原因四处移动. 没有人的手是稳稳的;不仅物体会移动,手机也会做一些小的 ..
发布时间:2021-11-17 21:30:45 移动开发

在 iPhone X(SceneKit/ARKit 应用程序)上从 2D 区域获取面部标志点的深度很困难

我正在 iPhone X 上使用前置摄像头运行面部标志检测,并且非常努力地获取面部标志的 3D 点(VNFaceLandmarkRegion2D 仅提供图像坐标 X、Y). 我一直在尝试使用 ARSCNView.hitTest 或 ARFrame.hitTest,但到目前为止都没有成功.我认为我的错误可能是将初始地标点转换为正确的坐标系.我已经尝试了很多排列,但目前根据我的研究,这是我想出的 ..
发布时间:2021-11-17 21:30:42 移动开发

为什么 Xcode 会显示比 Instruments for SceneKit 应用程序更多的内存使用?

我正在尝试调试为什么我们的基于 SceneKit 的应用程序使用了如此多的内存,但 Xcode 和 Instruments/Allocations 对于所使用的内存量似乎有非常不同的值.当我查看 Xcode 时,我看到类似 600 MB 的内容,但是当我将相同的运行会话转移到 Instruments/Allocations 时,我看到了一个非常不同的持久字节数,例如 150 MB. 哪个是正 ..
发布时间:2021-11-17 21:30:20 移动开发