「油罐中的水粒子視界」 teamLab 技術賞析——介紹

  • 2019 年 10 月 8 日
  • 筆記

兩個月前買了在上海油罐藝術中心開展的 teamLab 光影藝術展的票。直到昨天才去看。果然不失所望,名副其實的光影藝術。

從我搞圖形學、視覺技術的角度看,其實沒有什麼難的。難就難在藝術場景的設計。

上海油罐藝術中心前身是廢棄機場的儲油罐。這種罐子對於我這種石油子弟來說再普通不過了。體積大,內部中空,保密性好。

teamLab團隊充分利用油罐的幾何特徵——完美連續的圓、上下筆直的牆,塑造了令人嘆為觀止的動畫場景。

水從穹頂緩慢流下,花從地面和牆壁緩緩透出。

人走過,水流就從身邊流走,花朵卻彙集於兩旁。

當人試圖撥開水簾,紅色的花就會盛開在手划過的路徑。

上面三個動圖是一號展廳里的場景。

從技術的角度,無非就是 顯示 和 交互 

顯示:基於投影的增強現實。使用多投影,將預先設計好的動畫場景投影到油罐內表面。多投影的圖形要完全拼接起來,即多個投影儀投影出的動畫之間需要保持連續,不能看上去像一塊接着一塊的投影。

交互:使用攝像頭捕捉人的運動。比如使用深度攝像頭Kinect的人體運動跟蹤。

teamLab團隊完美實現了藝術技術的融合。藝術我就不多說了,不懂。

技術上,我還是做了些調查的。以前也做過相應的工作。

比如,16年畢業前還順手做了一個小項目。

基於多投影的動態紋理。如下圖所示。

把3D打印的沒有紋理的模型,通過攝像頭對模型的定位,將紋理動態的投影到物體上。

之前,在Github上無意間看到了一位作者的代碼。

Water Surface Wave Simulation for Unity https://github.com/nobnak/WaterSimulationForGames#water-surface-wave-simulation-for-unity

該作者是一位日本的Unity工程師。

Github主頁上寫着數碼藝術與交互設計的遊戲開發工程師,是teamLab的成員。

他在其Github主頁開源了多款基於Unity的物理模擬動畫的程序,比如上面的模擬水面波紋動畫的程序。

另外,還有關於煙霧動畫,粒子系統,模型變形等Unity程序。

關於teamLab在Github上的官方主頁。

teamLab Github主頁 https://github.com/team-lab

我們還可以關注另一個程序員 a3geek 的相關開源代碼。有雷電模擬,視覺模糊、煙霧模擬的Unity程序。

我覺得teamLab開源的代碼只是一些示例程序,並不是作為實際應用的。

基於物理的動畫模擬不是我的研究領域,我博士的研究課題是室內三維建模。研究生期間做過關於投影的增強現實應用。之前的公眾號文章中就有一篇相關論文的技術解析——Room2Room技術分析

這篇論文講的是對使用投影儀和Kinect對室內場景做三維建模,然後在Unity中加載室內模型以及虛擬遊戲動畫,通過投影儀將動畫投影到真實場景中。再使用Kinect跟蹤室內人體運動,實現了多人的室內遊戲。

後續文章,我將對基於投影的增強現實技術做基礎性的講解,並聯繫teamLab所實現的藝術與技術的融合,對行業內的技術應用做簡略地解析。

最後,我們來看一下這次上海油罐中心,teamLab 「油罐中的水粒子世界」的官方的宣傳視頻。