草庐IT

augmented-reality

全部标签

swift - 为 preferredFramesPerSecond 使用自定义值

我想让我的ARkit应用程序以每秒特定的帧数(在我的例子中是25fps)运行。我可以通过修改这个参数来得到这个:preferredFramesPerSecond但它总是设置30fps,而不是25。它适用于5、15、20、30、45或60,但为什么不适用于25fps?overridefuncviewDidLoad(){super.viewDidLoad()...sceneView.preferredFramesPerSecond=25...}提前致谢! 最佳答案 实例属性preferredFramesPerSecond用于显示链接回调

swift - 使用 ARKit 将图库中的图像放置在墙上

我有一个来自服务器并存储在图库中的图像列表。我想使用ARKit选择任何图像并将其放置在动态墙上,并希望将图像转换为3d图像tp执行缩放、移动图像等操作。谁能指导我如何在AR中创建自定义对象? 最佳答案 要在ARKit中检测垂直表面(例如墙壁),您需要首先设置ARWorldTrackingConfiguration,然后在您的应用中启用planeDetection。因此,在您的类声明下,您将创建以下变量:@IBOutletvaraugmentedRealityView:ARSCNView!letaugmentedRealitySess

iphone - 适用于 iOS 的增强现实和快速前置摄像头应用程序

我正在开发一个应用程序,它需要使用iPhone的前置摄像头来实现使用swift的增强现实体验。我尝试使用ARKit,但ARKit制作的前置摄像头仅支持iPhoneX。那么,除了ARKit之外,我可以使用哪些框架或库与swift一起开发具有AR体验的应用程序,尤其是前置摄像头? 最佳答案 ARKit不是在iOS上创建“AR”体验的唯一方式,也不是Apple允许在AppStore中创建“AR”的唯一方式。如果您将“前置摄像头AR”定义为“使用前置摄像头,检测面部,允许放置虚拟2D/3D内容叠加层,这些内容似乎与面部保持连接”,那么有许多

swift - simd_float4x4 列

我想在不旋转图像的情况下平移平面。出于任何原因,我的图像正在旋转。vartranslation=matrix_identity_float4x4translation.colum=-0.2lettransform=simd_mul(currentFrame.camera.transform,translation)planeNode.simdWorldTransform=matrix_multiply(currentFrame.camera.transform,translation)此外,我注意到matrix_identity_float4x4包含4列,但文档不可用。为什么是4列?有

swift - 使用 SCNGeometryPrimitiveType 多边形崩溃/错误创建自定义 SCNGeometry 多边形平面

我正在尝试创建一个具有自定义形状的平面形式的自定义SCNGeometry,它可以放置在ARKitsession中。我在以下方法中使用选项SCNGeometryPrimitiveTypePolygon似乎工作正常:extensionSCNGeometry{staticfuncpolygonPlane(vertices:[SCNVector3])->SCNGeometry{varindices:[Int32]=[Int32(vertices.count)]varindex:Int32=0for_invertices{indices.append(index)index+=1}letvert

swift - 如何在 ARKit 中使用环境贴图?

ARKit2.0添加了一个名为AREnvironmentProbeAnchor的新类。阅读它的说明,似乎ARKit可以自动收集环境纹理(立方体贴图?)。我相信我们现在可以创建一些反射(reflect)真实环境的虚拟对象。但我仍然不清楚这是如何工作的,尤其是环境纹理是如何生成的。有没有人有简单的示例代码来演示这个很酷的功能? 最佳答案 AREnvironmentProbeAnchor(适用于iOS12.0+)是基于图像的光照技术的anchor。模型的PBR着色器可以反射来自周围环境的光。原理很简单:来自源的6个正方形图像进入着色Mat

ios - ARKit:将 3D 对象放置在图像之上

我正在尝试在引用图像上正确添加3D对象。为了在现实世界中的图像上添加3D对象,我使用了imageAnchor.transform属性,如下所示。funcrenderer(_renderer:SCNSceneRenderer,didAddnode:SCNNode,foranchor:ARAnchor){guardletimageAnchor=anchoras?ARImageAnchorelse{return}letreferenceImage=imageAnchor.referenceImageupdateQueue.async{//Addavirtualcupattheposition

swift - 重置 ARKit 坐标

我有一个简单的问题。如果我想开始游戏并将棋盘放在我面前:gameBoard!.position=SCNVector3(0,0,-0.6)这一直有效,直到我离开游戏并再次回来。我可以在镜头前完全相同的位置或在我面前的0.6m显示游戏板吗?我可能已经换到另一个位置了。 最佳答案 如果您想重置ARSession,您必须暂停、删除所有节点并通过重置跟踪和删除anchor来重新运行您的session。我制作了一个重置​​按钮,每当我想重置时它都会执行:@IBActionfuncreset(_sender:Any){sceneView.sess

swift - 3d模型SceneKit/ARKit最好使用哪种格式文件

我阅读了一些教程,了解如何在SceneKit/ARKit应用程序中放置3d对象,它们都使用.scn格式的对象文件。但我发现如果我使用原始的.dae格式并且不将其转换为.scn格式则没有任何问题。我真的看不出.dae和.scn格式之间有什么区别。实际上结果在我看来是一样的,但你能解释一下它们之间的区别以及我应该在什么情况下使用什么吗?谢谢! 最佳答案 差异.dae和.scn格式之间的区别很明显。Collada.dae(代表数字Assets交换)是一种跨平台的基于XML的架构文件格式用于3D创作应用程序(如Maya或Blender)中的

swift - 如何使用 ARKit Swift 将对象附加到相机位置?

我有移动的物体,我希望这些物体能够与我的玩家发生碰撞。我有能力通过获取我当时的当前位置/方向来从我身上发射物体,但我不明白如何将一个物体附加到我身上,它会一直跟随我的定位。 最佳答案 在SceneKit中,所有可以在场景中占有一席之地的东西都是(附加到)一个节点。这不仅包括可见物体,还包括光源和相机。当您使用ARSCNView时,仍然有一个SceneKit相机,但ARKit控制它的位置/方向。SceneKit节点创建一个层次结构:每个节点的位置(和方向等)都是相对于其父节点的。如果父节点在场景中移动,其子节点也会随之移动,以便它们保