一個AR Tech Radar的誕生

什麼是AR Tech Radar

技術雷達是ThoughtWorks每年出品兩期的技術趨勢報告,一般來說大家看到的雷達都是文檔形式,其中有一張技術全景圖,以及每個技術點的成熟度分析。而AR技術雷達就是在原始文檔的基礎上,利用AR技術將其立體化呈現,並在其中添加互動元素。

一個AR Tech Radar的誕生

為什麼要做AR Tech Radar

  1. 技術雷達一直以來都是文檔的形式呈現,如果能通過包含在內的最新技術呈現出來,豈不是更能體現技術雷達的意義。同時也能增加技術雷達的交互和科技感。
  2. XR Community作為AR/VR等技術的探索者,AR技術雷達是我們社區內部產品的第一步嘗試。
  3. 我們也不知道為什麼,就是想做AR Tech Radar。

AR Tech Radar的技術選型

目前市面上能做AR的技術有很多,基本上每家大公司都有自己的AR技術。為什麼我們會選擇ARKit呢?(ARKit是蘋果做AR軟件開發的一個工具,使開發者能為iOS設備開發增強現實應用。)

之所以選擇ARKit一個很重要的原因就是懶,只想選一個學習成本比較低的技術。

其實AR技術強依賴於承載它的硬件,所以選擇AR技術其實就是在選擇硬件平臺。我們期望能使用一個廣泛的平臺,讓AR技術雷達被更多的人接觸到。目前AR硬件平臺使用最廣泛,也最容易讓用戶接觸到的就是iOS,所以我們選擇了ARKit。

其中還有一些其他的人氣技術,比如:

  • ARCore,它是Google推出的運行在Android上的技術,但目前只有幾款頂配的Android手機可以運行。
  • Hololens,它是微軟的AR眼鏡,購買成本較高,很難被普通用戶接觸到。
  • Unity,它支持iOS和Android跨平臺。

那為什麼我們沒有選擇在unity上進行AR開發,讓它同時支持iOS和android呢?一個原因是ARKit和ARCore是才出來的新技術,它在unity上的兼容性和使用上肯定有很多未知的坑,我們期望使用比較穩定的平臺。另外一個原因是,我們期望嘗試用原生開發,以便更深刻的體驗AR開發的過程。今後我們會嘗試使用例如unity等工具進行開發,然後和原生開發做一個對比。

如何開發AR Tech Radar

準備

ARKit是蘋果的技術,語言首選是Swift。 硬件需要支持ARKit的一臺Mac和一部iOS設備。因為ARKit不支持模擬器運行,所以必須使用真機進行全程的開發調試。 開發軟件是Xcode。

前期構想

做AR開發需要有兩部分準備,一部分是本身的編程,另外一部分就是3D建模和空間相關的知識。編程不必多說,只要會Swift就能開始。3D建模不是我們的長項,所以前期我們做了很多調查,比如自己使用3D建模軟件做一個雷達模型,或者去購買別人做好的雷達模型,或者外包給第三方公司做一個3D模型,再或者找會3D建模的同學加入我們。

但這些方案都被我們否決了,原因有很多,比如我們的經費有限,不能支持我們去找外包,也沒有現成的模型給我們購買。而自己去學習3D建模的學習時間也長,同時也沒找到會3D建模的同學。

因此我們決定用ARKit支持的形狀來組合一個雷達。

我們曾經設想過很多次AR技術雷達應該長什麼樣。

比如羅馬鬥獸場的樣子,讓技術每層遞進。

一個AR Tech Radar的誕生

或者是一個圓球,人站在球裡面,被周圍的技術包圍,大概像這樣:

一個AR Tech Radar的誕生

再或者,它應該是一個立在你面前的展臺,技術雷達就擺在用戶面前,大概像這樣:

一個AR Tech Radar的誕生

最終這些想法都被我們暫時擱置了,最主要的原因是我們沒有能力和人手去實現那些炫酷的樣子,並且我們覺得技術雷達就應該用它最樸素的樣子展示給大家,應該被大家關注的是技術雷達的內容,而不是這個3D物體。所以最終我們決定用一個圓餅來展示技術雷達。

開發

首先,3D建模不是我們的長項,所以我們選用了ARKit支持的基本形狀來組合出一個技術雷達的大餅。因此,我們使用了一個圓柱體和三個圓管,如下圖。正中間是一個圓柱,用三個圓管把圓柱包圍起來,就形成了雷達圓餅。

一個AR Tech Radar的誕生

接著,為了讓整個雷達看起來更立體,我們使用了圓球來作為每個技術的標示點,同時讓標題浮在圓球的正上方。如下圖。

一個AR Tech Radar的誕生

我才不會告訴你,每個技術標示點在第一版的設計中是圓錐形的,看起來像雷達上的一坨坨屎。請看下圖。

一個AR Tech Radar的誕生

然後就是添加交互,讓用戶在點擊某一個圓球的時候彈出它的具體闡述。就像下圖一樣。我們在圓球的正上方彈出一個半透明白板,並把標題和內容放在上面。 白板上的字不同於圓球上的標題,它是印在平面上的,而不像標題是3D立體的。因為大段的文字不適合全部做成3D立體的字,這對資源的消耗和3D的計算是很大的。所以我們利用3D紋理貼圖,把文字描述貼到了白板上。

一個AR Tech Radar的誕生

數據

最後就是如何添加數據,我們希望這個AR技術雷達能運用到每一年的技術雷達,這就要求我們添加進去的數據是支持更新的。

所以我們使用了一個單獨的文件來存儲每一期的所有技術,文件內容包含了所有技術相關的信息,比如名字、詳細介紹、它所處的象限、它的分類等等。

這樣的好處就是下一次的雷達技術出來之後,我們只需要更新這個獨立的文件就可以看到最新的AR技術雷達了。

3D開發過程中遇到的困難與趣事

遇到的第一個奇葩事件就是,第一次我們添加了一個物體,可是在攝像頭裡面怎麼都找不到,後來我們無意中把鏡頭對著天空突然發現那個物體在空中飄著。原因就是ARKit世界裡面的尺寸是和現實世界一樣的,單位是米,而我們的離地高度設的是3米,因此它就跑到空中去了。

另一個和這個是相似的,我們加了一個圓管放在地上,可是在地上怎麼也找不到那個圓管。後來我們才發現,我們的圓管的尺寸太大了,把我們全部包在圓管裡面了。

第三個有意思的事情是,我們添加了一個平面,上面寫了一些東西,可是我們在鏡頭裡面卻怎麼也找不到這個平面。通過各種debug和調查研究,才發現,我們在平面的背面,原來對於沒有厚度的平面,只能在正面才能看得見。

還有一個比較棘手的問題就是,比如有些物體需要旋轉兩個90度再加上一些變換才能達到我們想要的位置。這對空間想象能力的要求就比較高,我們嘗試了很多種旋轉和變換,才最終找到了想要的位置。

未來的發展

我們期望AR技術雷達能發展成為每次技術雷達發佈的官方AR應用,通過不同的途徑和不同的體驗讓更多的人瞭解技術雷達,讓人們能和技術雷達有一些有意義的互動。

所以未來我們期望能不斷完善AR技術雷達,讓它成為一個炫酷的、交互式很強的應用。

打開腦洞想象一下,通過使用AR技術雷達,你不僅可以看到每次更新的新技術、還能夠通過一些交互直觀的看到它的歷史軌跡、應用場景以及具體實踐,是不是一件很酷的事情?


文/ThoughtWorks顏松柏

原文:https://insights.thoughtworks.cn/ar-tech-radar/


分享到:


相關文章: