专栏名称: CG世界
CG世界是CG领域自媒体。专注3D动画、影视特效后期制作、AR/VR几个领域的知识,前沿技术,资讯和行业教程分享。
目录
相关文章推荐
艾格吃饱了  ·  尝鲜莫过此物,三月不知肉味 ·  昨天  
51好读  ›  专栏  ›  CG世界

全是数学题!聊聊布料模拟技术的发展

CG世界  · 公众号  ·  · 2019-01-08 09:00

正文

点击上方蓝字 CG世界 关注CG我们

“ 感知CG · 感触创意 · 感受艺术 · 感悟心灵 ”

中国极具影响力CG领域自媒体


这是近日在FXGuide上由 Mike Seymour撰写的一篇关于布料模拟的文章。内容不是那么晦涩难懂,但熟悉FXGuide的小伙伴都知道,他们的文章向来结构特殊,读起来费劲,所以呢在这里解析给大家。


在特效电影中布料模拟无处不在,因为绝大多数角色都是穿着衣服的,哪怕是各种拟人的动物。所以布料模拟是CG动画和VFX制作流程中必不可少的一个环节。布料模拟的可信度也决定了一个镜头乃至整部片子的质量。



布料建模和服装仿真历史由来已久,可追溯到80年代中期。主要有两种相反的方法。 一种是使用基于物理的模拟来生成逼真的皱纹,另一种是从真实世界的数据中捕获和重建细节。真实可信的模拟布料通常由随时间离散数学模型演变的算法生成。它需要描述材料如何移动,材料属性,边界,外力以及与场景中物体的碰撞。



布料模拟的各种软件


在我们使用的各种图形软件中都内置了各自的布料模拟模块。比如Maya中的Ncloth布料模拟,Max中的布料系统,再比如C4D中的SyFlex布料模拟插件,还有在游戏行业制作中应用非常广泛的Havok Cloth,等等吧。当然了,大家最为熟知还要数Marvelous Designer了。


它是基于图案的建模方法,可以轻松创建和模拟与大多数软件兼容的布料模拟。能精准的模拟布料的质感和与其他物体的交互状态。目前已成为CG行业、服装设计等行业的主要布料模拟软件。



MD已被业界很多顶级公司选为制作项目的主要工具,比如大名顶顶的Weta制作的《霍比特人》。还有近几年的限制级电影《泰迪熊》第一部和第二部都用到了MD。



从上面这张图片中我们就能感受到数字服装模拟的非常精准,比如细小的折痕。其中模拟的所有布料属性都与真实世界的一样。



还有Blur出品的《孤岛惊魂5》、Crytek《猎杀:对决》、以及育碧的《刺客信条》等等等吧。总之MD的身影无处不在。


皮克斯《寻梦环游记》布料的解决


前几天我们在Pro平台 (菜单Pro平台) 为大家翻译了一段关于《寻梦环游记》中骷髅角色的技术介绍。其中有提到为骷髅模拟布料时的难度。我们平时制作的CG项目中多数都是给有血有肉的角色做衣服等布料模拟。哪怕是僵尸也是有一定肉体性的。


但是在《寻梦环游记》中骷髅全部都是骨头组成的角色。皮克斯当时现有的布料模拟技术不能把衣服直接放在骨架上。即使能模拟也只是仅仅看上去像是在骨架上盖了一层布而已。所以制作团队不得不花三年的时间对碰撞系统进行了改进升级,让骨骼与布料之间进行精准碰撞。



从上图中我们可以看到,为了很好的表现布料下面的骨骼性,制作团队把所有衣物都收紧处理,比如挤在脊椎上,绑在胸腔上。


关于布料模拟最新的书籍


在帮助皮克斯改造碰撞检测系统中有一位叫Tuur Stuyck的专家。早在2006年Stuyck就开始研究计算机图形学。在2013年,他以优异的成绩获得硕士学位。2017年获得计算机图形学研究组博士学位。

2018年的时候,也就是去年。Tuur写了一本名为《Cloth Simulation For Computer Graphics》。在书中Tuur详细的论述了各种算法实现的基于物理布料模拟。这本书并不是在UI化的软件上教你布料模拟,它是能让你快速的了解从基础数学到理解复杂布料模拟的方法。



书中从背景讲起讨论一系列应用程序。然后对多种布料模拟技术进行了解释。从最简单的显式集成质点弹簧模型开始,逐渐过渡到最先进的复杂和常用的隐式集成连续体技术。讨论了用质点弹簧系统模型的布料模拟显式和隐式集成方案。


除了这个简单的模型,他还解释了更先进的连续体启发布料模型。同时也介绍了布料模拟风格化在动画电影中的可控性问题等等。

最后简要介绍了碰撞检测和响应。有布与布的自碰撞,也有布与其他物体的自碰撞。


这是采用基于物理的布料模拟效果,坠感非常自然。


布料的模拟是依赖于环境,重力,风和碰撞的力,当然更有趣的表现是因为其内在的一些力,比如摩擦,布料相互间的碰撞。布料必须对这些力做出反应,然后作用于代表衣服布料的粒子上。


为了计算布料随时间的运动,应用时间微积分来计算动态力。当然了这种模拟都是近似的,因此需要诸如前向欧拉积分之类的数学。这只是一种近似或显式集成的方法。这些都是这本书中的介绍,当然了数学不好就不要碰这本书了!



实时的模拟


在基于力的方法中,相对简单的方法之一是用质点弹簧网来表示的模拟布料。但是,这种方法有一些缺点:

■对象的行为取决于弹簧网的设置方式。

■为获得所需的行为调整弹簧常数有一定的困难。

■质点弹簧网不能直接捕获体积效应,例如体积守恒或防止体积反转。


而有限元法(FEM)解决了以上所有问题,它考虑了实体的整个体积,而不是用有限数量的点质量来代替。在这里,通过将体积分割成若干有限大小的元素来离散对象。这种离散化产生了一个网,就像在质点-弹簧方法中顶点扮演质点的角色一样,元素(通常是四面体)可以被视为同时作用于多个点的广义弹簧。但不管是哪种情况,计算质点或网格顶点受到的力都取决于它们的速度和网格的实际变形状态。


而在实时模拟的应用中是基于位置的模拟方法,直接修改了定义布料形状粒子的位置。忽略了速度和加速度层。这种方法已经在许多最先进的物理引擎中使用,例如NVIDIA PhysX,Havok Cloth,Maya nCloth和Bullet。这种方法避免了对更复杂数学的需要,而是通过直接修改粒子的位置来实现。尽管模拟不是那么精确,但是速度快。








请到「今天看啥」查看全文