“油罐中的水粒子视界” 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 “油罐中的水粒子世界”的官方的宣传视频。