HarmonyOS鸿蒙Next中仅需6步,实现虚拟物体在现实世界的精准放置
HarmonyOS鸿蒙Next中仅需6步,实现虚拟物体在现实世界的精准放置 增强现实(AR)技术作为一种将数字信息和现实场景融合的创新技术,近年来得到了快速发展,并在多个应用领域展现出其独特的魅力。比如在教育行业,老师可以通过虚拟现实场景生动直观地帮助学生理解抽象概念;在旅游行业,AR技术还能虚拟历史文化场景、虚拟导航等,为游客提供更加沉浸的互动体验。
然而,对于应用来说,AR技术的开发使用绝非易事,这需要高昂的开发成本和专业的技术人才。基于此,HarmonyOS SDK为广大应用开发者提供了先进的AR技术,解决了开发成本和技术门槛的难题。
在集成AR Engine能力后,开发者只需6个开发步骤,就可以实现将虚拟物体摆放于现实世界的平面上,实现虚拟和现实的融合,该功能可应用于虚拟家具放置、数字展厅布展等场景,为用户提供虚实结合的新体验。
功能演示
业务流程
AR摆放实现的业务流程主要分为打开应用、识别平面并展示和放置虚拟物体三个部分。
第一部分是用户打开应用,应用需要向用户申请相机权限。如果用户未同意授权,则无法使用该功能。
第二部分中,AR Engine识别平面并展示。包括完成AR Engine初始化,更新ARFrame对象、获取平面、绘制平面并显示预览画面等步骤。
第三部分为放置虚拟物体。即用户点击屏幕,通过碰撞检测获取现实环境中的兴趣点,并在兴趣点上创建锚点,最终实现在锚点位置绘制虚拟物体,并将虚拟物体显示在预览画面上。
开发步骤
在实现AR物体摆放的具体开发步骤之前,开发者需要先创建Native C++工程,声明ArkTs接口,并申请以下权限授权。
1.创建UI界面
在做好准备工作后,需要创建一个UI界面,用于显示相机预览画面,并定时触发每一帧绘制。
2.引入AR Engine
创建完UI界面后,引入AR Engine头文件,并编写CMakeLists.txt。
3.创建AR场景
首先,配置AR会话及预览尺寸。
4.获取平面
调用HMS_AREngine_ARSession_Update函数更新当前AREngine_ARFrame对象。
获取相机的视图矩阵和相机的投影矩阵,用于后续绘制。
调用HMS_AREngine_ARSession_GetAllTrackables函数获取平面列表。
调用HMS_AREngine_ARPlane_GetPolygon函数获取平面的二维顶点坐标数组,用于绘制平面边界。
将平面的二维顶点坐标转换到世界坐标系,并绘制平面。
5.点击屏幕
用户点击屏幕后,基于点击事件获取屏幕坐标。
调用HMS_AREngine_ARFrame_HitTest函数进行碰撞检测,结果存放在碰撞检测结果列表中。
6.放置虚拟物体
调用HMS_AREngine_ARHitResultList_GetItem函数遍历碰撞检测结果列表,获取命中的可跟踪对象。
判断碰撞结果是否存在于平面内部。
在碰撞结果位置创建一个新的锚点,并基于此锚点放置虚拟模型。
调用HMS_AREngine_ARAnchor_GetPose函数获取锚点位姿,并基于该位姿绘制虚拟模型。
了解更多详情>>
更多关于HarmonyOS鸿蒙Next中仅需6步,实现虚拟物体在现实世界的精准放置的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,通过6步即可实现虚拟物体在现实世界的精准放置:
-
初始化AR引擎,确保设备支持AR功能;
-
创建AR场景,设置场景参数;
-
使用摄像头捕捉现实环境,进行环境识别;
-
通过手势或点击选择放置位置;
-
将虚拟物体与识别到的平面或特征点对齐;
-
确认放置,完成虚拟物体的精准定位。
这一过程充分利用了鸿蒙系统的AR能力,确保虚拟与现实的无缝融合。