Mozilla將WebXR Viewer更新至ARKit2.0
Mozilla在2017年構(gòu)建了API for WebXR的實(shí)驗(yàn)性版本,并且開發(fā)了WebXR Viewer iOS app以支持他們自己和其他人使用ARKit來在iOS上實(shí)驗(yàn)WebXR。在不久的將來,Mozilla將最終確定WebXR Device API,并開始予以應(yīng)用。他們已經(jīng)在開發(fā)一個(gè)允許WebXR Viewer暴露新API的Javascript庫,并且希望在更新webxr polyfill以匹配最終API后推送更新。
Mozilla最近更新了WebXR Viewer,修復(fù)了一定的bug,并將應(yīng)用程序更新至iOS 12和ARKit 2.0(尚未暴露所有的ARKit 2.0,但預(yù)計(jì)將在未來幾個(gè)月內(nèi)發(fā)布)。除了修復(fù)bug之外,新版應(yīng)用程序的兩個(gè)功能強(qiáng)調(diào)了WebXR與隱私,摩擦和平臺獨(dú)立性相關(guān)的有趣問題。Mozilla的BLAIR MACINTYRE日前對其進(jìn)行了介紹,下面是映維網(wǎng)的具體整理:
首先,Web瀏覽器可以通過有效管理底層平臺來減少用戶從一種AR體驗(yàn)轉(zhuǎn)移到另一種AR體驗(yàn)時(shí)的摩擦,而不是在會話之間完全關(guān)閉它。但需要注意的是,不要將數(shù)據(jù)暴露給可能會令用戶感到意外的應(yīng)用程序。
.其次,為WebXR構(gòu)思的某些高級功能尚未以跨平臺的方式提供,如可共享的世界映射或持久性錨點(diǎn)。這些功能是用戶所期望體驗(yàn)的核心,如持久性內(nèi)容或多用戶之間的共享體驗(yàn)。
在這兩種情況下,我們尚不清楚正確答案是什么。
1. 無摩擦的體驗(yàn)和用戶隱私
假設(shè):無論底層平臺是如何予以應(yīng)用,在加載新的WebXR網(wǎng)頁時(shí),如果是第一次加載而且沒有現(xiàn)有映射或先前錨點(diǎn)頁面,它應(yīng)該只獲取有關(guān)可用世界的信息。
請參見下面的圖像。下圖是運(yùn)行“World Knowledge”樣本的結(jié)果,并花費(fèi)了數(shù)分鐘時(shí)間從房子二樓走到樓梯并下來一樓,轉(zhuǎn)身,再通過樓梯走到地下室,然后回到一樓,通過前門進(jìn)入院子。回頭看著房子,你可以看到每個(gè)樓梯,地板和部分墻壁的小型平面(半透明綠色多邊形)。即使只是運(yùn)行ARKit數(shù)分鐘,系統(tǒng)都會產(chǎn)生大量關(guān)于空間內(nèi)部的信息。
如果同一用戶訪問另一個(gè)網(wǎng)頁,瀏覽器可以選擇是否重啟ARKit。重新啟動會導(dǎo)致高度摩擦的用戶體驗(yàn):所有關(guān)于世界的知識圖譜都將丟失,并需要用戶掃描環(huán)境以重新初始化底層平臺。但是,不重新啟動可能會將信息暴露給令用戶感到意外的新網(wǎng)頁。由于是在室外訪問頁面,用戶可能不會期望訪問內(nèi)部的細(xì)節(jié)。
在WebXR Viewer中,我們沒有為每個(gè)頁面重新初始化ARKit。我們決定,如果在不訪問不同XR頁面的情況下重新加載頁面,令A(yù)RKit保持運(yùn)行并保留所有世界知識圖譜。這樣就可以在不完全重新啟動體驗(yàn)的情況下重新加載頁面。當(dāng)訪問一個(gè)新WebXR頁面時(shí),保持ARKit運(yùn)行,但銷毀所有距離用戶達(dá)到一定閥值的ARKit錨點(diǎn)和世界知識圖譜(在當(dāng)前的實(shí)現(xiàn)下,默認(rèn)是3米)。
在下面我們演示了這種行為。當(dāng)用戶從“World Knowledge”樣本換成“Hit Test”樣本時(shí),系統(tǒng)將銷毀大部分錨點(diǎn)。當(dāng)用戶換回“World Knowledge”樣本時(shí),系統(tǒng)再次銷毀大部分錨點(diǎn)。訪問非XR頁面不算作訪問另一頁面,但如果瀏覽器不是位于XR頁面,系統(tǒng)將在片刻后關(guān)閉ARKit以節(jié)省電能,這同樣會銷毀所有的世界知識圖譜。
盡管這是在摩擦和隱私之間進(jìn)行權(quán)衡的相對簡單方法,但在瀏覽器中實(shí)現(xiàn)WebXR時(shí)需要考慮這樣的問題?,F(xiàn)代AR和VR平臺能夠合成和暴露高度詳細(xì)的環(huán)境映射,并隨時(shí)間推移保留重要信息。這些平臺可以隨時(shí)間推移保留世界空間模型,并暴露給應(yīng)用程序,因此即便瀏覽器為每個(gè)訪問頁面重新啟動底層API,空間的完整模型都可供使用,除非瀏覽器明確選擇不將其暴露給網(wǎng)頁。
例如,請參考用戶在佩戴 微軟 Hololens的同時(shí)在上述房屋中行走,路徑類似,時(shí)間相似。在這種情況下,相同環(huán)境的映射將如下所示。
如上所示,圖片比ARKit平面顯著更加詳細(xì)。隨著用戶繼續(xù)佩戴和使用Hololens,信息能夠繼續(xù)保留,優(yōu)化,并與空間中的所有應(yīng)用共享。
在這兩種情況下,ARKit平面和Hololens映射都是基于用戶在房屋里走動的數(shù)分鐘時(shí)間而捕獲。你可以想象一下,設(shè)備在長時(shí)間使用后可以提供的詳細(xì)程度。
2. 特定于平臺的功能
假設(shè):對于需要持久性和共享內(nèi)容的高級功能(如World Mapping),如果網(wǎng)絡(luò)的跨平臺特性擴(kuò)展到AR和VR,它們將需要針對當(dāng)前各個(gè)平臺的跨平臺模擬。
ARKit 2.0帶來了檢索當(dāng)前世界模型的可能性。ARKit通過所謂的ARWorldMap來追蹤平面和錨點(diǎn)。映射可以進(jìn)行保存和/或與其他應(yīng)用進(jìn)行共享,從而實(shí)現(xiàn)持久性和多用戶AR體驗(yàn)。
在這一版本的WebXR Viewer中,我們希望探索一些與持久性和多人體驗(yàn)相關(guān)的概念,所以我們?yōu)橐粋€(gè)活動的AR會話添加了session.getWorldMap()和session.setWorldMap(map)指令。
這些功能引發(fā)了用戶隱私問題。ARKit的ARWorldMap是一個(gè)不透明二進(jìn)制ARKit數(shù)據(jù)結(jié)構(gòu),可能包含大量可以由應(yīng)用開發(fā)者提取的空間數(shù)據(jù)(格式未記錄)。因此,我們利用了WebXR Viewer中的現(xiàn)有隱私設(shè)置,并允許應(yīng)用程序檢索世界映射
另一方面,WebXR Viewer允許頁面向ARKit提供ARWorldMap,并嘗試在不增加權(quán)限的情況下使用它來重定位。從理論上講,如果用戶位于特定位置,這樣的操作可能允許惡意Web應(yīng)用程序通過瀏覽器測試來“探測”世界。在實(shí)踐中,這樣的攻擊似乎不可行:加載映射會重置ARKit,并且無論重定位最終是否成功,將智能手機(jī)重新定位到映射需要一定的時(shí)間。
盡管實(shí)現(xiàn)這些命令不算什么,但暴露這種功能會引發(fā)WebXR設(shè)計(jì)的一個(gè)基本問題(除權(quán)限和可能的威脅之外)。具體而言,鑒于每個(gè)XR平臺都以不同方式實(shí)現(xiàn)這些功能,這些功能最終將如何以跨平臺方式運(yùn)行呢?
我們沒有這個(gè)問題的答案。例如,諸如 HoloLens 這樣的設(shè)備允許保存空間和共享弓箭,與ARkit類似。但其他平臺僅共享Anchors,或者根本不允許共享。隨著時(shí)間的推移,希望可能出現(xiàn)一定的共同點(diǎn)。 谷歌 已經(jīng)在ARKit和ARCore上實(shí)現(xiàn)了他們的ARCore Cloud Anchors。也許行業(yè)可以采取類似的,更加開放的,以及獨(dú)立于特定基礎(chǔ)架構(gòu)的方法,從而在眾多平臺上實(shí)現(xiàn)標(biāo)準(zhǔn)化。
3. 展望未來
隨著我們正在制定初始的WebXR Device API規(guī)范,這只是 Immersive Web Community Group 正在探討和考量的眾多問題中的兩個(gè)。如果你希望看到Web暴露和提供各個(gè)XR平臺的全部功能,從而保持Web的開放性,你可以加入討論并幫助我們確保XR Web取得成功。
文章來源:映維網(wǎng) 如轉(zhuǎn)載請標(biāo)明出處
原文鏈接 : https://yivian.com/news/53131.html
未經(jīng)授權(quán),禁止轉(zhuǎn)載,違者必將追究法律責(zé)任。