JSAR 基础 1.2.1 基础概念_空间小程序

JSAR 基础 1.2.1 基础概念_空间小程序

  • 空间
  • 空间自由度
  • 可嵌入空间
  • 空间小程序

最新的技术进展表明,官网之前的文档准备废除了,基于xsml的开发将退出历史舞台,three.js和普通web结合的技术将成为主导。所以后续学习请移步three.js学习路径,哔哩哔哩这部分视频非常多,我就不再赘述。但是关于空间小程序还是有必要解释一下的,所以这估计是更新的最后一个jsar的文章了。

空间

官方的说法:
JSAR是可嵌入空间的 Web 运行时,它支持开发者使用类似于 Web 的技术来开发可嵌入空间的空间小程序。简单来说,它可以帮助你将 Web 技术嵌入到某个空间场景中独立运行。

任姐说:
最新的技术WebXR,就是vr世界里面的浏览器,打开它,就相当于打开了一个vr世界的浏览器,在这里你可以输入任何网址,打现有网络世界各种网站。

空间自由度

官网文档的小动画我觉得解释的挺清楚了,如果还不明白,请看下图:

0Dof
官方说法:
Zero Degree of Freedom)指的是当前空间中的观察者以固定视角观察虚拟空间。

任姐说:
可以理解为,在你眼镜前面整了个创可贴(可能是2D的,也可能是3D的),贴在固定的位置上,不管你脑袋怎么动,那创可贴永远跟着你,好像这样:

请添加图片描述

3Dof

官方说法:
3DoF(Three Degree of Freedom)指的是当前空间中观察者可使用3 个自由度,通常情况下,这3 个自由度指的是空间的姿态。

任姐说:
这感觉就好像你有一个大疆的无限电量的无人机,这个无人机的设定是在你脑袋那个高度的,左前方1米远,这个时候无论你是蹲下还是站起来,那个无人机都会立马和你的高度保持持平;无论是是向前走还是后退,那个无人机都会保持和你1米远;但是如果你整体不动,知识转头左右看,它是不会动的。

6Dof

官方说法:
6DoF(Six Degree of Freedom)指的是当前空间中观察者可以使用6个自由度,即位置(Position)和姿态(Rotation)加在一起共计6个。

任姐说:
其实就是虚拟现实,编程做出来的东西好像一个实体一样就放在那里,不管你怎么动它就好像你家的电视一样,就在那里它不动的。

可嵌入空间

官方说法:
可嵌入空间,或称为子空间,指的是一个完整的空间,它包含了一些物体,然后可以将这个空间嵌入到另一个空间中,作为另一个空间的一个组件。这样,我们可以:

在父空间内,随意地对子空间进行移动、旋转、缩放
在父空间内,可以直接与子空间的物体进行交互
在父空间内,可以将多个子空间组合在一起,形成更复杂的空间
而可嵌入空间的技术关键点在于,如何将一个空间(独立的应用)嵌入到另一个空间(主应用)中,而不影响到主应用的运行,我们将这称为空间安全性,更形象的比较就像:

在一个浏览器中,不同的网页运行在同一个 Web 浏览器中互不干扰,这就是浏览器的安全性。
在一个窗口操作程序中,不同的窗口运行在同一个屏幕上,窗口和窗口之间互不干扰,这就是窗口操作程序的安全性。
以上,这就是可嵌入空间的基础概念。

任姐说:
你可以理解为一个一个的房间,好像你站在一个玩具楼外面,玩具楼里面有各种独立的小房间。你能摆弄玩具楼不同房间里面的各种小家具,有的独立小房间还是个套间,又有不同的小房间组成,但是作为上帝的你依旧能各种开心的玩。

空间小程序

官方说法:
在了解了空间和可嵌入空间后,那么就很容易了解什么是空间小程序了,它就是用于开发可嵌入空间的技术方案,在本页顶部的图片中,蓝色小方块的部分就是空间小程序(即 JSAR)希望去嵌入到主空间中的部分,它可以是一个闹钟、一个日历、一本漫画书、一个小黄鸭等等。

任姐说:
以下说法不一定正确,就是我看文档这么多天的直观感受。
如果JSAR继续沿着xsml这个路线走下去的话,上面这种说法是成立的,但是就目前的官方发展趋势来看,很有可能以js为基础的这些应用将被折叠进WebXR,这就好像微信小程序了,有统一的程序入口,只能存在于固定的程序空间,而不是什么空间都能嵌入了。

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

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

相关文章

JavaWeb-servlet6中重定向、转发、cookie、session、文件上传和下载

请求重定向 一个 web 资源收到客户端请求后,通知客户端去访问另外一个 web 资源,这称之为请求重定向。 使用response对象提供的sendRedirect()方法,可以将网页重定向到另一个页面。SendRedirect()方法的语法格式: response.send…

信息安全访问控制、抗攻击技术、安全体系和评估(高软42)

系列文章目录 信息安全访问控制、抗攻击技术、安全体系和评估 文章目录 系列文章目录前言一、信息安全技术1.访问控制2.抗攻击技术 二、欺骗技术1.ARP欺骗2.DNS欺骗3.IP欺骗 三、抗攻击技术1.端口扫描2.强化TCP/IP堆栈 四、保证体系和评估1.保证体系2.安全风险管理 五、真题在…

SpringBoot POST和GET请求

1. 什么是 HTTP 请求? HTTP 协议:超文本传输协议,用于客户端和服务器之间的通信。 常见 HTTP 方法: GET:获取资源POST:提交数据PUT:更新资源DELETE:删除资源 2. GET 请求详解 作…

mysql的Innodb最大支持的索引长度是多少,以及索引长度怎么计算

今天正好有空,来讲个之前粉丝经常问的一个知识,就是mysql的Innodb最大支持的索引长度是多少?以及索引长度怎么计算? 一、mysql的innodb引擎,创建索引最大支持的长度是多少字节? 不墨迹,直接说…

Python 中 `sort()` 和 `sorted()` 的用法与区别

Python 中 sort() 和 sorted() 的用法与区别 1. sort() 方法: sort() 是 Python 列表类型 (list) 的一个方法,它用于就地(原地)排序列表,修改原始列表。排序时可以通过 key 参数指定排序依据,还可以通过 …

SpringBoot过滤器(Filter)的使用:Filter接口、FilterRegistrationBean类配置、@WebFilter注释

1、过滤器(Filter)的介绍 Spring Boot 的过滤器用于对数据进行过滤处理。通过 Spring Boot 的过滤器,程序开发人员不仅可以对用户通过 URL 地址发送的请求进行过滤处理(例如:过滤一些错误的请求或者请求中的敏感词等),而且可以对服务器返回的数据进行过滤处理(例如:压…

C++修炼之路:初识C++

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《题海拾贝》 欢迎点赞&#xff0c;关注&#xff01; 引言 …

【STM32MP157系统移植】3.TF-A目录结构

bl1&#xff1a;部分一般不用TFA自带的&#xff0c;而是芯片内部的BOOTROM bl2&#xff1a;更像传统意义的TF-A&#xff0c;TF-A本身 bl31&#xff1a;是ARMV&#xff18;的EL3运行时固件 bl32&#xff1a;OPTEE或者TF-A提供的sp_min bl33&#xff1a;就是uboot 真正需要移…

OpenCV连续数字识别—可运行验证

前言 ​ 文章开始&#xff0c;瞎说一点其他的东西&#xff0c;真的是很离谱&#xff0c;找了至少两三个小时&#xff0c;就一个简单的需求&#xff1a; 1、利用OpenCV 在Windows进行抓图 2、利用OpenCV 进行连续数字的检测。 3、使用C&#xff0c;Qt 3、将检测的结果显示出来 …

shell的模拟实现 ─── linux第16课

在shell的命令行中输入命令,会有两种执行命令的途径 shell自己执行 shell创建子进程(fork ,exit ,waitpid,exec) ,子进程去执行 shell自己执行的命令是自建命令(bulit command) 子进程执行的是非自建命令 第一版只能维护命令行参数表创建子进程, 执行非内建命令 我们先创…

MySQL创建数据库和表,插入四大名著中的人物

一、登录数据库并创建数据库db_ck 二、创建表t_hero 表属性包括&#xff08;id&#xff0c;name&#xff0c;nickname&#xff0c;age&#xff0c;gender&#xff0c;address&#xff0c;weapon&#xff0c;types&#xff09; mysql> create table t_hero(-> id int,-…

静态网页的爬虫(以电影天堂为例)

一、电影天堂的网址&#xff08;url&#xff09; 电影天堂_免费电影_迅雷电影下载_电影天堂网最好的迅雷电影下载网&#xff0c;分享最新电影&#xff0c;高清电影、综艺、动漫、电视剧等下载&#xff01;https://dydytt.net/index.htm 我们要爬取这个页面上的内容 二、代码…

【C++】:STL详解 —— 红黑树封装map和set

目录 红黑树的源代码 正向迭代器的代码 反向迭代器的代码 set的模拟实现 map的模拟实现 红黑树的源代码 #pragma once #include <iostream>using namespace std; // set ->key // map ->key/value// set ->key // map ->key/valueenum Colour {RED,BLAC…

MATLAB控制函数测试要点剖析

一、功能准确性检验 基础功能核验 针对常用控制函数&#xff0c;像用于传递函数建模的 tf 、构建状态空间模型的 ss &#xff0c;以及开展阶跃响应分析的 step 等&#xff0c;必须确认其能精准执行基础操作。以 tf 函数为例&#xff0c;在输入分子与分母系数后&#xff0c;理…

MoonSharp 文档一

目录 1.Getting Started 步骤1&#xff1a;在 IDE 中引入 MoonSharp 步骤2&#xff1a;引入命名空间 步骤3&#xff1a;调用脚本 步骤4&#xff1a;运行代码 2.Keeping a Script around 步骤1&#xff1a;复现前教程所有操作 步骤2&#xff1a;改为创建Script对象 步骤…

ROS云课三分钟-差动移动机器人导航报告如何撰写-及格边缘疯狂试探

提示词&#xff1a;基于如上所有案例并结合roslaunch teb_local_planner_tutorials robot_diff_drive_in_stage.launch和上面所有对话内容&#xff0c;设计一个差速移动机器人仿真实验&#xff0c;并完成报告的全文撰写。 差速移动机器人导航仿真实验报告 一、实验目的 验证 T…

ACE协议学习1

在多核系统或复杂SoC&#xff08;System on Chip&#xff09;中&#xff0c;不同处理器核心或IP&#xff08;Intellectual Property&#xff09;模块之间需要保持数据的一致性。常用的是ACE协议or CHI。 先对ACE协议进行学习 ACE协议&#xff08;Advanced Microcontroller Bu…

ajax之生成一个ajax的demo示例

目录 一. node.js和express ​二. 使用express创建后端服务 三. 创建前端 一. node.js和express ajax是前端在不刷新的情况下访问后端的技术&#xff0c;所以首先需要配置一个后端服务&#xff0c;可以使用node.js和express。 首先生成一个空项目&#xff0c;新建main目录…

Java 字节码操纵框架 -ASM

Java 字节码操纵框架 -ASM 1.ASM 概述: ASM 是用于 Java 字节码操纵的框架,可动态生成新类或增强现有类的功能。它既能直接产生二进制 class 文件,也能在类被加载到虚拟机之前动态改变类行为,通过读取类文件信息来分析、修改类行为,甚至生成新类。许多流行框架如 cglib、…

kafka + flink +mysql 案例

假设你有两个Kafka主题&#xff1a;user_activities_topic 和 product_views_topic&#xff0c;并且你希望将user_activities_topic中的数据写入到user_activities表&#xff0c;而将product_views_topic中的数据写入到product_views表。 maven <dependencies><!-- …