现实与虚拟的共生,AR响应式手绘技术 | Mixlab增强现实

news/2024/7/19 14:13:53 标签: 可视化, python, 数据可视化, css, js
js_content">

RealitySketch 

是一种用于绘制交互式图形和可视化效果的增强现实界面交互技术方案。

近年来,越来越多的AR草图绘制工具使用户能够在现实世界中绘制和嵌入草图。比如像SymbiosisSketch,这些工具使用户可以绘制数字元素并将其嵌入到现实世界中。

但是,绘制的图形内容是静态的,漂浮在空中而无法响应现实世界。

作者研究了一种动态和响应式的新方法,以实现动态的草图。在RealitySketch中,用户在屏幕上绘制图形元素,并将其与物理对象进行绑定,从而使得绘制的元素随着相应的物理运动而动态移动。

基本术语

嵌入式Embedded:在现实世界中呈现图形并在空间上进行整合 

响应式Responsive:根据用户的交互,图形发生变化并进行动画处理

我们的重点是嵌入式和响应式的结合。

数据流:位置、距离、角度、面积

五大原理

原理1:对象跟踪

原理2:参数化

原理3:参数绑定

原理4:多角度

原理5:记录和可视化

原理 1

对象跟踪:指定现实世界中需要跟踪的视觉实体,例如物体、人体关键点。

交互上,用户进入选择模式,在屏幕上选择一个需要追踪的对象。选定后,系统会用白色轮廓线突出显示选定的对象,并开始在3D场景中跟踪该对象。

技术上,基于OpenCV的颜色跟踪来实现的。当用户点击屏幕上的对象时,算法将在x和y位置获取HSV值。然后,系统根据特定的阈值范围在每个帧处捕获相似的颜色。

原理 2

参数化:用户绘制特定图形,如直线或圆弧,并设定变量;

交互上,用户选择进入素描模式,从屏幕任意的一点绘制直线到所选的追踪对象上。对应的变量则被定义为两点之间的距离。当用户移动追踪对象时,改变点的位置及显示距离变量值。

技术上,使用简单的试探法来确定线段的状态(静态与动态,距离与角度,自由移动与约束等)。如果线段的起点或终点靠近现有的跟踪对象,则会将靠近的点绑定到跟踪对象上。因此,如果用户在两个跟踪的对象之间绘制一条线,则两端都将附加到一个对象上。在这种情况下,线段将捕获这两个对象之间的距离。

原理 3

参数绑定:用户将这些变量绑定到图形元素的属性上,如长度、角度,以实现响应式图形;

用户可以在两个元素之间绑定变量。例如,假设动态线段有一个名为angle的变量。当用户点击静态线段的角度标签时,系统会显示弹窗,让用户输入变量名称。如果输入的变量名称与现有名称匹配,则静态线段的角度将动态绑定到现有参数angle上。

原理 4

多角度:移动并制作动画;

交互上,所有绘制的元素都具有3D几何形状和在真实世界坐标中的位置,并锚定在3D空间中。这样,用户可以移动设备以从不同的角度观看,绘制的元素将始终保持正确锚定在真实对象上。

技术上,利用ARKit和SceneKit在3D场景中进行表面检测和对象放置。

原理 5

记录和可视化:基于参数的图形绘制进行响应式可视化

用户可以绘制一个图表,x轴默认是时间,y轴可以绑定到现有图形的变量上,如果绑定的是角度变量,我们就可以看到动态钟摆的可视化效果。

四大应用

应用1:增强物理实验

应用2:交互式可探索的概念表达

应用3:运动锻炼的可视化

应用4:控制虚拟物体

应用 1

增强物理实验

应用 2

交互式可探索的概念表达

帮助教师解释静态图,难以解释的概念,并让学生通过互动来探索它们。教育应用:课堂演示、协作学习、远程学习

应用 3

运动锻炼的可视化

应用 4

控制虚拟物体

参数化的值可用于许多不同的目的,以实现响应性的视觉输出。

现实世界和虚拟世界的共生,未来已来~

- End -


感兴趣的转发 “本文” 到朋友圈

并将截图发送给小编

获取 “AR” 资料包~


http://www.niftyadmin.cn/n/1248924.html

相关文章

Beats、Logstash

Logstash-介绍 Beats Beats是一个开放源代码的数据发送器。我们可以把Beats作为一种代理安装在我们的服务器上,这样就可以比较方便地将数据发送到Elasticsearch或者Logstash中。Elastic Stack提供了多种类型的Beats组件。 审计数据 AuditBeat 日志文件 FileBeat 云…

基础知识点(二)Java垃圾回收(GC)

先了解几个名词: GC: 释放垃圾占用的空间,防止内存泄露,有效的使用内存,对堆中已经死亡的或者长时间没有使用的对象进行清除和回收。 Stop-The-World: 系统后台只允许GC线程运行,在用户不可…

retrofit源码解析

APP使用retrofit接口层封装请求参数,之后有okhttp完成后续的请求操作。在服务端返回数据之后,okhttp将原始的结果交给retrofit,retrofit根据用户的需求对结果进行解析。 一、用法: 上传下载的一些正确用法 请求过程7步骤&#x…

eventbus异步框架源码解析

EventBus功能: 1、Android事件发布/订阅框架 2、事件传递可用于Android四大组件通讯 3、EventBus的优点是代码简洁,使用简单,并将事件发布和订阅充分解耦。 Handle通信的两种方式? 1、UI线程中发送消息给子线程去处理&#xff1f…

Deep Learning(深度学习)

Deep Learning(深度学习)学习笔记整理系列之(一) 深度学习四大经典书籍 人工智能数学基础之高等数学 自学人工智能之数学篇,数学入门并不难

记录几个常见问题(202207)

记录:282 场景:几个常见问题: Java代码执行SQL语句导致线程卡住,不往下执行了。 CLIENT_PUGIN_AUTH is required。 Communications link failure。 java.lang.ClassNotFoundException。 版本:Spring Boot 2.6.3 …

Maven基础(二)

maven的三种工程pom、jar、war的区别 maven的三种工程pom、jar、war的区别 1.pom工程:用在父级工程或聚合工程中。用来做jar包的版本控制。 2.war工程:将会打包成war,发布在服务器上的工程。如网站或服务。 3.jar工程:将会打包…

leakcanary 内存优化框架源码解析

造成内存泄露的原因 1.单例传入Activity的context上下文,导致activity关闭了,但是还是被单例模式引用,内存无法回收 解决:采用getApplicationContext 2.非静态内部类会默认持有外部类的引用 解决:使用静态内部类 3.Han…