【AR开发-开源框架】使用Sceneform-EQR快速开发AR应用,当前接入了AREngine、ORB-SLAM,可快速地适配不同的安卓设备

Sceneform-EQR

Sceneform 概览

Sceneform是一个3D框架,具有基于物理的渲染器,针对移动设备进行了优化,使您可以轻松构建增强现实应用程序,而无需OpenGL。

借助 Sceneform,您可以轻松地在 AR 应用和非 AR 应用中渲染逼真的 3D 场景。其中包括:

  • 高级场景图 API
  • 由 Filament 提供的逼真的基于物理的渲染程序
  • 一款用于导入、查看和构建 3D 素材资源的 Android Studio 插件

Sceneform仅适用于支持ARCore的设备,而在20年之后,华为设备是不被ARCore所支持的。那么若要兼容所有安卓设备,那么则需要对其进行扩展。

EQR介绍

EQ-R模块现已开源(2024年6月3日)

源(缘)于sceneform_v1.16,现正在努力完善一个可适用于所有安卓设备的轻量化渲染器((Sceneform)EQ-Renderer)。

若您使用它做AR应用,当前接入了ARCore、AREngine、ORB-SLAM,可快速地适配不同的安卓设备(无论是否支持ARCore)。

当然,您可以仅使用它构建3D场景,而无需了解OpenGL的知识。

仓库地址

Sceneform-EQR

运行

文件目录

  • Eq-Renderer : 基于sceneform(filament)扩展的一个用于安卓端的渲染库
  • SampleProj : 示例程序
├─Eq-Renderer
│  └─Android
│      └─eq-renderer
└─SampleProj└─app

运行示例

  1. 启动AndroidStudio
  2. File > Open,选择SampleProj,点击"OK"
  3. 点击"Run ‘app’ ",运行app模块

相关文档

Sceneform

sceneform相关接口使用可以参考以下文档。

需要注意的是:sceneform1.15以及之前的版本采用sfa、sfb的方式加载模型,sceneform1.16仅支持gltf2.0格式的模型(通过gltfio,具体使用可参考filament)。

Google sceneform1.16源码存档

Google sceneform1.15帮助文档

使用EQR

sceneform-eqr是对sceneform的扩展,相关接口调用与sceneform大同小异。

个人网站

Android AR渲染引擎

安卓原生AR开发

仓库地址

不用编译Eq-Renderer源码,直接使用EQ-R的aar

https://repo.eqgis.cn/com/eqgis/eq-renderer

maven {allowInsecureProtocol = trueurl "http://repo.eqgis.cn"
}

示例

三维场景中加载模型

示例

AR场景中加载模型

示例

使用EQR实现AR桌面

示例

适配双屏设备

用于采用光学透视的AR眼镜(安卓),左右双屏合目显示。

示例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/340117.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Caused by: java.rmi.server.ExportException: Port already in use: 1100;解决方案

Caused by: java.rmi.server.ExportException: Port already in use: 1100; 根据端口号找占用程序的进程号 netstat -ano|findstr 1100 最右边那个数字就是进程号 在任务管理器中 详细信息,点击pid即可按照进程号排序,找到相应的进程,判断…

盲盒小程序预售机制的设计与实施

随着盲盒市场的不断发展,预售机制逐渐成为商家吸引用户、提升销售额的重要手段。本文将探讨盲盒小程序预售机制的设计与实施,以帮助商家更好地满足用户需求并优化库存周转率。 一、预售机制设计原则 在设计预售机制时,商家需要遵循以下几个…

基于 vue-element-template 框架添加 tagsview

1. 需求 vue-element-template 是一个基础模板,默认没有 tagsview。所以要手动添加。 参考最全面的集成方案框架 vue-element-admin ,拷贝和修改相关文件到你的项目中。 2. 修改 复制如下文件或文件夹 \src\layout\components\TagsView\src\store\mo…

Docker基础篇之本地镜像发布到阿里云

文章目录 1. 本地镜像发布到阿里云的流程2. 阿里云开发平台3. 将自己的本地镜像推送到阿里云 1. 本地镜像发布到阿里云的流程 阿里云ECS Docker生态如下图所示: 2. 阿里云开发平台 在控制台找到容器和镜像服务: 然后创建一个个人实例: 下面…

号称超级增程电动,领克07EM-P带来技术变革?

近年来,自主品牌在新能源汽车领域百花齐放,尤其是在混合动力市场上,比亚迪的DM-i技术引领了风潮,秦L的一经亮相,整个车圈都沸腾了,“超级混动”的概念深入人心。 各大自主品牌都有了自己的混动平台和技术。…

实战

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 实战一:大乐透号码生成器 使用Random模块模拟大乐透号码生成器。选号规则为:前区在1~35的范围内随机产生不重复的…

大数据—元数据管理

在大数据环境中,元数据管理是确保数据资产有效利用和治理的关键组成部分。元数据是描述数据的数据,它提供了关于数据集的上下文信息,包括数据的来源、格式、结构、关系、质量、处理历史和使用方式等。有效的元数据管理有助于提高数据的可发现…

【Qt】win10,QTableWidget表头下无分隔线的问题

1. 现象 2. 原因 win10系统的UI样式默认是这样的。 3. 解决 - 方法1 //横向表头ui->table->horizontalHeader()->setStyleSheet("QHeaderView::section{""border-top:0px solid #E5E5E5;""border-left:0px solid #E5E5E5;""bord…

【C语言】位段(结构体实现位段)

目录 一、位段的定义 二、位段的声明 三、位段的内存分配 四、位段在内存中的存储方式 五、位段的优点 六、位段的跨平台问题 七、位段的应用 八、位段使用的注意事项 一、位段的定义 信息的存取一般以字节为单位。实际上,有时存储一个信息不必用一个或多个字…

经典获奖案例 | 度小满互联网金融开源软件治理解决方案

近日,广东省粤港澳合作促进会金融专业委员会和粤港澳大湾区金融创新研究院在广州联合举办“2024年粤港澳大湾区数智金融峰会暨第二届金融创新优秀应用案例与解决方案技术成果授牌仪式”。《度小满互联网金融开源软件治理解决方案》从数百个申报项目中脱颖而出&#…

Java面试八股之死锁和饥饿的区别

死锁和饥饿的区别 定义与现象: 死锁(Deadlock)是指两个或多个线程互相等待对方持有的资源而无法继续执行的情况。每个线程至少持有一个资源,并尝试获取另一个由其他线程持有的资源,从而形成一个循环等待的僵局&#…

Python 图书馆管理系统(MySQL数据库) 有GUI界面 【含Python源码 MX_032期】

使用python3,PyQt5,MySQL数据库搭建 主要功能: 用户注册、登录、修改密码、用户管理存储图书信息、采购增加和淘汰删除功能、租借功能实现图书采购、淘汰、租借功能。实现查询图书信息、采购和淘汰、库存、和租借情况实现统计图书的采购、库…

多输入多输出非线性对象的模型预测控制—Matlab实现

本示例展示了如何在 Simulink 中设计多输入多输出对象的闭环模型预测控制。该对象有三个操纵变量和两个测量输出。 一、非线性对象的线性化 运行该示例需要同时安装 Simulink 和 Simulink Control Design。 % 检查是否同时安装了 Simulink 和 Simulink Control Design if ~m…

【Python】【matLab】模拟退火算法求二元高次函数最小值

一、目标函数 求二元高次函数的最小值。目标函数选择: 用于测试算法的简单的目标函数: 二、Python代码实现 import numpy as np# 目标函数(2变量) def objective_function(x):return x[0] ** 2 2 * x[0] - 15 4 * 4 * 2 * x[…

Flutter:革新移动开发的开源框架

在今天的移动应用开发领域,Flutter 已成为最受欢迎的开源框架之一。由 Google 开发并在 2017 年发布,Flutter 允许开发者使用单一代码库来构建跨平台的高性能应用,有效地覆盖了 iOS 和 Android 两大平台。接下来,我们将深入探索 F…

深度学习-05-反向传播理论知识

深度学习-05-反向传播理论知识 本文是《深度学习入门2-自製框架》 的学习笔记,记录自己学习心得,以及对重点知识的理解。如果内容对你有帮助,请支持正版,去购买正版书籍,支持正版书籍不仅是尊重作者的辛勤劳动&#xf…

密码学基础概念

加密性 什么是加密? 1.对原有的明文数据,执行某种运算,得到密文数据。 2.密文数据对于未授权人员而言,在一定上程度上加大了解读的难度 3.加密功能用于实现机密性 什么是密钥? 1.如同持有保险柜钥匙才能打开保险柜…

HTML基本元素包含HTML表单验证

可将以下代码复制另存为一个HTML文件浏览器打开自己去看看实际使用效果 <!DOCTYPE html> <html> <head> <meta charset"utf-8"><title>测试</title> </head> <body> <h1>很多事</h1> <h1><b&…

【linux】开机调用python脚本

linux中&#xff0c;可以使用crontab 设置开机自动调用 crontab的安装在前面文章里写过了&#xff0c;不再重复 首先&#xff0c;还是进入crontab配置文件 crontab -e 进入之后&#xff0c;跟其他定时任务不同&#xff0c;只需要在时间配置那里用rebooot 这类之后的两个文件的…

生成随机图片

package com.zhuguohui.app.lib.tools;/*** Created by zhuguohui* Date: 2024/6/1* Time: 13:39* Desc:获取随机图片*/ public class RandomImage {// static final String url "https://picsum.photos/%d/%d?random%d";static final String url "https://…