根据Mesh生成Cage的心历路程(1)

其实我想大家一开始肯定不明白“根据Mesh生成Cage”所谓何物。让我来慢慢和大家解说吧!

研一结束的第一个暑假,我开始了重心坐标的研究。故事也就是从“Mean Value Coordinates for Closed Trianglar Meshes”开始的。记得当时我完全不知道重心坐标是什么,就连三角形的重心坐标是怎么计算的都忘记了。当时李老师也只是和我解释了论文里面的伪代码,我似懂非懂地开始了重心坐标的编程。

mean value effects.bmp

如图所示为基于重心坐标的网格编辑的典型案例:

马模型就是我们的原Mesh,然后生成另一个可以包围住马模型的Mesh,我们把这个新Mesh形象地称为Cage。通过重心坐标,我们可以把对原Mesh的编辑过渡到Cage。也就是说我们编辑Cage的时候,原Mesh会发生相应的变形。

       基于重心坐标的网格变形思想起源于SederbedgFFD(Free-Form Deformation)技术。FFD已经很成熟了,目前像3ds MaxMaya都有提供了相应的操作。

FFD例子如图所示:

FFD example.bmp

       相对于FFD来说,基于重心坐标的变形可以有更多的控制顶点,编辑效果更生动。其次计算更加简单,可以说是对FFD的一个阶段性的突破。

       接下来我会解释一下,什么是重心坐标。

       重心坐标的概念最早是由Möbius1827年引入,解释了计算机图形学和几何建模中的一个基本问题——多边形内的任意一点是否可以通过该多边形顶点的线性组合来表示。给定多边形的顶点集合如果对于任意点都存在使得中重心坐标满足

最简单的例子,对于三角形有:

triangle's barycentric.bmp

其中A表示面积。

重心坐标就是v前面的系数。

       再回到Mean Value Coordinates(MVC),有了重心坐标以后,我们可以把马模型上的每个点都表示为Cage上的顶点的线性组合。

当对v进行改变以后,p也会根据重心坐标做相应的改变。

好了,上面对重心坐标以及基于重心坐标的网格编辑有了一个大致的了解,接下来我们将讨论如何去计算重心坐标。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值