您的位置:首页 > 运维架构

细分曲面简介(subdivision surface)

2016-06-02 16:56 579 查看
转载自:https://segmentfault.com/a/1190000002925331

在三维建模领域里,细分曲面算是一个比较常见的术语了,经常用于动画角色的原型设计,甚至在工业设计领域,也开始流行用细分建模来进行原型设计。教科书里一讲到细分曲面,必然提一下《Geri's Game》,这部动画片里人物造型应用的就是细分曲面技术。​




那么究竟什么是细分曲面呢?小时候学素描,开始的时候都要学着画一个圆。一般从正方形开始,然后不断的割角,最后就成了一个圆。这其实就是一个细分曲线。这类作图方法,可以形象地称为切割磨光方法:设计师先勾划出物体的大致轮廓线,然后不断的细化割角。



把画圆的方法推广到三维,就得到了画球的方法。



​应用细分曲面做三维模型的原型设计非常的方便。通常只需要两个步骤,先创建出模型的大致轮廓,然后设置需要切割的点线面。比如这个桌子模型,先创建出它的轮廓模型,看起来非常简单,然后设置哪些点线面需要切割。感兴趣的朋友可以到三维公园去逛逛,那里有大量的细分曲面,而且还提供了在线细分建模的工具,非常容易上手。



细分曲面的核心就一个点:细分规则。不同的细分规则,生成的细分曲面外形是有区别的。常见的细分规则有Catmull-Clark细分,Doo-Sabin细分,Loop细分等。具体的细分规则可以参考教科书或者相关论文。

上面我们讲了,细分曲面可以应用于原型设计。主要特点是上手简单且表现力也很丰富。另外,一般的工业设计软件常用的曲面表示是样条曲面(分段多项式表示的曲面),这属于一种连续的信息表示,用于生产制造时,需要对曲面进行离散化。比如3D打印制造,它的输入就是一个网格。细分建模,可以直接得到网格,不需要样条曲面这种中间格式的表示。

在显卡上,也有细分曲面的应用。在游戏场景中,由于实时性的要求,网格的面片数量要求要尽量的低,但是,网格少了,模型的细节也少了。为了尽可能的提升网格的数量,显卡渲染流水线中加入Tessellation模块,这个模块直接在硬件上对网格进行了细分。​

​细分建模产生的网格,其面片分布非常的规则(regular)。规则的网格不管是用于几何处理,还是用于有限元计算,都有非常好的性质,比如计算稳定性。另外,细分网格表示的数据量非常小,很适合于网络传输。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  三维 细分 opengl