点击上方蓝字CG世界 关注CG我们
“ 感知CG · 感触创意 · 感受艺术 · 感悟心灵 ”
中国最具影响力CG领域自媒体
今天这篇文章琢磨了好多遍。因为理论性太强了,弄出来之后,发现硬性的讲解可能大家不会懂,也不会愿意看。所以,翻来覆去调整了好几遍。
是这样的,我之前不是发布了很多即将在2017Siggraph上发布的各种前沿技术展示么?包括动画,绑定,流体模拟等等各个方面的技术。还记得前些日子,那个“相位神经网络”的技术么?也将会出现在Siggraph大会上。在众多的技术当中,其中有一项技术是由我们中国的大神,超级大神带头研究出来的。到底是什么技术,又是哪位大神研究出来的呢?下面,我来跟大家叨咕叨咕。
大家都知道,尽管现在的CG制作技术发展已经达到相当高的水平,但还是有很多电影特效和游戏行业的效果因技术和硬件的发展难以实现。这其中包括模拟超写实的毛发浸水效果。这个在我们的生活中司空见惯的事情,拿到CG行业完全真实的模拟出来,却是一个大难题。
模拟浸湿头发效果最大的难点在于,头发周围的液体非常薄(是以微观尺度移动的),在数以百万计的头发中间,这些薄薄的液体膜决定了湿发效果的整体外观和动态,如何来计算这层薄薄的液体与毛发相互作用呢?确实很难!
很多伙伴会说,很多好莱坞大片中都有过啊~最为真实就是去年上映的《奇幻森林》里那些被雨水淋湿的动物毛发。
是的,很多电影里都出现过。但那都只是模拟的表面效果。还达不到物理级别的流体和毛发真实交互。
所以,这件事也让世界上顶级的几家视效公司和动画公司很头疼,比如维塔,迪斯尼,皮克斯等等。
这几家公司的技术总监就把这个事儿跟哥伦比亚大学的计算机科学副教授Eitan Grinspun进行了沟通。因为平时他们经常碰面,研究各种复杂问题。
Eitan Grinspun
“我们啊,一直想找到一个很好的方法模拟出真实的浸湿毛发的效果。可是以现有的方法我们却无能为力。你看看你们能解决么?”我编的语境~反正就是这个意思。Eitan Grinspun教授平时带了几位博士生,就把这个问题跟他们沟通了下。
这引起了其中有一位博士生极大的研究兴趣,于是他扛起了这面大旗,开始与几位伙伴一起来研究起来。他是谁呢?重点来了,他叫Raymond Yun Fei,具体中文名字我不知道。这里就叫Yun Fei吧。一位来自中国的博士生。目前是哥伦比亚大学在读博士三年级的学生,专注于物理学模拟的研究。之前Yun Fei是在清华读的本科,后来考入哥伦比亚大学,学习的计算机科学,取得理学硕士学位。再后来就成为了博士~伙伴们感受下,天才的味道~太牛逼了~
Yun Fei大二时开始研究计算机图形学。由因为对游戏行业非常感兴趣,开始研究很多与视效和游戏行有关的技术。比如实时渲染和GPU加速等等。在开始研究这个项目之前,他一直在搞GPU快速像素化,实时渲染,图像风格化,高品质离线渲染,交互式声音合成和3D打印金属乐器等项目。
就这样,他和另外几位博士生和老师开始研究这个课题。经过不断研究和实验后,在今年发表了这篇名叫《模拟流体毛发相互作用的多尺度模型》( «A Multi-Scale Model for Simulating Liquid-Hair Interactions»)的论文。同时发布了一个时长6分钟的模拟展示视频。
这个技术理论太深奥了,我看完之后整理了出来。但是估计CG世界的伙伴们没几个人能看懂。也很枯燥。所以,这里我把视频里的内容尽量用白话跟大家解释下。有错误之处请大家指正。当然,如果不感兴趣,下面内容可以略过。
首先,我要说的是这是一个液体和毛发模拟的开源项目。可在Mac OS X,Linux,Windows等平台上运行。上面的视频演示在Houdini中进行的表面重建和渲染的效果,因此玩Houdini的伙伴们可以测试下。
好了,下面看看视频中的大意。
这个架构可以轻松的与我们平时的流体模拟结合在一起。此流程,首先解决了毛发的动力学问题,模拟流体高度场,将高度场速度传递到网格上,再与体量流体模拟器的速度相结合,进行流体捕获和滴落。
1.浸湿的头发效果所呈现的外观特征,是由湿漉漉头发内部的相互作用力,以及液体在头发上的运动,液体和头发间的力所呈现的。
2.为了获得所有这些特征效果,提出了一系列方法,从而有效地让毛发捕获到液体,并沿着毛发模型流动,引起内聚力和滴落。
3.首先他们研究了用浓缩的流动所代表的存储在一股头发上的液体,头发上的液体静态计算不允许液体沿着这股缕头发流动的。当流量聚集时,允许用转化而来的粒子让它滴落。
4.这段是将整个过程以粒子颗粒的形式展现出来,可视化了头发翻转时的粒子生命周期,以便更清楚的了解液体如何从头发上滴落的情况,并将他们的离散度从浓缩的流量改变为APIC粒子。其中的红色粒子是新产生的,而蓝色的是老的。
6.由于储存在一股头发上的的液体具有自己的坐标系,所以要避免局部液体流动中的外力,这样才能让液体随着它的移动正确的离散开。
7.还必须要认真的考虑液体沿着头发流动的动量问题,否则,液体的附加质量和速率将极大的干扰它所依赖的这缕头发。在这里,我们看到有三个不同的例子中,动量都是不恒定的,而现在研究的方法是与质量守恒定律相吻合的。
8.单纯的速率调整会导致严重的谬误弯曲。而现在的研究方法,让动量的传递达到了非常自然的运动效果。
9.为了正确的得到头发从干到湿漉漉的效果,倾倒头发上的液体必须要能被捕获到头发上,通过把粒子所代表的液体转化到头发浓缩层上的液体体积。
10.除了沿着单根头发流动外,由于表面张力流动在较长时间尺度上的影响,液体还可以横向跨越多个毛发。
11.上图展示的是,放置的一排头发,左边的液体会逐渐向对面延伸。
12.那么单股头发在穿过液体时也必然会受到很大的阻力。
13.最后,由于液体在头发上的表面张力作用,湿头发经受了巨大的内聚力,导致它们粘在一起
14.将两股湿头发分开时,由于内聚力会产生粘连现象。
15.为了展示流体对毛发产生的不同影响,这里模拟了房间中增加湿度的现象,并逐渐提高存储在不同头发类型上的液体存储。
16.同时还观察了这些效应与头发数量间的关联性。
简而言之,这个视频阐述了产生浸湿毛发效果的几个因素。并用最简单的例子进行对比展示了水与毛发相互作用时的各种物理想象。而真正的解决方案,在论文里详细的阐述了,这里就不讲了~感兴趣的伙伴可以跟我索要译文!
这样的模拟研究让更多的视觉效果模拟不仅仅是简单孤立的模拟物理表象,而是深入到他们之间的相互作用上。在这个演示中我们看到头发的模拟很粗糙,这是因为受制于目前计算机能力和头发之间碰撞的圣杯问题的制约,所以你看到的演示中的毛发模型看起来更像是弹簧一类东西。但流体在毛发上的流动和粘结效果以及流体从头发上滴落的感觉相当不错。
目前有几个特效和动画公司对这项技术很感兴趣,有计划在未来应用到他们的电影模拟引擎中。
Ok!
2017Siggraph马上开幕了
其中还有很多好玩的技术即将发布
喜欢的话,老潘会挑几个比较实用的说给大家听
今天文章就结束了
明天跟大家分享一篇渲染类的图文
你可能还喜欢