Tango手机分析 3D点云 室内环境重建

本文介绍了Tango手机的3D重建技术,包括两种3D显示方式、两种姿态获取方式及其室内重建架构。详细解析了UI主流程、渲染流程和数据处理流程,并概述了如何通过Tango3dReconstruction类进行3D重建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前一直在PC使用pmd pico flex深度相机,从上一篇文章开始尝试使用Tango手机。Tango手机集成了pmd Sunny深度相机。

tango渲染3D方式

tango范例通过2种方式来显示3D效果:
1、显示点云范例中,利用的是印度人写的插件rajawali。rajawali是基于OpenGLES,集成了大量功能,上手很方便,但不够自由。就像“美图秀秀”。
2、室内环境重建范例中,则是直接利用OpenGLES20来写的。OpenGLES是基于C语言开发,编写不方便,尤其是着色器部分比较复杂,但优势是自由,类似于“Photoshop”。

tango获取姿态方式

tango可通过2种方式获取姿态:
1、IMU惯导。
2、普通摄像头。

Tango室内重建 架构

UI主流程

Created with Raphaël 2.1.0 设置Tango/ TangoConfig Tango.connectListener 读取点云、图像 通过 TangoPointCloudManager、TangoImageBuffer 保存当前帧数据 设置OpenGLES渲染器 Tango.connectListener 读取点云、图像 开启GLSurfaceView渲染视图

渲染流程

Created with Raphaël 2.1.0 设置着色器 TangoSupport.getMatrixTransformAtTime 获取姿态数据,以矩阵形式传给着色器 将当前帧点位置、颜色、索引信息存入HashMap<index,buffer> HashMap的位置、颜色、索引存入着色器渲染 是否停止绘图 no

数据处理流程

Created with Raphaël 2.1.0 点云存入TangoPointCloudManager 获取当前帧的 TangoPointCloudData、 TangoPoseData、 TangoImageBuffer、 TangoPoseData 通过Tango3dReconstruction的native方法 生成对准后的彩色点云TangoMesh[] 将当前帧的TangoMesh的index与HashMap中对比, 将当前帧存入HashMap 进行OpenGLES渲染

封装native方法

环境配置

3D重建部分通过Tango3dReconstruction类来实现,需要在app的build.gradle中配置compile “com.google.tango:sdk-reconstruction:1.55”。

这样就能添加tango_java_3d_reconstruction_api 本地库

涉及功能

Created with Raphaël 2.1.0 Tango3dReconstructionConfig Tango3dReconstruction 通过updateWithPointCloud打包点云(及姿态)、图像(及姿态) 通过extractMeshSegment生成mesh及index 生成当前帧的TangoMesh[]

其中TangoMesh中已实现RGB和XYZ坐标点的对准,及三角形网格序列的排布。既可通过
glDrawElements(GL_POINTS……)实现彩色点云效果。
glDrawElements(GL_POINTS……)实现彩色点云效果。
glDrawElements(GL_TRIANGLES……)实现彩色网格显示。
glDrawElements(GL_TRIANGLES……)实现彩色网格显示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值