Tag: VR

如何在iOS中使用OpenGL ES 3.0和GLKit创建360视频播放器

360视频是同时记录每个方向的视图的视频记录。 在播放期间,观众可以像全景图(Wiki)一样控制观看方向。 现在,它越来越受欢迎,通常您会在Facebook的新闻源,Youtube的360个频道中看到360个视频,甚至在诸如NYTimes和Wallstreet Journal之类的新闻应用程序中也是如此。 在本教程中,您将学习如何使用OpenGL ES 3.0和GLKit从零开始制作360视频播放器。 由于该实现很大程度上依赖于OpenGL,并且OpenGL是跨平台的,因此该应用程序可以移植到其他平台,例如Android,Windows甚至是Web(WebGL)。 在此过程中,您将学到: 如何使用GLKit在iOS中以编程方式绘制几何 如何与OpenGL几何体交互 如何将视频帧用作OpenGL纹理 不禁开始? 让我们开始🙂 注意:此360视频播放器应用程序教程假定您了解OpenGL和GLKit开发的基础知识。 如果您不熟悉OpenGL或GLKit开发,请查看我们的iOS OpenGL教程:OpenGL ES 2.0,以GLKit和OpenGL视频教程开始OpenGL ES 2.0,首先是OpenGL ES和GLKit入门系列。 入门 下载入门项目, 然后在Xcode中打开Go360.xcodeproj 。 在Xcode控制台左侧的导航栏中,您将看到demo.m4v 360视频,最终将其显示在应用程序中。 另外还有4个其他文件夹: Main , Shader , Model和Extension 。 当时无需关心它们。 生成并运行应用程序; 您将看到一个彩色的球体旋转。 目前,您只听到360度视频的音乐。 不用担心 您最终将看到该视频。 如何绘制球体 您只能在OpenGL中绘制三角形。 通过连接Vertex ,您可以绘制三角形。 使用越来越多的三角形,您可以建立一个看起来光滑的球体。 在项目中,使用OpenGL ES 3.0编程指南中的示例代码esShapes.c。 该代码用于以编程方式生成球体的“ 顶点” ,“ 纹理坐标”和“ 索引” 。 […]

ARKit基础知识—世界跟踪和定位101🗺

在本教程中,我们从头开始设置一个基本的ARKit应用程序,并了解ARKit应用程序中包含的组件。 具体来说,我们将专注于世界跟踪和定位。 定位🎯 关于定位的第一件事是节点的位置始终相对于父节点。 为了定义节点的位置,我们使用SCNVector3。 SCNVector3是3D向量。 在我们的SCNVector3节点中,有三个参数分别代表我们的x,y和z轴。 node.position = SCNVector3(0,0,0) 您可以通过将节点设为场景根节点的子节点来将其放置在场景视图中。 根节点是一个节点,没有形状,大小或颜色。 sceneView.scene.rootNode.addChildNode(节点) 如果我们运行我们的应用程序并触摸“添加”按钮,我们会发现我们的盒子直接添加到了我们的世界原点。 现在只剩下这些,直到下一次。 #TFH✌🏾

Polidea实验室:使用iPhone增强现实

在Polidea Labs系列的下一集中,我们以增强现实为主题。 关于Web AR的文章即将发布,如果您想阅读有关我们的VR实验的全部内容,可以在这里找到。 这次,我们正在处理iOS上的增强现实。 苹果无情地对AI话题保持沉默的黑暗时代已经一去不复返了。 苹果公司最近的WWDC真正爆发了利用机器学习的新闻介绍框架。 这些有很多口味。 在Polidea Labs,我们快速浏览了其中两个工具:ARKit和Vision。 您可能要记住,这些都是beta。 (我们希望您像我们一样喜欢Apple的beta版🙂 在使用上述工具进入增强现实之前,需要执行以下几个步骤。 在Mac上安装Xcode 9 Beta,并在设备上安装iOS 11 Beta。 顺便问一下,您知道这意味着什么吗? 无线构建,是的! 最后! 除了不是真的。 Vision和ARKit都做很多繁重的事情,结果他们像疯了一样吞噬了电池。 因此… 请将充电器放在手边。 请耐心等待-Xcode 9尽了最大努力,但往往会发生很多崩溃。 忘掉文档-Apple工程师要做的工作比编写文档要好。 经过所有这些工作之后,您就可以开始了。 ARKit提供了一个平台,可用于开发iOS应用中的AR(增强现实)体验。 这意味着可以从iPhone或iPad的摄像头向实时视图中添加2D或3D元素,以使这些元素好像生活在现实世界中。 ARKit集成了iOS设备的摄像头和运动功能,以创建增强现实体验。 它还提供与SceneKit和SpriteKit的集成,以及与Metal 2的更底层控制。 ARKit可以分为三个主要层: 跟踪 ,它提供有关设备在物理环境中的相对位置的实时信息。 ARKit使用视觉惯性测距法,听起来像火箭科学,对吗? 但简单来说,它使用引擎盖下的AVFoundation和CoreMotion来估算设备相对于其起始位置的3D位置。 场景理解 ,提供平面检测,命中测试或光线估计等功能。 借助这些功能,ARKit使我们能够将任何虚拟内容集成到物理世界中。 渲染。 特别是向SpriteKit和SceneKit开发人员致敬-ARKit为您实现了大多数渲染。 好消息是,据说Unity和Unreal都支持所有ARKit功能(这在我们最近对PolideaLabs的调查之后为我们打开了一些有趣的机会。 您需要做的就是告诉ARSceneView的会话 (显示为常规摄像机视图)以指定的配置运行。 ARKit处理所有处理。 您可以创建一个ARWorldTrackingSessionConfiguration ,以六个自由度跟踪设备的移动:三个旋转轴(滚动,俯仰和偏航)和三个平移轴(在x,y和z中移动)。 ARSession对象输出快照( ARFrame对象),其中包含有关会话状态的所有数据。 您将完全根据自己的意愿来做这些事情-想象力是极限(或者实际上,可能是ARKit的神秘崩溃)。 特别感谢 吉卜林先生 […]