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