【iOS ARKit】AR Quick Look 概述

      为更好地传播共享 AR 体验,苹果公司引入了 AR Quick Look,并在iOS 12及以上版本系统中深度集成了 AR Quick Look,因此可以通过iMessage、Mail、Notes、 News、 Safari 和 Files 直接体验 AR,AR Quick Look提供了在 iPhone 和iPad 上以最简单、最快捷的方式体验AR的方法,也可以非常方便地集成到应用开发中。

      通俗地讲,AR Quick Look 更像是一个 AR浏览器,它可以直接使用 AR 方式浏览 USDZ 和 Reality 格式文件,对外封装了所有的技术细节,并提供了非常简洁便捷的使用接口,简单到只需要提供文件路径。对集成该框架的应用,如iMessage,直接单击USDZ 文件就可以启动AR体验模式,在 AR Quick Look 检测到平面后会自动放置模型文件,并提供以下操作功能:

(1)移动。通过选择模型,单指拖动可以移动模型,iOS 对 AR Quick Look 进行了深度集成 AR  Quick Look 支持水平平面和垂直平面检测,可以将模型从水平平面拖动到垂直平面上,反之亦然(在配备有LiDAR 传感器的设备上,AR Quick Look 可以将模型拖动到任何已重建的场景几何表面)。

(2)缩放。可以通过双指捏合手势缩放模型,也可以通过双击模型将模型还原到 100%大小(模型原始尺寸)。

(3)旋转。通过双指旋转手势进行模型旋转,双击模型将模型还原到原始方向。

(4)提升。通过两指向上滑动手势可以提升模型,让模型悬空。

(5)拍照。单击 AR Quick Look 界面上的圆形按钮可以拍摄当前 AR 场景照片,并自动保存到相册中。

(6)录像。长按 AR Quick Look界面上的圆形按钮可以录制当前 AR 场景的短视频,并自动保存到相册中。

(7)分享。通过 AR Quick Look界面右上角的“分享”按钮可以分享当前模型场景,如图所示。

(8) 3D 查看。可以切换浏览模式到 Object 以 3D形式浏览模型。

(9)关闭。通过单击 AR Quick Look界面左上角的x符号关闭 AR体验并返回调用应用程序。

     AR Quick Look提供了AR 和3D两种查看模型的方式,这两种方式所使用的手势完全一致,并且这些手势与iOS 日常操作手势一致,大大降低了使用者操作 AR 的难度。

     AR Quick Look 虽然是一个简单直观易用的框架,但其功能非常丰富,它支持当前 ARKit 的所有功能,并会根据运行时的设备硬件资源自动启用或者停用特定功能,在停用某功能后还会启用替代方案,这些功能全部自动化完成,无须开发者介人。

    AR Quick Look 的功能特性如下:

(1) Anchors。AR Quick Look 支持水平平面、垂直平面、场景几何、2D 图像、3D物体、人脸、人体类型

ARAnchor,即在启动后会根据配置检测识别这些类型并在检测成功后自动生成相应 ARAnchor。

(2)人形遮挡(Occlusion)。在受支持的设备上启用人形与人脸遮挡功能。

(3)物理与碰撞。支持物理模拟,如重力可使物体下坠、物体反弹与相互之间的碰撞。

(4)触发器和行为(Triggers & Behaviors)。支持事件和动画的触发,支持使用者与虚拟元素、虚拟物体与现实环境之间的交互。

(5)实时阴影。虚拟元素会投射真实感极强的实时阴影到检测到的表面上,阴影质量取决于设备硬件,在高端设备上会使用光线跟踪(Ray traced)方法产生高质量阴影,而在低端设备上则会使用投影阴影(Project Shadow)方法生成阴影。

(6)环境反射。AR Quick Look 会从用户的真实环境中实时采样当前环境信息,并使用 HDR(HighDynamic Range,高动态范围)、颜色映射(Tone Mapping)、色彩校正(Color Correction)等技术渲染虚拟元素以控制虚拟元素的反射、光照信息,营造真实可信的AR体验。

(7)相机噪声。模拟在低光照条件下相机产生的噪声并以此来渲染虚拟元素。

(8)运动模糊。模拟在物体快速移动时相机产生的模糊现象。

(9)景深(Depth of Field)。模拟数码相机焦点的聚焦与失焦现象。

(10)多重采样(Multi-Sampling)。对3D模型边沿进行多重采集以平滑边界。

(11)高光(Specular Anti-aliasing)。对高反射光进行抗锯齿处理以防止闪烁现象。

(12)清漆(Clear Coat)。清漆用于模拟物体表面的玻璃样高反光现象,BPR渲染支持清漆材质。

(13) 环境与空间音效。支持环境中的背景音效与物体的 3D 音效,能真实模拟声音殖距离变化的衰減效果。

(14) Apple 支付。AR Quick Look 支持使用 Apple 支付功能,用户可以直接在 AR Quick Look 中下单支付而不用离开 AR体验环境。

(15) 在配备 LiDAR传感器的设备上,由于 LiDAR 传感器对深度值的精确快速检测能力,AR QuickLook还能实现场景遮挡、物理模拟,自动放置虚拟物体速度更快,用户体验更好。

(16)自定义功能。AR Quick Look 为满足开发者的需求,还支持简单的定制化开发。

     提示注意的是 AR Quick Look 支持 ARKit 的所有功能特性,但有些特性需要特定的硬件设备,只有配备 A13及以上处理器的机型才能支持上述的全部功能特性,在不支持的机型上,一些功能特性不会开启,也不会产生效果

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

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

相关文章

排序算法,插入排序

插入排序是什么 插入排序(Insertion Sort),一般也被称为直接插入排序。对于少量元素的排序,它是一个有效、简单的算法 其主要的实现思想是将数据按照一定的顺序一个一个的插入到有序的表中,最终得到的序列就是已经排…

使用opencv + ffmpeg 开发视频播放器Demo

使用opencv ffmpeg 开发视频播放器Demo #include <opencv2/opencv.hpp> #include <opencv2/highgui.hpp> #include <opencv2/videoio.hpp>extern "C" { #include <libavformat/avformat.h> #include <libavcodec/avcodec.h> #includ…

【LeetCode热题100】【二叉树】将有序数组转换为二叉搜索树

题目链接&#xff1a;108. 将有序数组转换为二叉搜索树 - 力扣&#xff08;LeetCode&#xff09; 取中间的数作为根节点&#xff0c;左边的数递归转换&#xff0c;右边的数递归转换 class Solution { public:TreeNode *sortedArrayToBST(vector<int> &nums) {retur…

通过 Spark SQL 和 DataFrames 与外部数据源交互

文章目录 前言Spark SQL 与 HiveUDF 通过 Spark SQL Shell, Beeline 和 Tableau 查询Spark SQL ShellBeelineTableau 外部数据源通过 JDBC 连接数据库PostgreSQLMySQL 高阶函数Explode 和 CollectUDF内置函数高阶函数 常用 DataFrames 和 Spark SQL 操作总结 前言 Spark 的数据…

隐私计算实训营第九讲-隐语多方安全计算在安全核对的行业实践

隐私计算实训营第九讲-隐语多方安全计算在安全核对的行业实践 文章目录 隐私计算实训营第九讲-隐语多方安全计算在安全核对的行业实践1.业务背景&#xff1a;安全核对产生的土壤1.1相关政策出台1.2 数据差异的来源 2.产品方案&#xff1a;从试点到规模化的路3.技术共建&#xf…

如何用MATLAB进行核密度估计

核密度估计&#xff08;Kernel Density Estimation&#xff0c;KDE&#xff09;是一种用于估计概率密度函数的非参数方法。以下是核密度估计的基本步骤和公式&#xff1a; 步骤&#xff1a; (1)数据预处理&#xff1a;在进行核密度估计之前&#xff0c;需要对原始数据进行清洗…

微信小程序报错——“errno“: 600001, “errMsg“: “request:fail -2:net::ERR_FAILED“

bug现象 微信小程序体验版和真机调试 进入小程序的时候接口就出现了这个报错 "errno": 600001, "errMsg": "request:fail -2:net::ERR_FAILED" 排查 检查是证书过期还是证书链不完整 证书的信任链完整问题&#xff0c;可以在 亚数信息-SSL/TLS安…

web安全学习笔记(8)

记一下第十二节课的内容。 一、PHP文件包含的四种方式 Include和Include_once 操作系统会读取包含的文件的内容&#xff0c;并将它插入主文件中&#xff0c;include方式的文件包含会在包含失败的情况下输出警告信息&#xff0c;而include_once方式会检查包含的文件是否已经被…

口语教育的黄金时代:AI技术引领教育创新与创业机遇

这些人的赚钱思路是真灵活&#xff01; 这几天刷到艾维奇采访之昊的视频&#xff0c;做口语教育真赚钱&#xff0c;lv的包包随便买&#xff0c;住大房子&#xff0c;三辆车&#xff0c;有评论晒图一个九百的课&#xff0c;卖了1.3万份&#xff0c;直接千万到账。 然后我又想到…

TCP重传机制总结

超时重传概念 超时重传&#xff1a;发送方每发送一个数据包&#xff0c;就会为这个数据包设置一个超时时间&#xff0c;如果在时间内没收到应答这个数据包的ACK包&#xff0c;需要重新发送这个数据包&#xff1b;每次重传后&#xff0c;RTO会成倍增加&#xff0c;且重传次数有…

python-pytorch实现skip-gram 0.5.000【直接可运行】

python-pytorch实现skip-gram 0.5.000【直接可运行】 参考导入包加载数据和切词获取wordList、raw_text获取vocab、vocab_sizeword_to_idx、idx_to_word准备训练数据准备模型和参数训练模型保存模型简单预测获取训练后的词向量画图看下分布利用词向量计算相似度余弦点积 参考 …

Jmeter —— 自动录制脚本

1、Jmeter配置 1.1新增一个线程组 1.2Jmeter中添加HTTP代理 1.3配置HTTP代理服务器 修改端口 修改Target Cintroller(目标控制器) 修改Grouping(分组) 编辑录制中的包含和排除 在“URL Patterns to include包含模式”中填入.*(123456).*用以过滤请求地址中不包含123456的请求…

【K8S:初始化】:执行kubeadm显示:connection refused.

文章目录 [root10 kubernetes]# kubeadm init --kubernetes-versionv1.23.0 --image-repositoryregistry.aliyuncs.com/google_containers --apiserver-advertise-address192.168.56.104 [init] Using Kubernetes version: v1.23.0 [preflight] Running pre-flight checks [pre…

Angular Web项目前端无法正确显示base64类型的图片

昨天在本地环境部署网站时遇见了一个问题&#xff0c;后端接口返回的Base64类型的图片文件&#xff0c;在浏览器页面上无法正常显示&#xff0c;经过一番排查发现&#xff0c;问题出现在了两个方面&#xff1a; 1、网站前端使用了Angular框架&#xff0c;Angular中默认将所有输…

深入浅出 useEffect:React 函数组件中的副作用处理详解

useEffect 是 React 中的一个钩子函数&#xff0c;用于处理函数组件中的副作用操作&#xff0c;如发送网络请求、订阅消息、手动修改 DOM 等。下面是 useEffect 的用法总结&#xff1a; 基本用法 import React, { useState, useEffect } from react;function Example() {cons…

使用UDP完成网络单词查询,利用dict数据库

【注】UDP的优缺点&#xff1a; 1&#xff1a;传输效率高 2&#xff1a;易出现数据丢失 3&#xff1a;以数据报的形式传输 思路&#xff1a; step1&#xff1a;获取客户端请求 step2&#xff1a;查询单词 step3&#xff1a;响应客户端 Client.py from socket import *SERVICE_…

Datacom HCIP笔记-MPLS协议 之二

在Ingress节点执行该命令时&#xff0c;触发所有的32位路由建立LDPLSP。 在Egress节点执行该命令时&#xff0c;触发本地32位路由建立LDPLSP&#xff0c; egress就是主机路由始发路由器 ingress就是主机路由非始发路由器 默认情况下&#xff1a;华为路由器仅为非物理接口主机路…

【C++11】initializer_list | 右值引用 | 完美转发

一切皆可列表{ }初始化 在C98,允许花括号{ } 对数组、结构体类型初始化。 class Data { public:Data(int y, int m, int d):_y(y), _m(m), _d(d){} private:int _y;int _m;int _d; };int arr[4]{0,1,2,3};//列表初始化 Data d1{2024,03,21};//列表初始化 C11允许通过{ } 初始化…

云数据库价格一瞥(华为云、百度智能云、腾讯云、阿里云)

最近&#xff0c;大家似乎和价格“磕”上了。本文仅考虑主流产品&#xff08; RDS MySQL、Redis &#xff09;的部分主流规格&#xff0c;对各家厂商的价格做一个对比&#xff0c;供参考。 TL;DR&#xff1a; 总体来看&#xff0c;各家云厂商价格趋于持平&#xff0c;部分主流商…

创建一个qt登录界面,密码账号正确转到窗口2,否则弹出对话框提示账号密码错误,窗口2有四个按键,三个按键可以朗读按键文本,第四个退出。

作业要求&#xff1a; 主函数&#xff1a; int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();Form1 f;//连接窗口1的信号函数和窗口2打开的lambda函数Widget::connect(&w,&Widget::login,[&](){f.show();});return a.exec(); }窗…