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,这就好像微信小程序了,有统一的程序入口,只能存在于固定的程序空间,而不是什么空间都能嵌入了。