老柯修机铺

通讯行老师傅的手机软件笔记——每款 App 装过、用过,才敢写下来

空房间里的虚拟家具:我用 ARCore 解决了装修选款的噩梦

项目内容
软件ARCore
版本1.52.253
平台Android APK
体积58.77M
分类摄影图像
开发商Google Inc.
包名com.google.ar.core
官网ARCore 官网
下载一ARCore 下载,ARCore 下载
下载二ARCore 下载,ARCore 下载
文档ARCore 文档
介绍装修时纠结家具尺寸和风格,直到朋友点破手机里藏着 ARCore——Google Play Services for AR,一款驱动所有安卓 AR 应用的后台引擎,帮我在空客厅里精确预览了每一件家具。

ARCore 是什么

ARCore 的全称是 Google Play Services for AR,也叫谷歌 AR。它不是一个能单独打开的 App,而是藏在安卓系统里的一套后台引擎——负责让手机摄像头看懂真实世界、追踪自己的位置、估计物体的距离和大小,然后把虚拟的 3D 内容准确地叠到真实画面上。你在手机上玩的 AR 宠物、扫海报弹出来的角色动画、家具卖场里让你预览沙发摆在家中效果的应用,背后跑的都是它。适合谁?要么是想自己做 AR 应用的开发者,要么就是想免费体验 AR 能力的普通安卓用户——手机只要是近年出的、装了 Google Play 服务,大概率已经自带了,不用额外下载。

空客厅的难题

今年开春开始装修,硬装很快就搞定了,到了软装阶段却卡住了。客厅四十平米,沙发要选多大、茶几配什么形状、电视柜摆哪不挡插座——网上看图片都是 studio 拍的好看,放自己家空荡荡的客厅里,完全想象不出效果。问老婆,她说你先买回来放进去看看啊;问卖家具的,说支持七天无理由——可把一套沙发抬上去再抬下来,光搬运费就够喝两顿奶茶。

最头疼的是尺寸。我在纸上画了方格图,按比例尺摆来摆去,总觉得纸上的两维空间和真实的三维房间差得远。脚边这根柱子占多少视觉空间、门打开后沙发会不会挡住过道、坐在沙发上能不能看到阳台的花架——这些纸上算不出来。

朋友的一句话

那天和做 Android 开发的朋友吃饭,吐槽到一半,他筷子一放:"你手机里有 AR 能力你知道吗?"

我当然知道 AR 是什么——Pokémon Go 我也玩过,但那都是啥年代的事了。他笑我:"现在安卓手机里藏着一个叫 ARCore 的引擎,所有 AR 应用都靠它驱动,你装个家具卖场的 App,就能在房间里摆虚拟家具,尺寸都是真实比例。"

我半信半疑。他掏出自己的 Pixel,打开一个家具 App,对准咖啡馆的桌面扫了两秒——桌面上立刻出现了一把小巧的椅子,我伸手去碰,手指居然穿过了虚拟椅腿,而旁边真实的纸巾盒还在原位。他把手机往前后挪,椅子的大小会根据距离自动调整;他绕着桌子转,椅子也跟着转角度,就真的放在那里似的。

第一次实战

回家第一件事,我打开应用商店,下载了一款主打家具预览的 App。安装包只有十几兆,点开后首页就提示:"需要您的摄像头和位置权限。" 我点了允许,屏幕立刻变成了摄像头画面——我那空荡的客厅就这样出现在手机里。

App 有一个引导教程,让我拿着手机缓慢移动,扫过地面和墙面。刚开始画面上什么都没有,过了大概十几秒,地面上出现了一层淡蓝色的网格——这就是 ARCore 在做的事:通过摄像头识别特征点,建立起当前空间的三维地图,同时追踪手机自身的位置和姿态。专业术语叫 SLAM,同时定位与地图构建,但对用户来说就是:扫一下地,手机就"记住"了这个房间长什么样。

ARCore 运动追踪与 SLAM 建图

网格稳定之后,我在应用里选了一款三人位布艺沙发,点了一下"放入房间"——沙发的 3D 模型直接出现在了网格中间。我用手指拖动它到客厅中央,旋转了一下角度,让它和窗户对齐。神奇的事情发生了:我起身走到阳台再回头看,手机里的沙发还稳稳地钉在原地,没有跟着手机的视角偏移跑掉。朋友后来告诉我,这是 ARCore 的锚点机制——把虚拟物体绑定到真实空间中的某个位置,不管你怎么动手机,锚点的位置不会漂。

遮挡的惊喜

真正让我觉得值的,是试电视柜的时候。我把电视柜放在沙发对面的墙边,然后站在沙发和电视柜之间——手机里,电视柜的后半部分被我的身体挡住了,就像真的有个电视柜在我身后似的。之前在网上看到的 AR 演示视频里,虚拟物体总是"盖"在所有真实物体上面,人走到后面也挡不住,看起来很假。但这款应用里,ARCore 利用手机的深度传感器算出了每个像素离相机的距离,虚拟电视柜的深度值比我身体靠后,所以被正确地挡在了后面。我绕着房间转了一圈,走到柱子后面的时候,沙发的一角也被柱子挡住了——遮挡渲染让虚拟物体真正融入了环境,而不是贴在画面上的一层贴纸。

ARCore 环境理解与遮挡渲染

不止家具

沙发和电视柜的位置就这样定下来了。但我发现 ARCore 能做的远不止摆家具。我拿起一本书,用手机对准封面——App 识别出这是一本特定的书,自动弹出了 3D 模型展示页面。朋友说这叫图像跟踪,应用开发者可以预先把海报、产品包装、名片这类平面图片注册成"触发器",ARCore 在运行时自动从摄像头画面里提取特征点和数据库匹配,匹配成功就在图片位置叠加 AR 内容。电影首映礼上扫海报弹角色动画、产品展会上扫包装出 3D 展示,都是这个原理。

收尾

沙发买回来那天,我和老婆一起拆包装、搬上楼、摆到客厅中央。我掏出手机打开那个 AR 家具 App,重新扫了一下地面,把虚拟沙发的位置和真实沙发对齐——几乎一模一样。尺寸没选大也没选小,和墙面、门、柱子的间距都和预览时完全吻合。

ARCore 作为一套后台引擎,它的存在感其实很低。你不会在手机桌面上找到它的图标,不会在应用列表里看到它的名字,甚至很多人用着它驱动的 AR 应用却不知道它的存在。但它把运动追踪、环境理解、深度估计、多人互动这些复杂的 AR 能力封装成了一套标准接口,开发者不用从零开始写 SLAM 算法,普通用户不用下载任何额外的驱动就能直接体验。对我这种只想在装修时多一个靠谱参考的人来说,这种"藏在背后但好用"的姿态,反而是最好的。

本文为个人基于网络公开资料整理编写,非官方内容,仅供学习交流参考;软件版权归原作者所有,请支持正版;使用过程中遇到问题请查阅官方渠道,本文不承担任何责任。

同类文章