GAMES 图形学系列笔记(四十四)

GAMES301-曲面参数化 - P13:Lecture 13 参数化应用3-曲面对应与高阶多项式映射 - GAMES-Webinar - BV18T411P7hT

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

好那个各位同学各位各位老师啊,这个现在时间我们已经到了,我们今天开始这个呃games 301的第13讲的内容,今天呃也是关于这个但弱化的应用啊,是这个前面因为介绍了很多这个参数化的技术。

然后中间也介绍了应用,然后我们最后的几讲呢也是继续围绕这个应用进行进一步的介绍呃,主要介绍的这个应用是这个曲面对应与高阶多项式映射啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么首先我们的第一个目的,第一个是第一个那部分内容是啊曲面之间的这个对应,那么首先来我们来看一下这个定义,那么对于这个曲面之间的定义的话,我们希望它是啊,我们我们一般情况下名叫的名词比较多啊。

这个叫service mapping或者into service mapping或者cross parameterization,那这个映射的目的呢其实是希望去建立一个one two one的。

就是一个一对一的这个映射啊,这两个在两个曲面上啊,m和mt上,那么呃这个地方是希望是建立这样的一个one two one的运势啊,大家注意这个one two one其实是因为三角形网格。

或者说我们平常见到的网格都是一些离散的网格,那么它其实是会有点边面对吧,那么这里面的这个one two one是指的是不光是这个顶点要对应过来,我们还希望是面要对应过来,边要对应过来。

就是相当于你可以你要把这个东西看成是一个pizs linear的一个分片,线性的一个呃一个曲面,你其实是两个分片线性曲面之间的这个一一映射,而不是而不是而不是只是这个顶点之间的这个对应。

比如说这个地方稍微要注意一下这个地方的概念啊,那这个就三角形面片内部也要去跟这个另外一个,另外一个三角形上的点去进行对应啊,那么呃这个刚才那个叫做service mesh。

service mapping,那么我们如果把这个概念变成一个list,更加离散化一点的概念,那这个地方有另外一个概念叫做compatible meshes。

那这俩compatible meshes的这个概念是指什么,是指这个两个网格,它的这个连接关系是一样的,比如说在我们这个,啊在我们这个这个这这个p p t里的话。

我们主要是这个左边的这个骆驼跟这边这个呃动物,它们两个之间的这个连接关系呃,三角形的这个连接关系是一样的,那么也就是说你其实可以用点呃,顶点之间的这个对应,然后呢面三角形之间对应。

你直接可以用这个三角形直接去啊去把它匹配起来,啊那这个这种网格的话就是这个m和这个mt,那这两个网格我们就叫做相容性网格啊,就其实就是指的是他们两个之间的连接关系是一样的,那中间这个mmt呢。

它其实是你可以认为是这个右边这个网格的一个初始啊,但是一开始就是在一般做算法的时候就去生成这个combo match的时候,这个可能是一开始初始,它其实跟右边这个网格的连接关系其实是不一样的。

好这个是compatible matches,那么应该是service mapping,一个是compatible meshes。

那么service mapping的话是还是一个就是数学上的一个一应试的概念,那么compile match其实指的是两个网格,这两个网格的连接关系是一样的。

就是identity的那个connectivity,就是它的这个连接关系啊,那么既然如果有这样的一个competition matches,它其实可以用来做很多的这样的应用对吧。

比如说这个morning啊,比如说这个啊这种app的transform,就是你可以做一些这种属性的船属性的这种传递传播对吧,因为你有这个连接关系呀,呃比如这个属性的传传递传播。

其实不光是在我们图形学圈子,比如说呃你可能在图形学圈子里面,可能你见得比较多的是一些呃纹理啊,normal啊,这个颜色啊等等这些常见的属性,其实在有一些更加special的一些应用里面。

其实也可以这个app的这个概念啊,就这个属性的概念其实很很多,不一定是基于这种很很表观的概念,你也可以是有一些物理性质啊什么,其实这地方都可以去做一些啊这样的一个transer。

然后使得你的这个应用或者说你这个计算更加的简单,或者说你你就反正可以简化一些事情,那么我们来看一个简单的例子,假如说我已经有了这个compactical message以后,我怎么去。

比如说这个地方这个小视频啊,这个视频展示的其实就是这个呃从一个呃woman啊,这个morning到一个,我们再来把这个视频播一下,这个我们我们move到,就是把它一个变形到一个这样的一个星星。

或者一个狒狒的这样一个形状啊,这是一个缓慢的一个morin的一个过程,那当然morin的话其实你可以认为是这个或者说这个形状差值的话,呃这个其实是这个动画制作里面一个比较重要的一个步啊。

那比如说这个地方还有一个另外一个比较长一点的视频,我们可以看一下,这个其实是一个呃人体,它在这个整个的这个运动过程,整个人在这个过程中他做了一系列的动作,然后这个动作其实其实我们只有一些离散的针啊。

就是这个我们上上上一页ppt里面,其实我们只给了这个人体在一些呃离这个人体,比如说这个啊这个姿态,这个姿态,这个姿态,这个姿态啊,这个姿态这个姿态,这个姿态,这个七个姿态其实是我们的输入啊。

那中间这些姿态呢其实是我们的这个差,用这个形状插值的算法给它插值插出来的啊,这样的话我们最后可以得到一个这样的一个呃,整个的一个变化的过程啊,就相当于是从呃从这个形状变形到这个形状啊。

那么所以说这个是一个视频就展示了整个的这样一个变化的过程,其实中间那些针都是通过这个形状插值插出来的,那么它的它的基础是我们其实是拥有了这些呃网格之间,它其实是有这样的一个一一对应的关系啊。

就是它其实是这个compatible meshes,那么接下来我们的目的就是要去讨论怎么去生成这样的compatible mesh,或者说我们就要去怎么去讨论这个呃怎么去生成这样的嗯。

呃service mapping对吧,那么呃我们呃这个service mapping呢其实在这个初一学领域也好,或者说在这个cv领域也好啊,这个其实是一个带有一点模式识别。

模式识别的这种概念的这种topic,那么所以说呢他们这个这个问题其实被研究的很广泛,然后呃方法也非常非常多啊,就是这个方法有各种各各种各种类型的方法啊,然后之前还有function map的对吧啊。

还有基于这个最优传输的,那么等等,还有基于这更多的一些问,更多的一些这个呃呃方法的类型,那么今天的话我们因为是这个是在这个参数化的这个背景下,那么所以我们主要是还是介绍的是这个基于参数化的这个呃。

基于参数化的曲面对应生成和基于参数化的这个combatible matches的生成,我们主要是因为我们还是要跟我们的这个主主题给贴合上,那么所以接下来我们来介绍一下这个基于参数化的这个曲面对应。

和这个compendal matches的这样一个生成方法啊,对于我们的这个问题而言,我们这个问题的输入一般情况下是有两个这样的模型,m一和这个模型m2 啊,这是我们的两个输入。

然后呢并且我们还会有一些这种叫做corresponding的这个landmarks,其实就是这些画出来的这些圆啊,这些原则这个对应关系呢其实呃一般情况下是由这个用户来指定的。

当然你有一些赠送的算法也是可以的,当然这个东西不是很万能的,但是呢我们现在在对我们这个问题而言,我们现在假设它是这个这些lmarks的这个对对应的这些lmarks啊,是输入啊。

嗯那么所以说呢对于我们的这个输入而言,我们是有两部分内容,一部分是这个两个网格啊,这两个网格的连接关系是不一样的啊,比如这个这个长颈鹿和字体嘛,它们之间的这个原本的这个三角形的连接关系是不一样的啊。

这是第一个输入,然后第二个输入呢是我们还在这个马和这个呃长颈鹿身上,我们会有一些呃这个对应的这些呃landmark,就是一些其实就是一些点缀一些啊。

a pair of a point of the pair of landmark啊,就是一直点的对,然后呢有的有了这两份输入以后呢,我们接下来的目的是要去建立。

就是这两个就是这个现在画上纹理的这两个呃模型,比如说这个这个马和这个长颈鹿这两个模型之间的这个一一对应关系,或者说建立这两个这两个模型之间的这个compatible match。

就是使得呃这个马跟这个长颈鹿的这个连接关系是一样的啊,这个这个是我们的输出,所以我们的目的是要去建立这个这个码和这个长颈鹿之间的,这个一个摆jective的双摄。

或者说呃一个摆jective and low distortion的一个双摄和一个smap,就是一个one two one的map,呃。

或者呢就是我们要去建立这个马哥这个长颈鹿之间的这个compatible,meshes,就是要去建立他们这两个之间的这个呃相容性网格,就是连两个使得这个马哥这个长颈鹿之间有具有相同的连接关系。

就大概是这是我们的目的,基于这个csmart和呃,就是要去建立这样的一个呃y11 对应的这个曲面对应和,当然我们还希望是这个低扭曲的,那么低扭曲最容易看的是什么呢。

就是这个这个比如这个三这个左边这匹马上的,比如这样的一个呃正方形的这样的一个纹理,然后映射过来的话,他到这个地方借一到这个地方,它的这个纹理呢其实还是相对这个正方形,跟左边这个正方形还是比较接近的啊。

那我们希望是最后是产生这样的一个低扭曲的啊,呃这个变形,而不希望说这个变形变得很大对吧,就比如这个有一些很大的剪切角啊之类的,那么对于这个基于参数化的方法的话,一般情况下会分为这个如下的这个三步啊。

首先是我们要去建立一个叫common best man in,就是一个公共的基础域,这个要去建立一个这样的common best man,那么这个common base dman呢。

这个domain是要对这个输入的两个网格都是一样的啊,这个common base dman in,然后呢有了这个common pass man以后呢。

然后我们接下来需要去算一个low distortion的参数化,这个这个董妹呢你可以认为是比如说呃这个是m1 ,这个是m2 ,这个是这个best dman,然后呢你要去算一个m一到b的这个映射f1 。

你要去再去算一个映射f2 到m2 到这个b的映射f2 ,然后呢你再去建立,比如说哎这个m一到这个m2 的这个映射,这个映射的话,其实你就可以是什么呢,其实可以是f符合上就f2 的逆对吧。

就f一符合上f2 的幂,那这样的话你给一个m一上的点,那么你首先会通过f一映射到这个b上,然后再通过这个f2 的e从b运回到这个m2 ,那么所以说这个第二步呢,其实我们的这个这个算法的这个第二步呢。

其实就是去算这个f一和这个f2 ,然后呢呃当然你也可以有了f1 f2 ,你其实就可以去做f2 ,等你跟这个f一的这个组合对吧。

那其实你就可以建立m一到这个m2 的这样的一个呃cross puration,或者说这个service mapping,然后有了这个service mapping以后呢。

我其实就可以去对这个两个网格m一和m2 去做一个呃,相容性的rematch对吧,这个也是可以做的,那么所以说呢我们最后整个的这个算法就是首先去构造这个b,构造完b以后去计算这个f1 f2 。

有lif a f2 以后,你可以去使得这个m一和m2 具有相同的连接关系,去做一个相容性网格的这个生成过程啊,大概整个的算法就分为这样三步,那么接下来我们来简单的举个看一个例子啊,那么比如说像这个例子。

他们这个地方的这个best man,他选的是这样的一个这样的一个定义,呃,当然这个地方呢它这个best dm跟我上一个上面上一页ppt里,这个best dman还不大一样啊。

它这个其实是一个m m s应收到一个b1 mt呢,映射到一个b2 ,看有没有,他其实是也应收到一个从这个m x映射到一个b1 m啊,m t映射到一个b2 ,然后这个b一和b2 是什么关系呢。

这个b一和这个b2 ,啊这个b一和b2 它的关系是他们他们俩具有的相同的连接关系啊,就他们俩是个computer matches,就是这个b一和b2 ,是这个,compatible meshes。

那么有个completo meshes,那其实是比如说这一块它其实跟这一块它就可以一一对应起来对吧,那所以这两块它你可以认为它是一个competition matches,就competm。

所以说呢你最后你会算的是这个ms到这这一块的这个距离,就是这一块的这个映射啊,注意啊,它这个地方这个每一个映射呃,这个b上面的这个每一个都是一个三角形啊,都是一个三角形,所以你是从比如说这一块映射到这。

映射到这个下面这一块的话,那这个地方其实啊其实是把这个三角形网格上的一片三角形域,映射到这样的一个三角形域,那么对于这边也是一样,其实也是从这个上面的一块这样一块区域,映射到这个三角形下面的一个三角域。

那么因为三角鹬是一个to的对吧,那么三角域是to的,那么其实我我们完全可以使用之前的那个to test bing,去得到一个摆getive的参数化,对不对,我呃并且三角域肯定是一个平面,是不是。

那么所以说呢我就可以把这个曲面上的,把这个取取这个service网格上的这样一块平面区域,映射到这样的一个三角域上,然后把这边也映射到这个三角域上,那么这是两个三角形之间。

就这两个三角形之间我其实可以很容易去建立一个对应,对不对,因为三角形之间的对应其实是很容易的,因为三角形的我只要三个顶点给定,然后三条边的话,我其实只要去做就完全可以去建立一个一一映射。

那么这样的话我就可以建立一个从,就是我可以把这个这个是m s t表示的是两个三角形之间的意思,那么两个三角形这意思就是一个仿射变换对吧,这个是一个很很显然的事情,因为这个都是一个直播的情况下。

那么这是一个m s,有了mt,有了m m m f m s有了,那么这样的话从这个m s到这个m t,那这个距离其实就是fs符合上f s t再符合上f t的逆对吧,那这样的话我就可以去建立一个。

从这个m s到这个mt的这样的一个映射,那么有了这样一个映射以后呢,其实我只要去我就可以去做rematch了,那么比如remax的话,我只要去比如修改这边的这个三角形,那么这里面的这个核心对于这个算法。

它的核心的问题是这个b一和b2 的构造是不平凡的,这其实是相对的比较麻烦,因为你实际看一下,一开始输入,这是一个犀牛,这是一个牛,它前面这个角上面有两个点,就信牛只有一个点对吧,呃这还有这个耳朵啊。

什么这个构造其实是相对复杂的啊,不对啊,这个犀牛的这个角对应的是这个这个这个角,然后这两个是对应的是这两个耳朵,那这个构造其实是相对是复杂的,就这个不从这个构造。

这个两个b1 b2 其实是一个不平凡的事情,那么所以说呢我们接下来呃,现在这个地方用上的参数化啊,就是这个曲面上的这一块映射到这个三角域上,就是一个to this bedding。

当然你也可以做一下这个扭曲的优化,但是它本质它啊这个地方用到了这个,对,然后这个所以我们接下来就是这个,很显然这个b一和b2 的构造是很困难的,那么所以说我们接下来的目的。

或者说我们接下来想想去讨论的问题是这个m啊,b一和b2 的构造有没有可能变得简单一点对吧,那么接下来就是呃在14年的时候,有人写了一篇新冠服pv对吧,那当然就说哎我这个不需要去构造那么复杂。

那我能不能去直接用这个平面的参照,平面的这个参数语对吧,就我把这个两个比如这两个蚂蚁的形状都映射到一个平面参数语,然后呢再去把它lift起来,那么这个他们是怎么做的呢,这个算法也比较简单啊。

首先是这个cut to disk disk tpologi,那么首先是这个地方有两个有一些这样的一些landmark对吧,这些landmark是给定的,就事先给定的这些landmark。

然后呢我在这个lmark上去构造一条一一对应的第一呃,一一对应的这个呃曲线,就这这个线,比如你是这个lmark和这个lmark相连,那么这边是这个landmark和这个男的mark相连。

那么你可以构造这两条landmark间的一条连线对吧,然后呢你让这条连线跟这条连线它是建立一个一一对应的,那这个事情其实是相对比较容易的,因为比如说你在这个黄色的这个蚂蚁上,你可以去构造出来。

把构造出来一条路径,把这些所有的这些点连起来,那么连起来以后呢,这条路径你右边也去把这个对应的这个蚂蚁给它连起来,那你其实这个这个地方这个地方怎么去,你可以去选择这两条这两个点连起来。

这边右边也是连起来,就是你要让这个graph就是这个连接landmarx的这个graph,这个拓扑也是一样的,这个其实很容易做到,这个很容易对的,因为你你这个左边是要连成的,右边我也要给它连起来对吧。

这个形式很容易做到的,然后连起来以后呢,这一条cut pass这条跟这条这个切割路径,那你就让它这个相等,就是让它去建立一个一一对应,而建立这个一一对应也是比较容易的,因为这个东西可以用这个弧长参数化。

啊就可以直接用弧长参数化对吧,那比如说你你这一段和蚂蚁的这一段,那你其实就是可以用一个简单的弧长或参数化去建立一个一一对应,那么建立完这个这个cut pass这个一一对应以后啊。

就是说这一步它其实是呃构造这个cut pass,其实是这个cut pass也是有这个一个一一对应的,啊one two one对吧,这个cut pass也是有一个一一对应的。

有了这个cut pass以后呢,那么接下来我需要去生成一个2d参数化域里面的一个共同,就是common bus dman,对不对,就是平面域里面的common base ma,但如果你要去建立这个平面。

拆除于里面的common best man,那你这个时候呢最简单的方式是什么,就是你因为你这个cut pose不是已经有了一个一一对应吗,那么你在做这个参数化的时候,你可以去做一个共同。

共同边界的参数化,对吧,你做完这个共同边界的参数化,那么这个这个参数化的玉对于这个黄色的蚂蚁和这个蓝色的蚂蚁,这个参数域是不是就是一样的了对吧,那你当然你期望这个你当然是这个参数化。

你当然还是要是没有翻转的,那么by jt的话,那么也就是说这个参数域在平面上而言,在平面上,这个参数与它其实对于这个蓝色的蚂蚁和这个黄色的蚂蚁而言,这这一片区域其实就是一样的了,对不对。

那么这样的话你这个不就是相当于你可以把这个2d平面的这个参数,你可以当做你的这个啊,common bass dom,有了这个common biss dman。

那么这个地方的这个映射从这个common pdma里面,这个映射这个fire和这个和c,那它其实这个地方也就直接就是顺理成章的成立了,对不对。

那么所以说你可以认为这个common best domain在这个地方构造的过程,其实就是这个fine和这个perc之间,这个过两个映射的这个生成的过程啊,那么这个地方的话,因为比如说一般情况下。

我们这个lmark就是点的时候一般都会点赞那些就是曲率比较高了点,或者说它会引起这个扭曲,引火引起扭曲比较大的点,那么这样的话一般情况下做完这个参数化的时候,这个参数域的这个扭曲一般都是比较低的。

那么这个时候呢你可以认为这个发一发和这个perce,它都是一个低有区的参数化,那么丁有出三句话,然后你最后去可以去把这个f给组合出来对吧,f组合出来就是要从这个比如黄色的蚂蚁到这个右边这个蚂蚁。

那其实就是要是这个发,然后呢符合上这个proceed对吧,符合上proceed ne,那这样的话我就可以把这个左边这个蚂蚁映射到这个,又把这个黄色的蚂蚁映射到这个呃六呃或蓝色的蚂蚁上面啊。

那么所以说呢在这个地方,比如这个地方可能呃就是说所以从这个整个算法来介绍一下,首先第一步是去啊输入一个两个蚂蚁,并且有一些landmark,然后再使用这个landmark。

我可以去得到一个一一对应的这个cut pass啊,一对应的这个cut pass,就这个这个cut pass,然后有了这个cut pass以后,我就做一个共同边界的参数化,那么做这个过程编辑参数化以后呢。

其实就是相当于去申请了一个common best man,并且生成了两个映射,就是从这个黄色的蚂蚁和这个蓝色的蚂蚁映射到这个combs dm上啊,然后接下来呢我可以把这个映射的复合。

可以把这个构造出来一个一一对应啊,那么这个声,那么这边可能同学会问了一下,这个common这个共同边界参数化是怎么做的对吧,那么原来的这个参数化,我们经常比如之前讲过的时候。

其实呃在这个三角形的参数化里面,一般情况下是一个distortion项,然后呢就是目标函数对吧,对于一个参考性而言,一般情况下是minimize一个distortion项。

使得比如说这个行列式要大于零对吧,所有的行列式要大于零,一般情况下是这样,那么现在的话你无非就是如果你要做这个共同编辑三句话,那么你其实无非就是这个你要做的是这个在这个函数的扭曲。

要尽量想这个proceed,这个扭曲要尽量想distortion,然后还有一项啊,当然这个是这个是目标函数,对目标函数,你可能是希望两个的这个扭曲要尽量小,那么呃这个约束的话。

当然第一部分还是这个就是这个要没有翻转对吧,那第二部分的约束可能是这个边界,比如这个地方这个边界点,一个是这个c啊,m c m i一个边界点,这边可能是一个c所以说要ci m上的这个边界点。

等于c i n n上的这个边界点对吧,n这个蚂蚁和m这个蚂蚁,那么这样的话其实你是一个带一个线性约束啊,这个当然还是那个翻转,其实就是嵌入到这两个目标函数里面,这是个扭曲带线性约束的这样一个扭曲优化。

那这个东西其实本质上其实没有什么难度,就是其实简简简这个优化问题解起来跟之前是完全totally,totally是一样的,所以说这个地方的这个共同边界参数化的计算,其实也是相对比较比较简单的啊。

就没有什么额外的计算的啊,技巧在这,那么对于我们这个共同编译参数化呢,其实从这个文章里面,其实我们当这个文章当时给出来证明这个啊,这个只有这个没有翻转这一条条件是不够的。

他需要做到的是这个locally l o c a l o y locally injection是什么意思呢,就是它除了这个所有的内部的三角形的呃,它没有翻转以外,它还要求的是边界点的边界点的。

one rain的这个三角形的内角和加起来是要小于二派的啊,它不能够超过二派,那如果更进一步,当然他这个文章的要求是这个locally jective。

但如果你做一个globally injection的,就是做一个就是不自交的这样一个定而定义出来,那这个其实也是非常好的,那这样的话你整个的这个记后面的计算就会变得非常简单啊。

其实这个地方已经大概介绍了一下整个算法流程,那我们接下来具体来看一下第一步啊,那么第一步我现在我要去计算的是这两个呃,这个cut pass,这个cut pass呢我们希望它是一个尽量短的。

然后呢这个cut boss要尽量做一个最呃一一对应,然后呢最后我们希望它是做一个最小生成树对吧,那么这个地方的做法呢其实就是啊最通常的做法在图上,我先把这个lmarks之间一lin max。

比如说任何两个lmarks之间,我先去建立一个建立一个最短路径出来,然后呢呃我去把这两个landmarx之间,这个最短路径的这个cost付给这条边长,那么这样的话我其实可以用这些所有的landmark。

我其实可以去构造一个,因为它是一一匹配的嘛,那我其实可以去构造一个完全图,那么在这个完全图上呢,我就再去说生成一棵最小生成树,那么这个树上的每一个每一条边上的这个全的话。

其实是呃这条边的长度加上这条边的长度,这是它的权,然后最后呢我就可以去构造出来这样一个compatible,这样一个bgative的这个pass的这个路径,那么有了这个以后。

那这个地方是需要这个locally injective,那么这个地方当然我也可以直接去做一个by getiac啊,那么接下来就是我这个当然可以直接用,刚才已经讲过了,你可以直接套前面的方法。

这个地方没有什么额外的呃技巧,要处理的就是加一个呃等式约束的这样一个扭曲的优化啊,啊等加等式约束,其实你如果从这因为你其实是两个点一样,你在实际写代码的时候,其实只要其实把这个边界这个地方的这个。

你这个约束其实都可以不加的,你可以把这个人为的把一一部分变量给去除掉,就相当于什么呢,就相当于是你在m上的那个边界的这个变量,其实在n这个边界里也就直接用了,就你相当于把这个变量直接t掉了啊。

所以这个地方根本就没有什么难度,就是就是求导和求胜的时候稍微注意一点就行了,然后接下来我们是希望去要去把这个啊映射给lift起来,对吧啊,这个lift起来也是啊,这个还是算这个参数化的过程啊。

这个三参数化的过程也比较简单,那么接下来你是要去把这个f给构造出来,这个f呢其实就是这个f符合上呃,proceed ne对吧,就是要符合上它的这个力。

那么也就是说你实际需要要把这个左边这个点映射到这个右边,这个点上去,那么注意这个地方呢,因为有这个地方啊,它是有一些这个相互的自交的,就是它没有是完全把它避免掉。

那么所以说呢呃因为它是只做到local接的,那这个整个的这个参数也有可能会存在一些自交,那么存在一些自交的话,你怎么去把左边的点映射到这个右边这个区域上去呢,那么这个时候呢因为你有自交的话。

你比如说这个点对吧,你通过这个f你意识到这个地方这个they那这个z其实是有上下两份,那其实印到这边啊,右边呢其实你也会呃有两份对吧,就是说他其实会有一个ambiguity。

就是它会有一个这种呃歧异性的点在这儿,所以如果你只考虑这个局部的话,那么所以说这个做法呢就是去啊从这个x这个点,你去构造出来到一个边界上的一条连线,那么这样的话你从这个边界点。

你其实可以慢慢慢慢的映射到这个想要你想要的这个点,那么也就是说从这个z0 ,就这个这个x0 对应到的是这个z0 ,那么你这样慢慢慢的把这个b给生成到这,那么这样的话。

你这个时候你这你这个对应的这个也可以从这个左边生成到这边啊,那这样的话就不会有这个ambiguity了啊,啊就是大概意思就是说我我要去做的是一个啊,我现在要做处理的问题是。

对于这个地方这个x我要去这边算出来一个fx对不对,那么最最给定一个x的话,你首先是通过这个函数的复合的话,你首先要把这个x映射到这边的,比如说这个地方的z就你比如把这个x放到这里。

所以说你要首先要算的是fx fx有可能是到这个地方z这个点,那这个z这个点对于这个proceed,就右边这个应试而言,它其实会有比如它这个地方发生了重叠,它其实会有上下两个两个位置对吧。

所以因果印到这个右边去的话,可能会有两个位置,那这个时候就会存在一个ambiguity,就是它会存在一个歧异性,那所以说呢一般情况下你要去做这个z的映射的话,你还需要把这个x0 到,你要去构造一个路径。

从一个边界点到这个x的这样的一个路径,那么这样的话你去做这个z的这个意思的时候,你也需要去把这个路径上所有的点都去做一下,那这样的话你就不会有guity了啊,因为对啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个做法也比较的相对比较容易啊,就是这个呃啊那就是这个之前的这些结果,这个结果呢相对来说其实也还可以啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就是没有什么太大的啊,呃当然它会有一个很大的缺点,我们来讲一下,因为现在整个的这个计算啊,现在整个的计算,现在整个计算它其实都是与友谊开始的这条路径决定的,所以这条路径决定的是什么。

你看这个路径的计算其实跟后面的这个common best man in的构造,还有这个扭曲的构,common best的构造,还有这个呃参数化的那个计算都是这个分割开的。

那么也就是说你这个cut构造的好坏,其实会影响后面整个啊整个这个呃参数化的这个扭曲啊,一般情况下这个呃通常情况下,这个cut pass会很大的程度上影响这个局部的这个扭曲啊,啊。

所以说后面呢他们又开发了一些方法,去怎么去让这个跟跟跟跟跟这个cut没有关系的一些算法啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个我们在这个课里我们就不介绍了啊,那么当然了,这个service mapping它会有很多很多的其他的方法,那我们就呃对于我们这个课而言,我们可能就介绍了刚才这种基于参数化的比较简单的这种思想啊。

就其他的内容我们就不展开了,这里边的文章非常非常多,这个地方的水也非常非常的深啊,就是建议如果有志向做这个问题的同学们啊,还是要全面的对各个方法的呃,稳定性,鲁棒性,实用性呃。

效率等等要去做一个全面的分析和了解啊,呃什么这句话什么意思呢,就是说如果有代码的,你们就要去跑一跑代码,看看它的效果真的是不是跟他的文章一样,宣传的好和坏啊,啊这个圈子的水极深无比啊。

这这个这个方向的这个圈子的水非常非常深,就是说里面有很多很多的,很多很多的很微妙的技巧啊,呃如果有同学想进这个圈子的,我建议是把能跑的代码都去跑一跑,不管是matlab的c加加的都去跑一跑。

多试试不同的参数,多试试不同的例子,看看是不是呃对整个方法,或者说对所有的方法有一个相对全面的了解啊,特别是要去看一下他,这个你是你实验出来的这个结果,跟他文章里的宣称的这个结果是不是一致啊。

特别是这个这个圈子里面,因为它会涉及到比较呃,如果是传统方法的话,他们会涉及到比较高深的一点的这种呃比较复杂一点的数学啊,就是说你会看到他文章是比较的申奥或者说比较的复杂的啊。

结果呢他们在文章里可能也写的会比较好,但是它的这个结果真正的好和坏啊,建议大家还是要去跑一下他们代代码,给一个给自己一个比较清醒的认识啊,啊这个我就不能说太多啊,我就大概说一下这个事情啊啊好我们就这样。

这个那就service mapping这边我们就讲完了,那么接下来我们还是呃沿着前面两次课,前面两次课,这个前面几次课讲到了这个高阶的,这个呃就是一个连续的这个映射对吧,那么今天我们进入我们今天讲一个。

讲一个也是在这个c g d,或者说整个计算机辅助设计和计算机图形学里用的比较多的,这个高阶的多项式映射啊,北泽尔啊等等这样的,啊这样的一个那个就是,呃这样的一个多项式映射啊。

这个其实在这个整个的这个专情理学里面,那么我们主要是要去讲的是呃在啊高阶网格生成里面啊,去使用这些呃高阶的多项式映射啊,那么首先我们来看一下这个高阶网格,那么比如说像这个左边上面这些。

那比如说像上面这些这个线性网格的话,其实现在已经呃呃发展的很成熟了,而线性网格指的设计是什么呢,就是说它这里面的所有的这边都是一个线性的函数啊,但是呢这个为了随着随着对这个因为你原始的这个呃。

模1y c a d模型都是这样的呃曲编网格,然后呢,呃并且这个因为你为了让你这个生成的网格,跟你的这个曲面网格更加贴近的话,你其实你也会生成一些这样的一些带曲边的这样的一个呃。

你你也有需求去生成这些带这种曲编的这个四面体啊,三角形网格,或者说这边的四面体网格啊,那么对于这个曲线啊曲面网格而言呢,一般情况下我们都会使用这样的啊,高阶的这样的多项式去定义这样的一个平面的三角形。

或者说去定义一个呃四面体啊,那么为什么要去做这样的,比如说为什么要让这个每个三角形变成一个多项式的表示呢,那它的目的呢其实是这样的,首先呢为什么要去使用这个高阶的这个网格呢。

首先这个高阶因为这个一般cad模型我刚才说了,它本身也是一个弯曲的,那么对于弯曲的边界,你要去让它的逼近误差尽量小的话,那你使用这个弯曲的这个多项式,就是高阶的多项式。

肯定会一般情况下会比这个线性的多项式,线性的这个三角形或线性多项式会呃效果更好对吧,就是呃比较显然的这个事情,那么然后呢啊其次就是你使用这个高阶机,就是你使用这个刚才说的这个高阶多项式的基。

如果你要去做这个有限元分析的话,那么一般情况下在这个呃在这个一些相应的条件下,它会得到一些更好的数值的耗散型和色散型,就是说相当于是这个数值误差可能会更好,那么第三个是这个高阶方法。

一般情况下啊计算起来也是相对还是可以的,因为一般你使用这个高阶的这个精度的时候,你的那个网格的这个稀疏性会比较高,那这时候呢你去求解这个线性方程组,求解这个有有呃。

这个有些人的时候他这个那这个就是效率其实也是可以的啊,主要是这个精度和这个对曲面的逼近程度,第一条和第二条比较关键啊,那么当然了,这个你做高阶网格的话,这个高阶网格也有很多不同的类型啊。

四边形不是四面体的六面体啊,这也是比较常见的,当然还有一些棱柱啊什么的啊,那么在这个你既然要去做这个高阶网格,或者说你要去做个做这个高阶多项式的映射对吧,那么接下来一般情况下。

我们还是会用这个多项式的基函数去表示一个呃多项式的基函数,去表示一个多项式对吧,那么对于这个多项式的基函数,我们来看一下今最常用的这个最常用的,最常见的这个多项式机有哪些啊,首先是这个一个北大的机。

那么北噪耳机的话呃,可能大部分同学都比较熟悉啊,北大耳机其实是基于这个boys time这个函数呃来定义的,那么右侧的话是这个这个地方,这个图给了一个给了一个九四北大耳机的这样一个图像啊。

啊他们把这个北道尔基呢它会满足这个呃非负性啊,归一性,然后还有这个地方它是一个迭代的定义的方式啊,那么呃北戴耳机章程的这个函数呢,这个恢复性和这个规律性呢。

使得它这个具有这个突发性和这个端点差值的性质啊,这个应该是c g d那个课程里都有的,我这边简单的说一说啊,那么北大函数的这个迭代定义呢,也也定义了这个它的这个整个细分求解的过程啊。

他这些性质呢是北大是具有非常好的良好的性质,我们在后面可能会用到这些性质啊,那么第二个g呢就是这个拉格朗日基加个拉格朗日积函数呢,它其实是呃接下来数在相应的这个节点上啊,就是这个差值节点上。

它其实是这个数字是一的,然后在其他的节点上是雷啊,那么对于高维的情况下呢,就是把这个一维的拉格朗的基函数相乘,得到这个高位的基,那么拉格尔的g函数呢还是具有这个差值节点的性质。

然后并且主要是它的形式比较简单啊,然后呢呃对于其他这种一个拉格朗日记,那么还有一些其他的机器,比如说这个密集密集就是这个x的零次方,x的一次方,x的二次方,等等到x的n次方啊,那这个还有一个正交机对吧。

这个正交多项式机,那么正交多项式机的话呃,就是相当于它是它比如说一个n次的正交多项式,它其实跟前面的这个任何一个不超过n n次的,这个任何一个不超过n减一次多项式都是正交的对吧,还有一些更加方式。

那么这个多单机的话,它会有一些这样的一个正交性质,那么正交近视的话,其实是在这个数字逼近和这个啊数据毕竟和这个数的积分里面会呃,用用的稍微多一点啊,那么这正交正交正交的这个积的,你可以通过对这个密集啊。

或者对其他机你去做一个呃smt正交化啊,思密达正交化你就可以去得到这样的一个正交基啊,当然也有一些常见的g啊,常见的正交基,那么这些机的话呃这些不管是拉格朗日机,北戴耳机密集,还有这个地方的这个正交机。

它其实都是章程的,是多项式的空间啊,都是这个多项式表示的一个空间,那么它们之间的话其实呃它是一个线性空间,那这个限定空间,所以说他们这个基因不同的g之间,它其实可以通过一个呃线性变换区。

或者说其实就可以通过一个矩阵的乘法去做这些机的一个相互转化啊,有了这些机以后呢,我们就可以就是我们现在有了这些北戴耳机或者拉满耳机,或者这些的多项式机以后呢。

我们就可以去定义一个高阶多项式的这个元素了啊,其实就是用一个多项式去表示一个多项式去是一个三角形啊,那比如说我们来看一下这个例子,这个例子是一个四面体啊,那就是右边这是一个四面体啊,这是一个四面体。

那么这个四面体的话,其实呃这个l i啊,这个地方这个b i这是一个北大的基函数,那这个可ci呢是这个,你可以认为就是原来比如说你要去定义这个这个多项式的话,你需要去对这个多项式,你有一个呃呃变量对吧。

那变量的话这个地方就是比如原来的这个xy啊,什么这个变量,那只不过这个地方的这个变量呢是这个,啊这个地方这个变量是这个cos 1 cos 2 cos 0 cos 1 cos 2,那么。

呃所以说呢这个地方对这个呃cac cac 0,cac cac 2,其实你可以认为是这个参考的这个四面体里面的这个重心坐标,对于这样一个四面体而言,如果你要去定义它的这个重心坐标的话。

其实是呃比如说对每个点里面的每个点而言,它其实是有这个呃,就是比如说对于这个四个四个顶点而言,对于这个顶点这个对立啊,你要定它的这个重心坐标,它其实会有四个数对吧,但是呢因为这四个数加起来是等于一的。

所以说你要去表示这个点的话,其实你只要去用cos 0 cos 1 cos 2,然后再加上一减去cos 0 cos 1 cos 2就可以去表示这个点,对不对,那这个其实就是一个重心坐标的这个表示。

所以这个这个地方的这个向量呢,其实你可以认为是这样一个表示方式,那这是一个呃北大耳机,然后这个p pi呢就是这个控制点,就是这这些这些点啊,然后呢接下来你就是控制点乘上这个基函数。

就可以得到得到最后的这个多项式啊,其实这个你可以认为这个控制点其实就是这个,就这个机前面的这个系数对吧,然后呢这个肥皂呢是这个地方的这个机。

然后这个casino是这个地方的这个整个的这个映射的这个自变量啊,就就很简单嘛,就是李四其实是一个从这个cc,然后cac,然后呢去定义这样的f x y,所以这个是它的这个变量变量。

其实就是来自于这样的一个重心坐标的域,然后乘上这个基函数,然后再乘上这个p i p i控制点,就是这个它的这个位置啊,这是一个北大的基,那么呃有了这样的一个积极的定义,我们再来看一下它的这个假货币矩阵。

那如果是对于一个线性的矩阵的话啊,对于一个线性的变化,比如说从一个三角形一直到另外一个三角形,那这个线有色变化,我们之前讲过它的这个啊映射是一个分片线性的映射。

然后他的这个行列式它其实是一个呃他的这个甲方被矩阵啊,这个地方写的不对啊,这个假货币矩阵是一个假货币矩阵,是一个长值啊,甲亢病真是一个长指,那么对于这样的一个北造应试而言。

或者说对于这样一个北造四面体而言,它的这个它的这个它的这个定义是这样的,f k y是这样的一个基函数的这个定义形式,那你要去对这个基函数据,你要对这个呃,你要对这个函数去求它的这个甲壳币矩阵的话。

其实就是要去求这个求这些啊,求这些函数对吧,那么求完函数以后,因为它是一个多项式,那你这个地方求完以后,求完以后,这个地方求完以后,这个地方它其实还是关于这个cc的这个一个函数,对不对。

就是这个每一个分量,这个甲方比矩阵里面的每一个分量,它其实是关于cc的一个多项式,它而不是说是在整个三角形或者整个四面体上,它是一个分片长直的,那么这样的话将会被矩阵的行列式。

但肯定也是关于cc的一个多项式,也就是说它在整个的这个三角,整个的这个三角形,一整个四面体上或者整个三角形上,每一点上它都是不一样的,那么这样的这个时候如果我们再去关心这个元素有没有发生翻转。

其实我们要考虑的是这个多项式啊,就这个多项式在这个域里面,就是刚才那个cos cc的那个取值里面,它的预值域里面,它的这个它的这个域里面,它的最小值是不是大于零,如果最小值大于零啊,如果最小值大于零。

那就说明这个区元素是没有翻转的,如果最小值是小于零的,那说明这个地方其实是存在翻转的对吧,因为它但是那个点它是在这个四面体里面某一个点,但这个点是在哪里,它是由这个多项式定义的。

就是由多项式你要去求它的最小值,所以这个问题就变得比原来这个问题要复杂很多,原来这个问题的话,这个行列式啊,这个地方这个行列式,这个房列式呢它在整个这个三角形上都是一样的,主点都是一样的。

它跟这个里面这个坐标其实是他和这个里面这个重心坐标其实是没有,这个跟这个可惜是没有关系的,它这跟这在每个三角形上都是一样的,所以说呢它你只需要对于一个三角形而言,你只需要去考虑这一个值就行了。

但是对于这个下面这个映射的话,它其实跟这个里面这个肯定是有关系的,这个多项式行列,这个假货币矩阵的行列式的多项式呃,呃甲克比矩阵的行列式,它其实是一个多项式。

这个多项式它其实是跟这个里面的这个可惜是有关系的啊,注意这个地方一个比较大的区别,因为它是有关系的,所以说他在这个它这个多行列式,甲克比矩阵的行列式本身就是一个连续函数啊。

那么接下来我们来以一个高阶参数化的这样作为一个例子,来简单的讲一下啊,那么之前的参数化呢都是将将这个空间中的三角形网格映射到一个啊,有一个线性的三角形网格,参数化到这个参数域里面的一个线性三角形啊。

那么现在呢我们希望是什么呢,就是左边这个情况啊,左边这个就是这个还是这个普通的参数化,就是我们之前讲的参数化,那右边这边是什么呢,就是它实际是把这个空间中的一个三角形,应收到平面里面的一个高阶三角形。

然后这样的做法是因为高阶三角形它其实会加一些控制点对吧,那它其实它的自由度会更高,那么这样的这个扭曲可能会更小,那么所以说呢我们这个地方呃,我们这个地方就是呃,所以说这是他的这个出发点来。

我们再来看一下这个定义啊,那么对于这样的高阶参数化,那其实这个t呢就是这个这个小t呢,就是这个网格上的这个三角形,大t呢其实是这个参数域里面的高阶三角形,那么对于这个三角形而言。

如果你是一个n阶的三角形的话,就是你的这个呃多项式的基数是呃,那个那个是n阶的三角形,它就有1/22 n乘上n加一个控制点啊,就是有这么多控制点,那么每个控制点的话,我都可以继承这个接k啊。

那么这里其实展示了一个二次的三角形,二次三角形的话就是2x3÷2,总共有这个2x3÷2,啊对于一个这样的一个呃参数化的应试而言,可以写成一个关于cc的形式,啊对啊,这地方,n是三是二,二的话。

2x3÷2,怎么只有三个控制点啊,对就这就这就只有这三个控制点啊,然后对呀,应该是六个控制点,可能这地方写错了啊,不好意思啊,然后不管怎么样啊。

这个地方就是你会有这样的一个i j k cn 2 cn 2的话应该是n乘,哎对了c n2 啊,应该是这样的一个形式啊,啊对啊,是这样一个形式,那么最后的话就是你关于这个多项式,你是它是这个函数。

它是一个这样的一个多项式的形式,那么如果你去给他去做一个求导,那么求导的话,你这个地方就会就会得到的是一个呃一个高阶的一个形式啊,那么呃对于这个这个是一个这个是一个这个地方,还要再说一下啊。

这个地方应试的定义,这个地方他们一般情况下在这个参考文献里,他们一般会把这个呃问题的定义稍微简化一下啊,就原来的问题呢,我们是其实是要去构造的是一个这个t是一个原始三角形上的,就是这个空间中呃。

网格上的这个三角形,你要映射到一个比如说这个地方一个曲边的三角形啊,就是这个后面这个曲边的三角形,那么他们情况一般是不直接去构造这个t到这个曲边三角形的。

他们一般情况下会在这个中间引入一个等边等腰直角三角形,这个等腰直角三角形的这个边长它是这个地方是一啊,这是个腰长为一的,就是它的一个两个腰等于腰的长度是一的,这个等腰直角三角形啊,那么等腰直角形。

它所以它所以它首先构造一个从这个空间中的这个三角形,就是这个原来的这个三角形到这个等腰直角三角形的这样的一个映射,然后再从这个等腰直角三角映射,再去映射到这样的一个呃被一个高阶的这个网格。

那么最后的话它这个地方的这个映射的话就可以写成这两个符合啊,就是就你从这个到这个的意思,就跟我们之前讲那个曲面对应那个那个呃公共浴室一个道理啊,那么也就是说你要从这个左边到这边的话。

你是其实是构造了这个映射和这个映射的一个符合啊,那符合以后呢,它的这个假号比矩阵也就变成了这个符合,那么对于左边这个而言的话,它其实是两个直边三角形之间的这个映射对吧,那么所以这个甲方被矩阵的话。

其实呃呃其实呃我不用去太care他,那么主要是这个右边这个,所以我其实接下来主要是关心的是这个腰长为一的,这个等腰直角三角形到这个曲面三角形之间的这个呃行列式的值,因为这因为这个可惜在改变的情况下。

那其实这个地方的这个等腰直角三角形的啊,不就是这个可惜在变化的时候,这个甲靠b f就是这个这个假货币,这个这个甲壳币其实是在变化的对吧,就是它其实每一点都不像他是个多项式吧,每一点就它是个多项式。

那所以说最后整个的这个,它还是一个多项式啊,那么接下来我们要去考虑它的行列式的话,那么行列式甲扣b f的话,其实应该是等于行列式甲扣bφ乘上甲扣行列式jcb cc的呃,逆对吧。

那么也就是说呃对于这个行列式而言,他其实这个啊这这这对于这个行列式而言,它其实是两个行列式的乘积,那么这个行列式的话,假如说这个三角形都给定的情况下,这个行业是其实是是已知的。

那么对于我现在要去判断这个地方的一个点,比如说这个点它的它的行列式是不是大于零,小于零的话,那么其实我只要去看这个的行列式,对不对,因为这个行列式的这个符号我其实是已知的,所以现在假设啊。

假设这个三角形这个三角形,这个三角形都已知的情况下,我要去判断这个地方的这个三角形,它的行列式是不是大于零啊,就是接下来是这个问题啊,啊所以说我们现在讨论的问题是什么呢。

我们现在讨论的问题是这三个三角形都已知的情况下啊,我要去判断这个三角形中存不存在,存不存在翻转,存不存在翻转,那么所以对于所以说对于这个这个现在这个符合的应试而言的话,这一部分的行列式是已知的。

那么所以说呢就只要去考虑这部分行列式,那所以说我只要去考虑这个腰长为一的等腰直角三角形,等腰长为一的等腰直角三角形,跟这个曲面网格之间这个映射的这个行业是大于零,小于零就行了啊。

那么所以接下来我们要去讨论这个问题啊,也是这个高阶高阶多项式映射里面的这个核心问题呃,因为优化的话其实整个还是跟前面的优化方法是一样的,所以我们就不过多介绍了。

我们这里面只介绍我们接下来这个课程内容只介绍什么呢,就是说当这些三角形都已知的情况下啊,这个t r大t啊,这个三角形都已知的情况下,我们怎么去判断这个直曲边三角形这个网格里面是不是存在翻转。

这是我们需要去呃判断的问题啊,那么现在我们要去呃啊这个当然这个我们再来看一下啊,这个这个这个多项式啊,就是这个我们现在看一下多项式的这个构成,这构成的话你是要去对他去求一个导对吧。

那么所以说呢这个带的这个雅克比矩阵的第一列其实是这个映射,对这个呃cac 0去求偏导,由boy散机的这个性质的话,我们其实它可以写成这个呃控制点向量的,就是这个这个控制点向量。

这个控制点向量的一个正线性组合,就是后面这部分是大于零的,那么这个下面这个同理啊,也是可以写成这样的一个呃控制向量的一个正啊正线性组合,那么所以说对于这样的一个行列式的话。

我们现在要去判断这个行列式他是不是在这个定义域里面,或者说在这个里面处处都是大于零的啊,我们现在要判断它是不是处处大于零啊,是不是相当于是不是在这个定义域里面恒大于零,这这是我们接下来要考虑的问题啊。

所以说呃整个的这个优化其实是反而是简单的,接下来这个因为优化的话,你可以去做一些采样啊什么的,就把这个问题可以简化掉,但是对于这样的一个高阶的网格,你要去判断它主点是不是都大于零对吧。

前面应该这个陈文杰老师讲这个共呃呃harmonica的时候,其实也介绍了这个事情,那么接下来对于这个多项式而言,我也许也希望去做这个事情啊,那么接下来我们来看一下这个问题怎么去啊,求解啊。

就是怎么去判断一下这个呃呃行列式是不是处处都是大于零啊,那么接下来这个行列式初数大于零呢,其实就是要去讨论的是这个呃有效性的这个条件啊,就是对这这个高阶网格。

或者说高阶这个多项式映射它的这个有效性条件啊,啊现在讲讲到这里,我们简单的回顾一下啊,我们首先是介绍了一下这个用机,还用这个呃多项式的机去表示一个呃,就首先介绍了这个多项式的积。

然后呢有了这个多项式的g,我可以去定义一个映射对吧,比如北大映射,有了这个北大映射以后呢,我们接下来呃有了这个映射,我就需要我就需要去判断它是不是你存在翻转,那么所以我可以把它的假货币矩阵给写出来。

甲和币矩阵写出来以后呢,我可以把它的行列式求出来,那么行列式在整个的这个定义域上,它其实是一个多项式,那么我现在就要去判断这个多项式在这个定义上,是不是每个点都是大于零的啊,我们现在就要去考虑这个问题。

那么首先我们来看一下这个问题啊,那么为了去讨论这个问题呢,我们需要去想一个办法对吧,怎么去说,怎么去判断这个事情,那么对于去对于这个方法,对于这个问题呢,我们一般情况下就是会把这个呃多项式。

因为多项式的话,我们刚才讲过多项式在不同的这个基函数下面,它其实可以去做一个相互的这样的一个转化,对不对,就是我不一定要是写在这个,比如北戴耳机,我也可以写在拉格朗日机,也可以写在密集。

也可以写在其他机下面啊,那么接下来我们来看一下啊,那么首先我们来看一下这个呃拉格朗日基的这个情况啊,呃我们接下来来看看一下这个拉格朗日基的情况就是什么呢,就是我们刚刚讲过现在的假copy矩阵的行列式。

它其实现在就是一个多项式,那么现在呢我可以把这个多项式呢,写成在这个不同的基函数下面去表示,比如拉格朗日基本在耳机密集正交多项式等,对不对,我可以在这些机下面去表示这个多项式。

那么我们接下来在这个不同的表示下面,它可能对于这个多项式是不是大于零的判断,可能会相互会有一些简化的过程啊,所以在不同的g下面,虽然虽然他只是做了一个线性变换,但是他对这个行列式大不大于零。

小不小于大不大于零的判断,可能会把这个问题给简化啊,我们来看一下,比如说我首先把这个行列式啊,这个这个这个就代表是这个行列式啊,注意啊啊这个地方是这个甲亢病cac呃,一塔啊。

这个cai呢呃你可以认为这个地方的这个cos呃,和一塔对于这个2d的情况呢,就是本来是这个cos这个它这个是一个向量对吧,那这个向量呢就你现在就可以看成是这个呃cac和ea啊。

就这个向量是这个这个大写这个初写的这个可惜它其实就是两个变量,可c和就是这个地方的这个一个点啊,就代表了这个里面一个点啊,这个这个符号,那么它现在是一个多项式对吧,那么可惜现在在一个二次。

如果是一个平面二次的情况下,如果这是一个二次啊,二次的情况下,那么它这个矩阵的性质行列式呢还是一个二元二次的多项式,那么这个地方的这个cci啊,cac i我把它记成是什么呢。

在这些node x1 x24 x2 x5 x3 x6 上的这个点啊,那么我把这个cos i继承是这些点,那这个是很容易计算的,直接把这个参数代入就可以计算出来。

那么这样的话我们可以把这个这个拉格朗日基函数啊,不我可以把这个原来这个呃甲壳币矩阵的行列式啊,这个地方代表的是甲壳币矩阵的行列式啊,啊这个行业是这个data嗯,第一题没写啊。

代表的是这个甲方b矩阵的这个行列式,那这个矩阵的行列式呢,我可以在这个拉格朗日机下面给展开啊,这是拉格朗日机,这是拉格朗日机,这是拉格朗日机,这是拉格朗日机,这是拉格朗日机,这是二次拉格朗日记啊。

然后最后呢这个前面这个系数呢,就是就是这个就是这个我就可以把它去做一个这样的一个呃展开啊,展开以后呢,这个满足节点上是一其他的节点上是零啊,就是我可以把这个展开想开完以后呢,接下来我就要去判断对吧。

我要去判断这个行列式啊,这个这个这个多项式,这个多项式在整个域上它是不是大于零,小于零对吧,接下来我因为我已经有了,这个是这个是这些是拉的,这些是基函数啊,就这个这些是这些是基函数。

那么相当于我用这个基函数去表示了这个呃一个多项式,这个多项式的意思是甲亢被矩阵的行列式啊,那么现在我要去判断这个行业是在这个呃,cac和ea就是两个两个变量在变化的时候,它是不是恒大于零的啊。

那么这样去你要去劝判断它是不是恒大于零,那也就是你要去求它的最小点对吧,那所以说最小点的话,一般情况下你就要去求它的这个重点对吧,那么重点的话,这样的话如果行列式的最小值在这个,你求这个驻点。

你其实是可以去相当于是解右边这样的一个线性方程组,如果你解出来这个cos 1 cos 2,它是在内部,也就是说它都是大于零,小于大于等于零,小于等于一的话,那么如果你求出来这个行列式最小值在元素的内部。

就是在这个三三角形的内部渠道的话,那么啊你就可以直接去求得,那你就可以去判断这个最小值是不是大于零,小于零对吧,那但如果这个你求出来这个cc和ea如果是在外部的话。

那这个时候你就会因为这个你有可能这个可惜一呃,这个可c和ea这个方程解出来,它有可能是不满足大于等于一啊,零小于等于一的,因为它的这个如果是这个三角形内部的话,它要大于等于零,小于等于一。

那么这个时候如果是在外部的话,也就是说它的这个最小值会在边界上去掉,那边界上去掉的话,它其实整个方程就会退化成一个这个甲货币矩阵的行列式,它就会退化成一个一元二次多项式,那这个重点也可以求导。

那么对于这样的,所以说对于这样的一个呃,当然现在这个这个问题还是一个二次的问题啊,就是说我们还是考虑的这是一个二次的二次的多项式啊,这还没有考虑这个更复杂的平面,而且是一个平面的。

那么对于这样的一个情况的话,他现在还是在一个二次的情况下,那整个算法它这个流程是可以做的,那但是如果对于接触比较高的三角形,比如说呃四次的,那这个时候要解一个五次的方程,那这个系数的矩阵。

而且这个系数矩阵是一个变化的矩阵,那这个五次方程其实是很不容易求解的,你再去判断他的这个是不是正则,就和你是不是也有没有翻转,就比较麻烦了啊,那么所以说呢。

这个时候对于一般对于这种拉格朗日基函数的情况下的话,它其实整个的这个呃你要去判断它是用这种求导的方式去把它最小值,最大值求出来,这个事情是不满足的,那他这个本质的问题是什么呢。

本质的问题是这个拉格朗日基函数在这个定义域上它不是非负的,那么也就是说你其实不是非负的,也就是说这个g函数本身有可能是负的,那也就是你不能通过,不能很简单的通过前面这些系数的正负号去判断它是不是翻转。

那比如说啊比如说这个你你你你得到了一个奇函数,这个g函数在这个定义域上它都是大于零的,那这个时候呢你其实你只需要去判断前面这些系数它是不是大于零,如果前面这些数都大于零。

那这个甲方比矩阵的行业是肯定都大于零,对不对,就是说但是呢这个拉格朗日机呢,它其实没有这样的一个性质,所以说你没法直接去用这个性质,那么所以接下来我们去看看,把这个拉格朗日记函数。

要把这个假货币矩阵的行列式啊,甲号比矩阵的行列式,这个多项式就他现在这个多项式我们在其他的g下面去展开看看啊,是不是没有更好的判断条件,那么首先接下来是一个密集啊,密集就是这个x的零次方,x一次方。

x2 次方这种平最最平凡的记,那么在这个密集上呢,呃在这个密集上我同样可以去展开对吧,没有变成这样的形式,这是那个密集对吧,就是x的零次方,就这个是c这是一次一项啊,一次项,这是二次项对吧。

这是一个这是一个多项式吧,很肉眼可见就是一个多项式,那么前面这个多项式前面就有一堆的这样的一个系数啊,啊这这个这个有一堆系数,那么首先呢就因为这个跟这个可c的取值是大于等于零,小于等于一一。

它呢也是大于等于零,小于等于一,所以说这些g呢它都是正的,对不对,就因为它是它要满足这两个取值,因为它因为是重心坐标嘛,所以坐标它是要是在这个大于等于零,小于等于一这个情况下。

所以说这个所以说这个可c呢它是大于连接呃,这个正积函数都是正的,那么展开成幂级的这个形式呢,它这个所以说我们只需要去判断这个呃,如果我要去判断它这个是大于零的,那其实我很简单,我就只要去什么。

只要去让他的这些所有的这些前面的这个系数大于零,如果这些前面的这些系数都大于零的情况下,假如说前面这些系数都大于零的情况下,那么它这个多项式肯定都是大于零的对吧,当然这只是一个充分条件。

并且这个充分条件其实是一个很强的充分条件,就是说它其实跟这个充要条件就是跟这个距离很大啊,它其实不能够去做一个啊,它只是一个充分的条件,他并不是,然后呢并且行列式具有,但是呢这个问题是这样呃。

现在它其实是一个充分条件对吧,但是这个行列式啊它其实具有反射不变性,那么因此这个表达式应该也具有一定的对称性,但是呢这个充分条件它其实没有这样的一个性质,那么所以说呢如果你把这个三角形做一个简单的旋转。

那个式子里面的这些条件,就这个视频里面的这些都全部变掉啊,那当然这个东西就不是并不是我没有想要的啊,那么所以说在这个密集下面去展开,它会有这样的一个呃不好的东西啊,那么所以说我们更想要的是什么呢。

我们更想要的是有两个j啊,对于这个这对于这个多项式判断而言,我们有两个键,一个是什么呢,一个是上界,一个是下界,如果下界大于雷,那我这个三角形就一定没有翻转啊。

就相当于我对这个多项式我去推出来一个上解和一个下界,如果下界大于零,这个在这个行业是一定大于零,如果是上届小于零,这个行列式一定是小于零啊,所以我们希望有这样的一个界,那么这样的一个界的好处是什么呢。

就是我只要去看这两个界,如果这个界大于,比如这个下界大于零了,那看肯定一定一定没问题对吧,那如果是上届小于零了,那他肯定是有问题啊,那所以说就是我只需要去做,我所以我希望得到这两个键。

那么所以说呢我们还是希望在这个北大这个鸡下面去对它去做展开啊,那么北戴耳机呢其实展开的时候呢,就是首先呢还是这个北大这个鸡啊,大家可以看看,这是北大的机。

首先呢这个北戴耳机呢肯定是在这个定义域里面它是非负的啊,那么恢复的话,那么我们就得到了这个我们现在就要让他去这个,我们要让它这个行列式大于零,那么其实我们只需要也是还是跟之前一样。

我只需要这个前面这个系数大于零就行了对吧,前面这个系数大于零,那么前面这个系数大于零,也就是说这里面这个系数这个系数这个系数啊,这个系数呃,这个系数和这个系数我要让这个五个系六个系数都大于零。

那么六个系数都大于零的情况下,那么其实最后的这个呃六系数都大于零的情况下,那其实这个多项式就肯定是大于零的对吧,那么所以说呢对于我就可以把这个六个系数的最小值当做下界,那么对于这个北大三角形的而言的话。

比如我们来看这个这个三个点,它其实可以构成的是什么呢,就是这个地方j1 j2 ,j1 j2 j3 ,其实是在这个x1 x2 ,就是那个三个角点上的这个最大,这个其实是一个上界。

那么也就是说如果这个下界它大于零了,如果这个下界大于零了,那么说明这个行列式这个甲壳币矩阵的行列式肯定是大于零的,那么肯定没有翻转,如果是这个上限小于零了,那么说明这个假货币矩阵的行列式肯定是小于零的。

肯定会存在翻转啊,那么这是这个基于这个假货币,基于这个北戴尔的展开的好处啊,那么北日耳机展开呢,其实这些地方的这些系数啊,就这些系数,这就这就这个地方下界里面的这些系数其实是什么呢。

其实是这个北大机的那个构造的,就那个北大的三角形的,那么所以说呢我只需要去就是有这样的一个转化,它是不是大于零,那就说明这个三角形就就就这个下界大于零,就肯定就没有翻转啊。

那么所以说呢我只需要去判断什么呢,我只需要去判断每个在这个甲壳币矩阵的这个行列式,它是一个多项式对吧,我在这个北戴耳机下面去构造,然后呢就会得到一堆的这个控制点。

然后呢用这个控制点组成了一个突破的最小值,我就是把它看成是下界,如果这个下界大于零,那就是说明这个三角形肯定是没有翻转的,把三角三个边界点的角点看成是甲壳币矩阵的行列式的最小值的上限。

如果这个项界小于零,那这个三角形肯定是翻转的,但是呢这种判断方式呢还会有一个简单的问题,比如说我们来看一下这个问题啊,因为看到这个蓝色的点对吧,这个点其实是在这个红色的这个区域的下方。

它其实是判断出来是小于零的,就是什么呢,就是现在出会出现一个问题是什么呢,就是上届都大于零,下界小于零的情况啊,我们这里注意啊,下界大于零肯定没有翻转,上届小于零肯定有翻转,现在说。

但是现在会出现一个问题,怎么下界小于零,相界大于零,就会出现出现一个这样的一个概念,就是这个地方你其实没法去,这个地方就没法判断了啊,但是呢我们其实我会有一个很好的性质是什么呢,它其实是在细分情况下。

它其实会细分几次以后,它会在去接近原始曲面对吧,而且会收敛到原始曲面上去,那么因此我们在这个比如说我在这个地方这个点对吧,局部这个图标,局部几个三角形,我其实就可以给他去细分,细分完以后。

我在细分完以后那个三角形上再去判断,细分完以后的那个图标上再去判断它是不是大于零,小于零,它的下跌是不是大于零,它的上限是不是大于零,那么这也就是说你其实只要去做这样的一个就是局部的细分啊。

但是呢到最后其实可能还会到最最后后,比如你细分了很多很多次,比如说细分了四五次以后,它还是判断不出来,就是说还是会有一些下界小于零,上届大于零的情况,那说明什么呢,说明这个假货币矩阵的行列式啊。

它的最小值已经是接近歧义了,那这个时候你就可以认为它是歧义,你也可以认为它就是这个这个贝塔三角形就是会存在一些翻转,或者说存在一些歧义啊,就判断它是一个无效的啊,所以说整个的这个算法大家可以想一下。

它就是一个细分加一个这个这个bd的一个判断的一个条件啊,那这个这种方式呢,它这个运行出来的效率还是比较好的,呃所以说在这个我们来看一下这个,这是一个例子啊,这是一个算法的结果,对于这个测试集。

我们可以看到做这个七次细分,做这个七次细分以后,他这个可以呃,所有的元素的正则性都能够配上啊,那他这个就比较简单了啊,就这个还是这个效率,其实说实话是其实是比较高的,啊当然了。

这个方法可以推广到很多的地方,就是很多的,比如三,因为我们刚才主要是讲三角形,其实你无所谓,为什么呢,因为其实很简单,因为你最后北大的呃不呃无所谓。

就是为什么吃这个映射的映射的行列式和映射的甲亢b矩阵的行列式,它是一个多项式对吧,我不管这个多项式是什么,我都可以把它转成这个北戴尔的这个g的表示形式,然后呢,然后上届其实是那个三个角点。

就是这个三角形,就这个这个这个北大三角形就没有翻转,如果上限小于零,就北大三角形有翻转,那么如果存在下界小于零,上界大于零没法判断的情况,那这个时候我就去做局部细分,然后去判断局部细分情况下。

是不是还有出现下界小于等于上限大于零的情况,直到比如做了四五次积分以后,它还没法判断,那说明这个三角形就接近退化了,那这时候我就不要它了啊,就是认为它也是无效的,就或者说认为这个映射是无差的。

那所以说这个地方本身还是是其实是对这个多项式去做在做呃判断,他其实没有对这个呃本身的这个元素的类型去做一些要求,比如说你它是三角形,它是四面,提到其他类型其实都是无所谓的啊。

那所以说这个地方呢其实它还是相当于是在处理一个多项式,把这个多项式转成这个北戴耳机,然后用北耳机的这样的性质啊,所以这个方法是是是比较好的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

GAMES301-曲面参数化 - P14:Lecture 14 参数化在产业中的应用(1) - GAMES-Webinar - BV18T411P7hT

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

亲爱的game是呃同学啊以及业界同仁啊,非常高兴,今天啊有我在啊给大家同学们讲一下菜的话在产业中的应用啊,这个我们暂停要课程,不知不觉已经过了六周。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

课程已经接近尾声啊,在前面的课程里面啊,三位老师啊呃都从不同方面介绍了曲面上的话,在几何处理中的一些呃应用可以看到啊,我们再重温一下前面看的话这个问题啊,这个随着这个课的深入。

大家都对这个问题非常啊啊理解了,就是怎么把一个啊位于一个空间中的这个曲面曲面,本质上它这个二维流形曲面,所以它能够拓扑同胚于一个平面,所以呢我们怎么把这个这个这个同步同配的这个硬影射,这个函数找到啊。

就是交叉的话,所以很直观的来讲,如果一个区域一个这个曲流行把它离散成三角网格以后呢,这个问题就等价于怎么去找这个三角网课的这个一对应好顶点,一对应好三角形一一对应,当然我们我们也希望保持这个流行。

就是这个曲面的一些这个几何特性,比如说角度边长面积,还有其他度量的等等,所以我们又要去保持这个形变扭曲小,所以这个这节课是自始至终都是在围绕着怎么样建立这个一一对应,怎么来极小化这个扭曲。

还有保持一些特性啊,比如说不能翻转等等,不能自交啊,所以从这个课上面,相信同学同学们啊,从这课上能够了解这个曲面产能化的一个基本的方法理论,以及它的一些求解啊,技技术。

当然在第一节课中我也提到了这个思想呢,就是用降维,所以如果对高危曲面来讲,也同样有这样一些思想在在背后啊,然后在水面上的话,它是一个基本的一个问题,所以啊在很多几何处理的一些应用中。

都背后是有才能化的这样一些啊啊这个基础在支撑着啊,我这里就不一个一个列在我们这里,课上呢可以看到从啊前面的很多讲呃,在课程中可以看到他的话在呃不同的应用中,我们各位老师啊讲的非常深刻啊。

也非常啊做的内容啊,这个我就不一个一个介绍大家啊,我们的课程都是在b站上是有录屏,可以大家如果啊如果对他希望进一步更多的一些理解,可以去看这个回放好。

那么今天呢开始呢我想想就是刚才只是在几何处理中的一些应用,那么事实上是菜单化来处理几何处理在产业中得到大量应用,你要让我很自然,曲面上的话呢,就在产业中有着很大的应用啊。

那么我们我会在今天下午的课跟明天上午的课呢啊,介绍几个在一些产业中的一些非常典型的应用啊,其中第一个就是游戏啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个很多同学都喜欢玩这个游戏,特别是这种3a级游戏啊,像这个左上角那个就是古墓丽影丽影的一个最新版啊,u15 做的u一是韩u5 做的一个啊,那么下面这一排啊就是由于我的一个新特性啊。

这个rom跟nana啊,这个权益光照以及这个虚拟结合体的一些技术啊,后面有时间我们可以再稍微聊一下好,那么这个三维游戏中的这个存在大量的这种几何模型啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个模型呢就是上面的这个啊,这个贴图就是一个常态化一个技术的一个核心啊,就是怎么把一个曲面用一张图来近似的这个表达他的一些属性,比如说纹理实际上是这个上面不仅存储纹理,而且曲面上的是任何的信息。

比如说它的材质,它的法向他的一些各个一些别的属性都可以以这种方式存,因为啊曲面上的一个点可以在这个平面这个uv空间中找到一个点对应,所以曲面上你要去找到它,存储它的信息。

完全就是可以在这个二维的参数化平面上去找,纵坐标叫v,所以在这个工业界也叫uv图啊,这个学术界更多的交流,tatr纹理地图啊,这两个概念是呃类似或者几乎等价的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么对一些复杂图啊等等,就最终复杂图,那么它可能更多的这种分片啊,这个你可以看到这个建筑有很多很多这种不同的这个部件,那么同样我们把部件分别的常态化,然后把它平摊到一个这样的一个啊uv空间中。

这时候呢你就对这个模型的任何处理,它的渲染,它的一些光照,这个处理都可以在参数空间上去做对应啊,所以这个uv图的展开是游戏啊,这个工业界实际上还有别的任何的跟三维模型相关的。

工业界是一个非常基础的一个啊这个啊技术。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

所以呢今天呢我们很高兴啊,就邀请到了啊腾讯互娱cross这个计算机和啊技术团队的负责人啊,黄旭华啊先生,来详细的介绍一下在这个游戏工业中的3d建模的参数化,背后的一些故事,一些应用以及未来的发展好。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

嗯,好的好的嗯,那谢谢刘老师啊,呃很很荣幸能够在呃game 301啊,给大家讲一下这个曲面参数化技术在游戏工业里面的应用啊,然后呃我那么我是来自呃腾讯i e g啊,就腾讯互娱就是腾讯的游戏bg。

然后the cross团队啊,cross体系,然后在计算机和团队,然后我们cross体系呢是主要呃进行游戏的公共技术的研发,公共技术的研发,比如说嗯呃大家玩的这种游戏啊,他底层用到的,比如说引擎技术啊。

嗯服务器技术啊,或者说是美术生产技术等等,那么这些技术是在我们的cross团队里面进行去研究的,那么我们对游戏工业里面的底层技术是非常了解的啊,那么今天我就会呃在趁着这个机会来讲一讲。

就是参数化的这个算法,在游戏的工业工业里面,它的是这种工业级的应用。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

以及我们对它的那个创新,那么呃呃我这个内容会大概分成三部分。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

首先我会呃讲一下这个游戏工业的一个三维建模的一个工具,就让大家对这个游戏商业建模有一个大的一个了解,然后第二部分呢就会谈里面的一个重点案例,祝你案例会谈这个参数化的一个非常非常深入。

非常非常深入的一个应用,然后还会再介绍一些呃一些呃,再介绍几个辅助的案例来让大家理解,就是参数化的这个应用也是非常广泛的,不仅仅是在一些特定的地方可以使用,那么呃呃游戏的这个建模啊。

就是就是任何一个三维建模一个模型,它是需要首先它有造型的部分啊,有造型,那么造型就是呃勾勒出这个模型的一个三维的一个结构,然后呢接下来它有材质啊,材质呢就是指这个造型它的表面上的一些东西啊。

那么呃因为我们建模的时候只是需要渲染给用户看对吧,就是我的游戏里面只有表面就行,它里面有什么东西不重要对吧,那么所以它表面的东西是一种以一种二维的流行的方式,是去存储信息的,那么这个就是呃这是第二部分。

那么另外一部分呢呃有了表面之后呢,就可以在上面还要继续打下光啊,打个光,然后嗯然后呢最后呢就是说要对这个模型进行很多种优化等等,那么呃那么造型部分呢啊那么游戏的造型造型在制作这里面呢。

其实它是分的比较细致的,呃这里首先看这里是我这里左边列到这里分的是粗模,高模和低模式三类啊,那么呃这个这个是根据这个造型的制作的工序而言的,就是他从大家看到的这个游戏模型,它实际上在美术的电脑上面。

它是经过很多步骤一步步给做出来的,那么我我我会把这个过程稍微跟大家讲一讲。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么首先啊首先第一步呢就是我要谈的是这个粗模出模是什么意思呢,粗模就是指我们就是建呃进行一个精细化的那个建模之前,我们先要美术,要先找到一个快速的一个原型。

然后我们可以快速的从这个圆形里面去进行这个上面的模型的一个,细节的雕刻,或者说是一些制作,那么这个是能够极大地提升我们的那个这个建模的速度呢,那么这里其中非常重要的一个触摸就是模型库了。

那么在游戏公司里面的美术团队,基本上它是有非常庞大的一个模型库的,就是啊左边啊就是一些物件的模型啊,然后还有右边的有一些基本的一些角色的模型,那么他这些角色的模型的造型呢是非常好的。

然后他布线也是非常经典的,然后呢美啊美术在进行某一个角色的制作或者某些物件制作的时候,他是直接根据这个标准的一种设计的,呃,非常规范,非常严格的布线,那么这个这种叫做叫出模啊,这是我们建模的第一步啊。

那么触摸的制作来源。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

还有其他的一些方式,那就呃像这种呢就是一种叫仿真建模的方式,那么它是使用一些呃物理的物理仿真的软件,来对啊模型的衣物进行一个大体的一个造型的一个勾勒啊,那么大家可以看一下啊,那么这这种这种造型的特点呢。

它是呃大概他它需要的面数是大概是10万级别这个样子啊,然后呃全是三角形,然后再进行这个制作的时候呢,基本上是就是使用这种模拟的布料的缝合啊,拉拉动这样子。

那么所以它只要右边的一个简单的面片就可以缝到左边的裸体上,然后就形成一个裤子这样的一个样式了,那么但是这种模型它是不能直接在游戏里面直接使用的,因为它其实的质量相对也是得不到啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那个也是不够高的,那么还有一种呃建模的方式呢,就是你出国的建模的方式就是用三维重建的方式,就是用呃一个是左侧的这种专门的三维扫描设备,手持的三维扫描,或者是这种激光阵的相机阵的阵列的一种设备。

然后呢或者是用这种嗯在户外户外用这种设备来进行一个拍摄,那么呃那么这种这种三维重建这种模型的特点呢,就是它真实度会非常高,非常非常高啊,但是呢他的这个也是他的限制,就是说如果你要进行的一个游戏项目。

不是这种写实类型的项目,那么他就没有办法用这种方法啊,那么并且用这种方法来进行的一个建模,它得到的那个模型其实要进行后处理也会比较多啊,因为你在现实中拍照的时候。

你拍到这个物件的这个光影效果其实是与你拍摄当天的一个呃光照,天气等环境是有很大的关系的,那比如说呃太阳它在呃某个方向照下来,那么可能这个方向就会亮度比较高,但背光的面就会比较暗。

那么这种这种相当于是光照的信息,它是已经被呃附着在这个模型表面的这个上面,那么所以它放到游戏里面呢,在游戏里面的那个光照的,实际上呢它不是你在现实采样的时候那个光照,那么它在进行处理的时候。

就要呃就需要就需要我们美术去把这种光照信息给抹掉啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么现在呃那么当我们有出门了以后,那么我们接下来就会进行到一个高精度模型的一个构建的一个过程啊,那么呃这里高清的模型,这里这是其中一种高模的一个制作方法,这种叫做啊雕刻建模。

雕刻建模呢就是呃往往会用在角色模型的上面啊,角色模型因为我们的游戏里面对给玩家带来的一个感受,就是说呃最最出彩的效果其实就角色角色模型,那么呃那么这种模型的特点呢,就是它在进行生产过程中。

它的那个模型的三角形的网格数是非常非常多的啊,就是达到百万级的三角的三角网格,那所以从这个视频上可以看到,就是说其实它的那个三角形的稠密的程度,已经让你感觉不到它有三角形存在,你已经感觉到有上限存在。

所以它是一种嗯嗯那么就是现在的3a级的产品。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

或者说是一些呃呃质量对质量追求比较高的团队呢。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就会使用这种工序啊,那么它的操作是一种啊,可以看到就有点为什么叫雕刻建模呢,它是用手写笔,然后直接在这个模型的表面进行一个按压,或者说是一个提拉的动作啊,那么它就可以把模型的表面就像一个橡皮泥一样。

来不停的去弄出这样的一个你想要的细节啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后呢呃除了这个呃交互建模之外呢,那在别的另外一些模型,比如说是载具啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

比如说是飞行啊,呃飞机啊,汽车等等这种载具,那么在行业中也是有的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就会利用另外一种方式来进行高模的的一个建模啊,那么这个这个就是呃用的是曲面的曲面的方式建模,样条的方式建模,那么在这种建模软件呢,它里面的编辑的基本的操作对象就是呃曲面和曲线啊。

那么它的特点就在于说它在建模的过程中,它不是不需要太多的扇形,但是它是利用呃像nerves曲线这种工业标准的一种曲线,这种光滑曲线的建模,那么它呃所以它的精度可以说是是一个无限高的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

并且呢它呃呃它是可以变成也是可以变成上新模型的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

也就是说你放到游戏里面渲染,它是没有办法去渲染一个曲线这样的一个表达的一个模型的,所以最终它也要变成三角形模型来给到游戏里面去使用啊,那么在呃那么这种像一些3a级的赛车游戏啊。

那么他呃那或者说是飞行游戏啊等等,那么这种建模方式就会是比较常见的啊,那么呃这种方式在国内用的不是很多啊,国内用的,因为国内我们知道国内的是网络比较多嘛,那么网络的话其实做赛车类的还是比较少一点。

虽然赛车类的用的可能更多的也是q版的,那么他们有时候赛车也会直接还是用多边形的方式来建。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么呃那么这种呢这是另外一种呃呃模型了,那么这种呃前面我查到两种是高模对吧,一个是雕刻的一个生物的一个一个几百万面的高模,还有一个曲面的建模,那么现在我谈到这个叫低模啊。

那么低模呢是一种呃大家在游戏里面实际看到的模型就是低模啊,那么它的面数是在呃呃几万几百元到几万面这样的一个范围左右啊,那么呃它其中的那么低模的一个建模方法呢,就是也有好几种。

那么这种呢就这我现在叶子给大家看的这种叫拓扑建模,拓扑建模,那么你可以看到这个top建模它是怎么怎么操作呢,它是直接把这个模型进行一个点线面的一个操作,就是你是鼠标去选择一个点,选择一个线。

然后把这个点进行剖分啊,或者增加一个点啊,挪位置啊,合并啊等等,然后逐渐把一个模型啊,从一个简单的一个几何体变成你想要的一个人形的一个样子啊,那么这种建模方式在呃过去吧。

可能在呃5年前或者10年前左右的范围,这种建模方式是一种比较非常常见的方式啊,但现在的话就会用的稍微相对少一些啊,也有不少项目也还是会用这种项目,一取决于你这个游戏对这个模型的表现力的一个要求啊。

仅是需要很高度的一个真实还原,还是说有一个大体的一个效果就可以了,那么不同的项目就会用不同的方式建模,那么这种就是这种叫做top建模。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后呢呃那么另外这种呢也是另一种拓扑建模,那么这种这种拓扑建模是进行一个叫做高模的冲突啊,那么它它是这个差别在哪呢,这个呢就是接着刚才刚才啊前面制作高模的时候的一个流程。

就高模我用雕刻的方式把一个上百万面的一个模型制作出来,但是这个上百万的面是没有办法的,一个模型是没有办法放到游戏的引擎里渲染,因为呃上百万面它本的一个模型,它本身自己一个模型的体积可能有上百兆的数据啊。

那么你这个一个模型可能就比都已经有游戏的体积的一个1/10,这么大的一个体积,所以这个是不能用在游戏里面,那么这个时候美术呢就需要把前面的工序做出来的,一个非常精细的高模来进行一个拓扑的一个降维啊。

或者是叫降采样,然后在这个高模的表面生成一些啊三呃呃四边形,网格三角形来逼近这个模型,那么这个过程在表面进行一个呃重拓口的过程啊,我们就就在行业内,你就就叫高模重拓口啊。

那么它的面数也是到几万到十几万面的这样的一个一个一个一个规模,然后也是采用的是点线面啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

合并的操作的方式啊,那么另外呢还有一些呃,那那么前面的两种方法,那个建模起来看到效率是会比较低的,一个模型可能要做上个一两天了,这样子,那高模的话甚至可能要做上一个星期到两个星期。

这样的一个一个一个一个时间,那么呃那么所以呢我们也不是总是每个每个模型都用这种很基础的,这种方法,一笔一笔一画的这样去建模,那么我们也会呃比如说一些特定的造型,我们就会用数学模型。

它如果本身能够表达的啊,比如说右上角的这个叫做啊speech的这样一个插件,它是专门用来生成树木的,那么树木的,因为造型其实它是可以根据一些生一些生物学的原理来去模仿它,那么我可以调整这些参数。

就可以快速的生成一些数啊,那么那么所以啊那那这种建模方式呢就可以用在树木啊,植被啊,还有一些怪物呀,还有一些特定的建筑啊,左下角的一些建筑,一些呃造型比较嗯呃固定的系列化的这样的东西。

那么我们就会用这种方式来来进行建模,特别是像一些特别大的世界,比如说是一些呃开放世界的游戏,那里面的模型呢我们呃因为很多大量的一些重复的数啊啊,建筑啊等等一些怪物,那么那如果用这种方式来建。

我们就能够极大的提升我们的工作效率啊,但是它的限制就在于说它只能制作特定类型的模型啊,因为我们很难去把所有东西的建模的那个数学模型都可以归纳出来,那所以这个它也是啊,它是不能不是很普适的一个方法啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么呃讲完建模,那么这个是呃就要讲到我们今天的这个主角了,那么所有的模型啊,都需要进行一个材质的一个一个表面的一个映射,就是说我需要把模型的表面里面去存储一些信息对吧。

那么我们怎么把一个任意造型的一个表面来进行存储信息呢对吧,那他怎么定位到我们哪个地方要存什么信息呢对吧。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么这里首先要进行的就是一个空间的一个转换,就我我们首先需要把一个任意造型的一个模型的表面。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后把它给映射到一个长方形,或者说是矩形或者正方形这样一个地方,那么它呃模型表面上的每一个一个点,那么对应到了就是以这张截图上面的每个像素对吧,那我们就可以把这个信息存储在这个举这个正方形的上面啊。

那么呃那么呃那这个方法就是呃呃这个首先这里,那这里谈到了这个现在这个结构到材质映射,材质映射是干什么的,材质映射就是。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

材质映射是专门给这种叫做材质贴图来使用的啊,就是啊可以看一下右下角这个房子,那么我们把这个模型拆成很多块,映射到右边这个正方形之后,那么我们就可以利用这个表面的那个绘画软件。

在直接在模型表面进行一个涂抹,就是一个绘画,那么这些信息就会同步的去传到了右边的这个这个管理上面来啊,那么呃那么这种这种这个映射的这个过程用到的就是参数化的技术啊。

那么并且这种参数化呢它是对这个呃进行这个映射,它是有非常多的要求的,那么这个要求如果如果如果你的制作不满足这些要求的话。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

你这个模型的质量会比较差,那么这里我看看它,我们看看它有哪些要求啊,首先就是你的这个你这个造型啊,就造型不能够啊啊我我弄一下笔出来,就那个激光笔,就你这个造型你放在这个这个矩形空间里呢,你不能斜着放啊。

因为因为引擎在进行渲染的时候,他会进行一个光栅化,那么它在纹理上进行采样的时候,它其实在uv空间仅采采样的,也就是它是横着和竖的采样,横着差值和竖的进行差值,那么如果你的这个造型你是斜着。

那么你就会导致导致它采样的时候经常会很容易会跨像素进行差值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就是你没有你在同一行,你在同一排的像素。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么你在像素之前去进行差值,那你相邻就往是两个像素来进行差值对吧,但如果你斜着走的话,你很容易会在一些三四个四个像素的交界的地方,你在很短的距离会跨越好几个像素,那么这时候的采用效果就会变差。

就很容易会造成这个纹理在模型表面上会产生一种锯齿状啊,那么因此呢这里的呃游戏里面进行参数化的话,就是会要求这个一定要做得非常的横屏竖直啊,那么它基本要求是你的图案的对称轴要与u左后臂轴平行或垂直。

另外呢你这个也在保持横平竖直的情况下,你要尽量低的扭曲,你不能形变太大啊,那么另外呢材质映射呢它还有一个特点。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就是它会共用纹理,共用纹理就是说有些相同的图案,相同的图案它会映射到模型的同一个区域,比如说一些木头的位置,它可能会不同的地方都会映射到同一个木头的地方啊,然后比如说这个头发左下角这个头发。

那它这里头发其实总共只有五六根七八根,但实际上他满头可能有四五十个头发,它其实就被重叠的映射到了这个这个呃纹理上面啊,那么呃那材质贴图的话,它材质贴图本身呢又是又是另外一类问题了啊。

那它这里是涉及到一个引擎的一个渲染的一个方法,就是这里面的材质纹理,它保存什么信息对吧,它用的是辐射度度量学的或者光禄学的,或者是一些几何光学等等这种方法来进行一个材质信息的一个编码。

那么它就和像管线强相关,比如说一些呃固有色,固有色和漫粉色的一种存储法,或者说是高光度,金属度和粗糙度这种p br的光照模型,或者经典的一个镜面反射模型啊,还有透明度,发光度等等。

那么这些不同这种叫做呃辐射度量学和光度学等等,这些信息都会用在材质贴图上,就会共用啊,共用材质映射啊,这个叫材质映射啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么呃另外呢另外一种呢叫做凹凸贴图,凹凸贴图呢它也是共用材质映射的一种一种贴图,那么它呢主要是它就不是表示的是,它并不是表达物体的表面的材质信息,而是表达物体表面的微观起伏啊,微观起伏。

那么呃那么凹凸贴图就有很多种做法啊,就是bp bp mapping,normal map,displacement map等等,那么这种这些这个做法呢它是一种行业比较标准的用法啊。

我们可以看到就是说像这个模型,这个是模型的一个原样,它没有使用法线贴图的情况下,你会看到它的这个是比较光滑和圆润的,在你使用了反向贴图之后,看到物体表面的细节会产生一种就会一下子就他宁可会牺牲。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

宁可牺牲你这个模型表面的一些造型的一个一些细节,就是说你自把它扭曲会比较大一点,但是一定要保证保证这个u映射的线条要非常的横平竖直啊,那么这个原因就是在于说啊光照映射是一个什么东西呢。

就光照映射它不是这个呃美术创作的的内容,它实际上是我这个模型放到引擎里面以后。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

放到引擎里面以后,通过引擎的这个光照的算法,这个灯光,太阳光等信息打到物体表面的这个辐射度,存储到这个光照映射对应的这个纹理上面,存储到上面。

那么这样的话就使得这个物件看起来有这种啊很很真实的光照效果啊,那么这个是由引力产生的,那么那那也就是说每个物件的表面都整个场景,假设你是一个非常大的事件,那么这个整个整个世界。

你看到的所有地方都会有对应的光照信息存储,那么所以它会使用大量的消耗大量的一个存储的一个量啊,那所以所以光照映射的话,一般在游戏中会使用非常非常低的分辨率啊。

就是如果你材质映射用的是比如说是512352的分辨率,那光照映射可能对应只有128甚至64x64的一个分辨率,那么所以光照映射对横屏数据和要求会非常高,否则的话你在这么低分辨率的情况下。

你的这个呃采样的差值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那个锯齿会非常非常严重啊,好那这个映射的讲完了,最后就谈到就是优化,那么我们前面有了模型,有了材质,有了纹理之后,那么呃这些模型呢最终我们还要对它进行一个简化,就是我们在游戏里面看到的模型。

有些是在我们画面很远的位置出现,有些是在很近的位置出现,那么这个时候其实引擎是给到你不同的精度的一个模型,去渲染他们那近景的时候,你看到的那个模型其实已经渲染是这个非常高密度的模型。

但是如果当这个角色走到很远的位置,那么其实隐形渲染其实是这个模型啊,那么这个机其实就叫做the l d啊,level of detail,那么在进行l d的时候呢。

也是需要进行对应的像ue 2文理混合蒙皮等等的一个同步的简化,那么这里面也是要用到参数化的技术的啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

好,那么我到现在我就把这个游戏建模的这这个这个方法,和里面用到的一些技术大体讲一遍啊,那么呃后面呢我接下来我就会开始谈啊,在里面的参数化部分的内容啊,那么参数化在这个呃建模里面。

它其实是首先一点就是其中一点就很容易理解的,就是它的主要的应用啊,主要应用就是把这个模型的表面映射到这个,刚才讲的那个正方形区域对吧,那这个是很好理解,特效的映射,造型映射光照映射对吧。

我刚才举了好几种例子对吧,那么这些就是主应用,但实际上它使用的地方远不止主应用看起来那么多啊,那么它还有很多嵌入式应用,嵌入式应用就是它有呃模型之间的信息的迁移的迁移,配准的一个手段啊。

然后还有呢就是呃纹理装配中啊,这个图案的这个原画的设计稿与模型的一个内容的,模型的内容表面映射,还有就是进行纹理的几何压缩啊,还有进行一些造型识别,我合度评判等等,后面我会都会举个例子来跟大家讲明白啊。

那么先来谈一个是主应用的案例,主应用案例啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么主义案例这里就是啊还是才讲到这个光照映射啊,那光照映射光照映射就是这个呢就是材质映射啊,我们在行业里面会叫e u v啊,就是第一套uv,一般这么叫,这个就叫光照映射。

就是2u v2 位就是把光照信息映射到这个纹理上啊,财经映射是把这个材质信息映射到这个物理上。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么这个就是基本的uv的一个原理,那么这是一个实际会用到的一个光照图啊,但这个不是我们游戏中的光照图啊,光照映射,那么我们来看一下这个建筑啊,这个建筑它的材质映射是这张图啊,材质映射问题是这张图。

那么它里面的材质种类就比较稀少的,比如说木板啊,墙壁,然后一些柜子,屋顶等等,那么它的内容是是很少了,它大量的,比如说这些区域它可能都共用的是同一个墙壁,那么它就会映射到同一个地方啊。

那么这个叫财经映射,但是光照映射呢,你是没有办法这样共用的,因为在这个物件的任何一个位置,它的光照信息都是不一样,就每个地方都不一样,你你你你是不能够确保说哎这个地方关的话,这个非常完全不可能的。

那么所以光照映射就得完全毫无重叠的去平铺,把物片的表面的每一寸给平铺到这个空间里面啊,那么这里看到了,这里是有四张光照映射图啊,分别是白天的白天的高精度的2048x2048的光照映射啊。

白天的低精度的1024x1024映射,以及两张晚上,那么它对应出来的渲染效果啊,就是白天的两个效果,晚上的两个效果啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么这个就是光照映射的一个原理,然后呃光照映射啊,刚才提到这个光照映射叫r u v嘛对吧,2v制作要求就有这些要求啊,第一个你uv展开之后,你拉伸拉伸不能太严重对吧。

那那否则会导致这个呃光照的那个那个密度啊,过度不够光滑啊,那还有呢就不能用斜斜的边啊,你看这个斜边就会导致这里的光照就会产生句式啊,但是如果你把这个u v导变成这样一平直的。

那么这个这里就不会有这个句式出现啊,那么并且他一定是不允许任何重叠的啊,这和它材质映射不一样,这个这也是一个材质映射的一个uv,它是可以重叠的,但是光照映射都不允许的,那这个是光照映射啊。

那么另外呢对称性要可以保留,因为如果你如果你的这个对称性与这个uv空间的那个轴向,不不水平或者垂直的话,也是容易出现这种斜边的,也是会永远出现这种采样的不好的效果,那么呃还有呢就是切割。

就切割位置就有一些光在这个模型表面是光滑的区域,这个地方如果把这个切成两个u v导的话,那么在引擎渲染中很容易这里会产生漏光啊,就一个过度不自然啊,因为引擎的分辨率,引擎那个因为那个光泽纹理分辨率很低。

所以就很容易出现这种情况,那么另外你又你又不能切太碎啊,因为你切的太碎,每个三角形一个uv导,那么你就会导致这个纹理中间的间隙要留很多,那也会导致空间浪费是吧,那么那最后呢还有一个要求。

就是说你这个装箱,你这个切好一个uv导,你要很紧密地排布在这个空间里面,那么避免这种纹理空间的浪费,导致那个游戏的体积也变大啊,那么这些就是2v的制造要求,那么所以呢有这种要求的情况下呢。

实际上行业里面进行这种光照映射的制作呢,实际上是没有很好的自动化软件可以做得到,就是他这个要求太复杂了啊,就像这么一个模型这么一个模型,那么他现在其实是在行业里面大部分是人工制作了。

他大概需要花30~40分钟时间把这个模型变成这样的一个映射,一个一个一个一个2v的一个映射,然后对应的这些就是一些自动软件产生的效果,这个是real效果,在unit的效果。

那我们会看到unreal和unity,它对比人工这个东西的这个质量是要差很多的,从首先这空间利用率就差的比较多啊,你看这有很多的空隙啊,很多的空隙啊,然后另外呢这个unreal这个呢它就是切的太碎了。

这个切的太碎后,导致旋在在渲染的时候会产生很多的这个呃那个黑边啊,就刚才提到的,就这个黑边就会出现这种情况,那么所以实际上行业里面进行二维展开,就用人工来进行的。

那么所以呢为此呢我今天讲的这个案例就是提到的是,我们我们做了一个叫做全自动的啊,这个是我们研发的,那么看一下这个效果啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们我们是可以做到嗯,替代人工,可以啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个播放一下这个效果,那么这是一个输入的一个模型啊,这是一个模型。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后它是有人工做好的uv啊,就材质uv,那现在这部分呢就是一个自动化的一个uv生成的一个过程,然后再次拉直啊,就确保线条与uv线条垂直。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后呢缩放确保密度合适啊,然后对它进行一个装箱来保证那个空间给啊完全利用了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那这个是2v就做好了一个啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那现在是他底下下面那个模型的2v制作,啊拉直啊,缩放。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

装箱。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后进行烘焙,有了这个2u正在进行烘焙好,大家看到左边的这个模型,它有了这个光照纹理之后,它的那个立体感一下就强了很多了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么呃那么我们这个ru v的制作流程啊,就是大概我会做一个大概的一个说明,然后来说明参数化在这里面是怎么使用的,怎么使用,那么它大体上的步骤是分为啊一个叫有切割展屏的过程,然后还有芯片拉直的过程。

前面拉直,然后是尺寸调整啊,确保这个uv的密度合理,然后最后做个紧致装箱,然后确保空间不会浪费,那么在前面切割展平以及形变拉直,这两个步骤是大量的使用参数化的算法,大量的使用方一就是大量使用。

而且是开发已经定制了我们专用的为这个工具专门开发的参考算法啊,那么首先我们来看一下啊,就这个第一步我们在进行参数展开的时候,我为了确保它的扭曲不要太大对吧,我们首先第一步要先进行一个切割对吧好。

那我们看一下我们怎么切割的啊,那么切割呢我们会用的是一种以啊一种呃,其中有切割方法就是过量切割加拼接的一个方法,就是切割,切割方法就是我先把东西切的特别碎切碎,比如我先把这个模型切得这么碎啊。

其实啊切这么碎,或者说我我把这个小零部件我切成这样子啊,切成这样的一个三个部分对吧,然后呢我们对它进行一个拼接啊,就是说这个这个这个切割肯定是过量的啊,就肯定他肯定是肯定是不满足我们要求的。

那我们就把它拼接一下,拼接之后呢,我们就对它进行把这个模型拼一下,然后对它进行一个参数化的展开,展开以后我们来看一下诶,这个拼接完了之后,这个效果是不是我们能接受的啊,啊就这个过程。

所以所以实际上就把这个切割过程变成了一个过量切割,再拼接的一个过程,那么我们在切割的模块呢就可以判断出哦,那么这种这个模型的这六种拼接方式,我们可以判断出来这个拼接方式是比这另外这几种拼接方式要优的啊。

那那么呃那为什么比这个u呢,因为你这个拼接完之后,这个这个造型其实是它已经丢失了对称性,丢失了对称性,对称性就是你看这个模型这个原模型它是这样子的一个造型对吧,但你你展开之后。

你变成这样对称性就丢失了对吧,你对称性丢失,那你这个实际上你放在这个呃,因为呃那个uv空间里面也很容易就是就出现斜线采样,斜线采样对吧,那么这两个造型呢它的它的对称性是没有丢失的对吧,但相比之下呢。

这个这个切割呢就比这个切割形变要小一些,那么那我们就认为ok那我们就选用这种拼接方式啊,那么这个就是我们切割算法的基本原理,那么这个切割的整个过程中是要进行非常多次参数化的,非常多的参数化。

那么我们用了哪些参数化呢啊那么就是首先就是非常经典的,就是我们使用的是一个参数化的一个组合啊,就是经典的参数化,这里有two参数化,还有l型参数化啊,那么然后呢还有a i a i a p啊。

琉璃刚老师的a r a p参数化,还有呢就是呃还有一些改进的一些无翻转的a p参数化,还有呢这个演c shell的三句话,c shell 3句话也是我们中科大的老师和同学的一个研究。

然后还有一些增量参数化,那么这里面也有的有一些也是我们自己的一些呃创新的一个方法啊,那么to的参数化啊,那to的参数化就是to的参数化,它其实呃把这个模型它就能变成右边这个样子,那形变非常大对吧。

你所有东西它都能变成这个这个这个样子,那么他好像看起来没什么用啊,但是但是实际上他的也是很有用的,因为它能够保证很多意识数学特性,那基本的数学特性就是它一定是没有翻转的,也没有重叠对吧,他一定没有算了。

没有重叠,那么但是它就会扭曲会大一些对吧,那所以它不适合直接用来最终使用它,但是它适合作为别的参数化的初值啊,因为你初值是一个绝对好的过程,那么你在后面进行参数化的那个优化的过程。

你如果能一直维持这个数学特性,那么它从一个好的初始一直到最后它这个都是无翻转无重叠的,那么图纸参数化它主要起到就是一个初始化的作用,那么另外就是经典的lsm参数化了啊,lsm 3块。

那它的优势优点就在于说它速度很快,速度很快,并且呢在呃有一些你切割的情况,比较在某些切法的情况下,它的这个扭曲还是比较小的啊,就你跟造型有关啊,那么比如说这个房子的这个外轮廓,它a它长成这个样子。

其实扭曲是比较小的,但是呢它在很多情况下它扭曲又会非常大啊,就比如说这个造型,这个造型它进行r c m参数化变成这个样子,那实际上这个扭曲就已经过大了,就是你下面这个这个圆柱就变成这么大一个东西啊。

它因为它是一个conformal保角的一个造型,那么所以靠ml cn方法这个经典的方法是不行的啊,这个是不行的,那并且呢它也是不能保证没有翻转不重叠啊,对那么l c它也是可以作为一个什么情况呢。

它可以作为一个我们的整个参数化这个复合流程中的一个,其中一个中间步骤,就是说如果我这一步这个模型用lcm展开之后,它的那个形变我们判断它是不大的,那么其实那么这个结果我们就可以采用啊,我们就可以采用。

但是如果它出现形成比较大的时候呢,我们就会从ac的这个值又会接到这个ai p的参数化上面啊,这个也是ai ai ai ap参数化本身的一个标准的用法,这里面的一个用法就是拿l先作为一个初值啊。

那么a i d参数化这个就是我们刘立刚老师的老刘立刚老师的研究啊,那么那么呃我们可以对比一下,就是说呃lsn参数化它的这个参数化,它的形变这个形变就比啊这个啊这个是i cm的参数化。

这个是a i p参数化,那么这个它是更好的保持了它这个形状,它是优点是扭矩小,那么但是呢i p参数化呢,本身呢它又不能够在某些情况下又不能完全保持无反转或者无重叠,它有时候也会产生一些副微小的重叠啊。

这个是标准的i p的算法,是不是也会有这种情况,那么我们也就做了一点点的修改啊,那么在迭代的过程中,当它发现它有呃出现了形变的时候,我们就停止迭代,做一些记录等等。

或者是说我们在最后发现这种微小迭代的时候,我们对它进行一个解重叠等等啊,那么这个这些无反转的片段就是我们自己做了一些改良啊,做做了一些改进,很微小的改进,然后它的可能速度就会慢一些啊。

哦对他是解决的是无反转的问题,但是并不能保证重叠啊,因为因为因为重叠是一个全局的一个一个问题,那么那么那么为了解决这个无重点无重叠的问题呢,那我们也还用到另外一个c shell的参数化。

那么这个参数也是我们中科大的老师学生啊来啊的一个研究啊,那么那么cc参数化,那么呃cc参数化的特点是它的优点是既能保证无反转,又能保证无重点,那么我们可以看到他给一个非常复杂的一个奇奇怪怪的造型。

它它也能长出来,而且是啊扭曲平均下来也不大,但是也而且还完全没有重叠,也没有交点,也没有看准啊,那这个是需要参数化的一个东西对吧啊,那么但是呢其实有这么一个强大的能力呢,其实也不见得是好事啊。

因为因为呃你c c c32 ,如果他出来了这么一个效果对吧,他他其实是不利于后面进行一个边界的横平竖直处理的啊,不利于后面也不利于后面装箱,在这个把这个uv空间完全装满啊,所以虽然他在参数化的这一步。

它做到特性非常强,但是实际上对整个自动uv展开,它是效果是不行的啊,效果是不好的,所以所以所以呢啊这里也是个例子,那比如说用c项参数化,那它就会出现放在我们的那个呃切割那个里面,它那个那个循环里面。

它就会a以这个结果出现,那么这个结构是不利于装箱,如果是ap 3的话,它反而会就是因为发现a中间产生交叠等等,它就会进一步会把这个东西切切开切开,所以反而这种结果是我们想要的,那所以c需要参数化呢。

就是会用在什么地方呢,就是就他就不能直接用在我们的主循环里面啊,像啊这个a i p3 句话,这里会有一定的焦点,实际上是没有,这些也是更多的例子啊,就是一些轻微的焦点。

那么这种轻微的焦点我们人可能看不到,但是你放到游戏里面去渲染的话,那这种焦点地方的渲染的效果是错的啊,那么这也是为什么人工要细致花很多时间展开的原因啊,那么所以c项参数我们往往是在什么时候处理呢。

就是往往是在而ab ab 32之后用来处理狭小的重叠问题的时候,我们才会把i p的结果啊进行一个重置,然后重新进行c项参数化的参考,那么这样子因为前面a p已经保证了参数化。

结果那个切割的造型在这个切割框架下,它的造型已经不错了,那么c shell只是解开一些微小的重叠,它一定不会导致整个造型座椅对导致一个巨大的扭曲啊,那么这种情况我们就会调用c下发。

那么最后最后呢还有就是一个增量参数化啊,增量参数化增量方式也是一些,那么在呃也是一个特定的需求,就比如说像这种造型,像这种造型,那么我们有如果你为了扭曲小。

而把中间的这个这个立起来的这个柱形的这个东西切开,跟这个平面切开,那么实际上你是导致这个uv的展开的那个uv导的数量更多,切割缝更多,那就违反了这个二uv的那个制作的一个要求。

所以呢美术往往会把这个东西就拍平,就把这个四个立起来,这个柱面就强行压平,就变就不压到里面去了,你知道,那这样的话就优于导数量,就从五个变成了一个对吧。

那么如果说我们直接对这个模型进行一个lcm参数化或者a p3 数化,它就会出现它就会均摊这个形变,就会产生这种效果,分三种效果,那因此呢我们就不能这么做。

我们得先用一个ai k3 数化对这个平面进行一个参数化结果,然后呢再把这个呃四个柱面拼到这个上面,然后对这些拼上去的路面进行一个增量的参数化来得到这样一个结果。

那这样子我就可以保证外面的这一圈它是严格保持这个造型的里面,那也就是它形变就集中在里面这个位置啊,那么在经过后面的处理的话,那这个展开的效果就会非常好,那么这个就要增量的参数化啊,好那这个这讲到这儿呢。

就是我们的这个切割展开的一个步骤啊,那现在要讲的第二个后面的一个步骤,那么前面的步骤把这个uv导的展开已经处理好了以后,那我们就可以那个啊就是嗯,对它进行一个拉直了,就是说你前面展开。

你为了让他呃得到一个非常好的一个呃形变,就形变比较少一个造型对吧,那么它是有可能会出现这种造型,就这种造型它其实每个三角形它形变其实不大啊,他可能每个你每个一看诶,他也没有特别扭曲的很厉害。

但是他那种造型他就逐渐的那个扭曲叠加,最终你形成了这么一个弯曲的一个造型啊,那么这种造型啊就前面提到了,就是说你你但凡有这种斜线,那么在烘培的时候就会容易出现这种锯齿啊。

那么特别是如果你的那个呃光照纹理分辨率越低啊,那么这个具体就会越大,我们看这里的具体大小,它其实和这个这个光照纹理背后那个三格的大小是一样的啊,我们可以看到这里,这里看这里一个三格,一个格子,一个格子。

一个格子对应一个像素,那么你你这里的句式就和和他在这样跳变的时候,它就会容易发生,很容易发生去死,但如果你拉平的话,它就不容易啊不容易,那么所以呢我们就要对前面切割展开的那个效果,进行一个拉直的效果啊。

那么这这里进行的其实就是一种从平面到平面的一个,参数化的一个计算,那么我们我们那么我们用到了这里的一些参数的方法,就是平面和平面的我们做了一个二分类啊。

就首先就是说对于一些呃相对的内部边线条的规律比较明显的,就比如说你看这个造型,它其实有很多整整齐齐的一些边造型对吧,那么规整的内部边,规整的uv导,就这里的标出来是红线。

就是我们认为这些红线我们经过检测,那么我们就呃,金我们就对它进行一个拉直,那么另外呢还有这种u v导,那这种u v导它内部其实都没有这种很规律的线条,那么我们呢就只对它的外轮廓进行一个垃圾处理啊。

那么呃那么这种因为导它,那那那这种斜面会导致采样问题呢,那实际上是不会的,因为如果美术它在制作一个模型,他如果内部的线条是这种凌乱的线条的话,那说明他这个模型其实表达的是一个曲面。

表达的是一个石块或者是一个三体等一个造型,那如果他表达是一个非常规则的光线,很柔和的东西,它其实不会用这种内部线条的,他会用这种线条,那么所以这种这种模型我们只要保证它外边界拉直。

那外边界的部分没有锯齿就行了,那那水质基本上分成两类,那么这个也是我们啊这个这个是我们呃根据呃我们创新的一些呃,根据也是根据现有的学术研究做改进创新的我们自己的方法。

那么呃那么这里我们会用到呃厂的方法啊,这场的方法啊,之前的老师们上课应该也提到了,就是标价厂不view的方法来把这个计算计算这个呃每个三角形的一个厂,然后呢把把这个厂呢对齐到这个呃u轴和y轴啊。

然后呢又通过呃优化每个扇形与他自己对应的场来对齐,这样一个几个两个步骤来使得这样的一个造型变成这个样子啊,啊以及这个造型变成这样子啊,那么它的好处就是内部的边可以规整啊,那么另外一个就是杂乱。

内部边杂乱的意味呢,外边一拉扯,那么这个啊是啊,叫做我们的就首先会对它的外轮廓计算一个嗯一些角点,然后把这个角点算出一个多方形的轮廓啊啊,然后呢对它进行一个固定外边界的一个一个内部的一个参数化啊。

内部的参数化啊,那么这个这个也是呃用到了中科大的老师傅老师傅向明老师,还有啊还有啊刘浩宇同学的一个一个一个研究啊,然后呃像前面的这个这些呃,像c需要参数啊,这里用的也是呃付老师刘老师。

还有呃数建平同学的医学研究啊,然后另外呢还有一些呃更更加细节的一些参数化啊,那么这个呃这些狭长的区域参数化,那就是比如说我这个uv导我进行a i b a p参数化,或者说是lsn参数化。

我得到这么一个结果了对吧,那么这里其实看起来形变是很少的啊,还原度很好,但实际上游戏里他是不能用的,为什么呢,因为这个区域啊,这个这就是这个这个柱面,这个外面这一圈这个区域。

这个区对应的这个这个多边形的这个狭长区域,它太窄,它窄到就是它比一个像素还要小,它比一个像素还要小,那么那么它的光照呢就会和旁边的上面这些光照就融在同一个像素里,所以它的光照就会产生这种叫漏光的现象啊。

弱光下你看就是这种阴影就踩过界,踩过键跑到上面去了啊,那么所以碰到这种情况呢,尤其在没有游戏美术里面,就会把这种位置给拉大,就使得它不要太小,那么使得它的光照这个位置的光照是存在这儿的。

就是这两侧的不会共用同一个像素,那么你看看到这个光照效果就有明显的改善,就是边界会变得更加锐利和清晰,那么这种叫狭长区扩大,那么这种就进行一个一个局部的一个参数化形变,那就保持这些位置不变。

然后我破定了小仓区域以及小商区域的那个啊拉扩大方向之后,扩出去啊,那么这个这个狭长区的一个参数化啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么呃,呃然后呢呃那么参参数化,刚才这个这个是就是我们提到的参数化的这个用法,那么呃参数化算法本身了,那么最后呢你你做餐的话就免不了一定要做这个装箱嘛,啊一定要免不了做这个装箱。

那么装箱呢我们这边也是啊也是要做了,也做了不少功能的,那么就是说装箱就是要把这样的一个一个东西很紧致的装到,变成了这个样子对吧,然后把这个装到这儿,那么呃嗯但这个可能就不是我们今天讲的重点了。

因为我们主要谈的是参数化的方法,那么这里可能要用到一些呃呃解决一些呃组合优化问题啊,一些np np完全的问题啊,那么对u v导进行一些拉伸上说话啊等等,然后再把这个东西装满。

那么我们这个效果它也是我们的专项效果,那么像这么这么密集这个模型这么密集的一个装箱,如果进行人工的一个装箱呢,它只要消耗四个小时的时间啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ok那么呃前面我谈完了,就是这个叫做呃主应用案例啊,主应用案例,现在我们再来谈一下,就是一些嵌入性的案例啊,嵌入性案例啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么呃那么呃这个首先一点就是模型的布线,模型布线,那么模型布线呢,他的这个需求表面上看起来就不是说我要进行一个参数化对吧,他是要把这个一个模型表面,这个上百万面的这样一个非常精细的一个模型。

它的表面要把它给降维离散化道,降产量到这么一个稀疏的一个网格对吧,那么这个过程那这个过程看起来跟参数化好像没什么关系对吧,但实际上它里面就用到了参数化的算法对吧,那么呃前面啊老师们上课应该也提。

就也提到了,就四边形化,那么那么这个模型的布线,它其实是和四边形画是有点类似的啊,但是呢它的应用,但是在游戏里面进行模型布线的目的并不是为了四边形化,就是它产生的这个结果,它不是严格的四边形。

并且它的走线好,就是他是遵循着这个角色的一些呃运动的规则。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就是它它的布线要求,不单纯说你只要是四边形就可以了啊,还有哪些要求呢。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就是说啊他是满足运动的需求啊,就是说比如说你在这里布线,我知道这个位置这里是有个关节的啊,有个关节,那么并且呢我知道这个关节是要朝这个方向弯曲,那么呢我这个固线呢。

首先一点我要保证的是我整体的这个东西的布线,要沿着这样的一个呃经线和纬线这样一个两个方向的布,也就是大体上它呈现这样一个环向环境环向的一个结果啊,其次呢我要知道他的这个呃这个这个在弯折的背面这个位置。

我要给它,因为这里形变会更多,我为了让它形变的时候,这个光滑性能够得到保持,所以这边要给到更密集的一个线,一个线的一个一个一个点,那么这里呢那么这个地方呢呃就可以给少一点,内测就可以少一点。

那么这个就一种满足运动要求,那么其实你目前一定要满足对称性啊,要满足很严格的对称性,就是说呃啊不然就是你做的动作造型人产生不对称,就效果不好看,那么还有呢你的这个线不仅仅向四边形。

而且是要严格的环形线啊,严格的环形线,就是说你不能说我从这里转一圈回来,从背面哎这个线条跑到这儿来,再转一圈跑到这儿,这样不行的,因为就是如果你如果是环,如果是螺旋线啊,就像这种螺旋线从这出去。

从这进来,在螺旋线,那你会导致美术在进行一个修改这个模型的时候,他是很难操作的,因为在一些比如说30838呀,它会有一个选线的操作对吧,那个他就他就延长线,1111选,他就把这么多条线一起都全选上了。

但是如果你是一个严格的环境,你你选择它就刚好把这个环境给选上,那么美术如果想去把这个环形线进行一个编辑,拉大或者缩小,那么它就比较好操作,但如果你是个螺旋线,它就没有办法,那就没办法。

那它是所以螺旋线是一种编辑不友好的一个线条啊,那么另外呢就是说呃还有一个保证一个起点对齐起一点呢,就是呃就是这呃就是从头火的一个概念,就是说你这个点的度是不是四啊。

那么就这些点的连线要呃这些起点的位置要对的比较整齐啊,要对得比较整齐,就是那么放的位置要符合人对这个手掌这个理解,你要刚好整整齐齐方式,但如果我们如果我们不按照这个手掌了,这样去理解。

就对其线网络完全按照模型表面的曲率来计算这个起点呢,那这个起点的位置其实它是会歪歪扭扭的,它可能大体都在这个位置,但可能一会在这,一会在这就是,而且可能这里两个起点,这三个起点它会有一个轻微的不整齐。

那么这时候产生的这个布线的效果就会很差,就是很差啊啊那么这个是叫自动布线与四边形化的一个差别啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那它也是脱胎于四边形化。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后比四边形要求更高,那么啊那么在进行这种示范下需求,那么它其实就是要用到参数化啊,那么参数化的原理就是说我们来界定这个东西的整齐性,我们其实在模型的表面是很难界定的,以及我们界定它的环境。

现在模型表面非常难界定,那么我们的做法就是说,我们通过一个切割的方法来把这个和和四边形画画的做法是一样的,我们通过切割的方法来把这个手掌模型给参数化,到某一种二维的流形上,就可能是个平面。

它也不一定是个平面,它可能就是一种二维流形,二维流形,那么呃举个例子,我们这个手我需要对这个起点连接到这个点,我画一条横纺线,那么我就把这个点到这个点的路径旁边的一个小片给割下来啊。

我随便用一个图的一个搜索算法找到一个路径,然后把这个割下来,然后把这个表面进行一个参数化,它就变成这个样子啊,变成这个样子,那进行参数化之后呢,我就在这个参数化的上面进行画一条严格的直线,严格的直线。

然后最后呢再把这条严格的直线啊映射回这个模型上,那么这时候我们就在这个模型表面上得到一套非常非常完美的线条,没线条,然后打格子也是同样一个道理,就是说我们也同样把这个区域。

我我这里的区域的拓扑是比较凌乱的对吧,那我把它映射到这么一个区域,然后在这个区域上画这种网格,整整齐齐,网格再把这个网格运回去,然后再把这个模型的网格变成这个样子。

那么我们就可以把这个凌乱的网格的这个拓扑给变成布线,就会变得非常整齐啊,那么那么这是一个呃这个呃无缝参数化在模型布线上的应用,这个应用就是这种就嵌入式应用,那么还有其他更多的应用啊。

那这里我就呃大体上的去概括的描述一下了啊,就是那么其实啊这种嵌入性,因为我可以我们其实可以理解为就是其实一种信息迁移,就是我们把参数化作为一种信息编码的方式。

就是我把模型表面的信息编码到参数化的一个空间,然后又把这个空间又映射到另外一个模型上,然后把这个信息就通过这个参数化做一个载体,就转移到另外一个模型上了,那么比如说这个右右上角这个动图就是个案例。

那么它实际上是一个呃呃三维扫描的一个一个一个模型啊,三维扫描一个模型,那么它是通过呃一种呃映射的方法,把一个模板,把一个模板这个蓝色的模板给映射到了这个三维扫描这个人上啊。

就是这个肉色的这个就是人把映射到它上面,然后呢这个模板模板身上是有那个呃骨骼和蒙皮,以及对应的动画的这个信息了,但是你至少照片扫描出来,三维扫描这个角色是没有这个信息,那么但是我建立好是他俩映射之后。

那么我一我驱动这个模板的进行运动,它就可以啊实现这个照片扫描这个模型的运动啊,所以我就不需要对这个照片扫描,得到这个模型来进行重新的蒙皮以及这个动作调整,那么这个那么这就是一个很好的一种信息迁移啊。

那么但是但是这里这个例子啊,这个例子我我我这个举的不是很恰当,因为这个例子他用的可能不一定是参数,它有可能参数,但但跟叉叉同类的技术,就比如说非刚性配准啊等等,这个形变技术它也是很差。

除外也都差差不多啊,那么呃这样的一个映射的技术啊,然后呃他就可以把啊top结构蒙皮权重骨骼等动画信息啊先移,那用到比如说大家在玩游戏看到了一些什么捏脸系统啊,或者是角色定制系统呢。

它背后就会用到这种技术啊,那实际上这么多的角色,他其实可能调的都是同一套动作和同一套脱口,但是我就需要有一个迁移,可以迁移到玩家调整的各种各样的角色啊,不同的造型角色啊,然后呢啊还有一些案例啊。

那么这种案例可能就大家比较不容易想到的就是造型识别啊,造型识别,那么造型识别它可能它不会作为一个呃,一个一个肯定不可能是作为说艾文,就是在游戏里生产中要进行一个上去识别它。

不会它是作为你整个计算流程中的一个止步,作一个字不错,那我识别一下你的造型,然后我根据你是不同的造型,我决定干什么,那么这里也是可以用参数化的,就比如说我们可以找到两条固定的边界线啊。

然后啊把这个边界线,把这个内边界线和外边线啊分别映射到呃这个矩形的啊,上面这个边和下边这个边,然后这里再找一条最短路径,然后映射到这两边,然后对这个造型进行一个固定边界的参数化啊。

然后我们来观察参数化后里面的每个三角形的扭曲的情况,来进行一个统计,那么其实我们就可以判断出这个造型是不是一个近似的啊,圆圈啊,或者是一个近似的一个别的什么造型,我们可以通过这个来界定。

那么我们在这个映射后的这个空间来进行一个设计,一个判断函数就会比在这样一个任意的一个空间里设计一个判断函数,要容易得多,容易得多,那么所以这个就是一种呃呃造型识别,或者说叫近视造型识别一个方法。

这一个方法啊,好那么啊那么呃这个案例介绍我我倒在那介绍完了,所以呢我就来做一个总结啊,做一个总结啊,就是啊就是啊首先一点就是说啊,三维模型是由造型信息和表面信息组成的,那么呃但是一定一定有这两个东西。

那只要有模型,就一定有这个因素,那所以呢啊那参数化系方法是进行这个模型表面性设编辑啊,编辑和识别啊必不可少的必不可少的基础技术啊,它是很多技术的一个支撑啊。

然后呢呃另外呢它不仅仅作为对物件表面进行整体映射的功能啊对吧,它还作为嵌入式的应用啊,映射到在国民表面的编辑和理解里面啊,就是那么啊那么另外呢就是在游戏的在工业生产中吧,就在游戏美术工业中。

以及在工业生产中,那么制作效果性能的制作的效果和性能要求都很严格对吧,那所以你仅仅是使用一些经典的参数化算法,比如说经典的lcm或者经典的i p,那么其实往往都是不能满足工业要求的。

你可能能满足72%等于80%啊,但是你进行工业生产,你这个百分之七八十的这种正确率肯定是不行的,中工业生产中,你至少要95%以上,甚至要99%的正确率,那么所以呢所以在工业生产中。

对参数化方法就一定要根据每一种不同的生产应用,我们都需要进行深度定制,都需要进行深度定制,就每做一个不同的项目啊,就要设计一个新的参数化算法啊,那么因此呢在呃比如说在cad团队里面。

我们是一定需要专精于参数化方向的研究人员的,所以呢所以呢所以这这而且呢如果你在这方面做的很好的话,那也会也是一个就是在团队中也是会很重要的一个人啊。

就就这个这个需求是很很就因为这个方面也是比较难的嘛对吧,所以呢啊所以这一点呢就是说啊,所以啊即便你在这个你你在某一次的开发里面用不到这个技术,但你掌握这种技术,你那你你你总是会在哪个地方运动到。

所以所以参数化我认为它是一个非常非常重要的,这个这个这这三维model领域非常重要的一个技术,好的那我的这个分享就完毕了,感谢大家啊,好诶,谢谢那个收回的非常精彩的分享哈,那个让我们了解这个曲面上的话。

如何从学术研究走向我们实际那个游戏工业中的各种应用啊,啊从三三个大方面来介绍啊,看看同学们有没有什么问题可以在b站上输出你们的问题啊,啊我听完以后也受益匪浅,这个我我这边有几个问题想。

首先那个跟呃收回交流一下啊,就第一那个第三个应用很有意思啊,就是形状识别就是一个圆,一个环呃说吧你能换到那一张吗,哎对你你这个思路是说把圆和环分别差能化到一个矩形是吧。

然后根据这个扭曲来判断这两个形状的相似性,那你这两个参的话是不是要保持一致,否则的话呢一个是采用呃减少扭曲的,一个是采用另外一种,这样的话就扭曲度量就不是一个很好的度量,这个相似性的度量了是吧。

所以这个应用中这个参数化是怎么选,还是有什么样的其他的特殊处理方法呢,能不能展开再讲一讲,嗯,ok哦哦那这个地方就其实呃就是一种统一的固定化插法,就是固定边界的参考方法啊,就是呃就是哦参数化就同一种。

然后因为它呃你你参数化到这个地方之后,那么它你判断扭曲就可以用行列的方式来判断,就基本上啊就是啊呃呃所以它其实呃也就一种方法,那么这个造型识别的目的就是为了呃为了实现一个什么效果呢。

就是说左边这个严格的圆以及这个近似的圆,实际上我们在进行一些自动布线的时候,我们其实希望它也是呈现一个呃我把这个光笔拿出来,也是希望他,也是希望它呈现一个环状线啊,也是希望它一个环状线。

那么所以我们要看它是否是一个近似的一个圆环啊,但如果这里采用的我们不用这种方法去判断的话,那么我们采用一般的呃无缝参数化方法,或者说别的方法,然后在上面进行一个呃根据曲率来进行线条的trace。

那么这个造型它很容易会产生四个齐一点,他他会他会他会就是进行布线的时候,它很容易会产生这样的横横线,横竖线横竖线,但是我们希望它的布线是这样一个环境啊,我们希望它是一个环境。

所以所以实际上我们要先判定它是否这样一个环,那么如果你你你这个这个东西参数化到这个地方,那么它的扭曲是集中在你上面,这一圈扭曲小一点,下面这一圈扭曲都比较大啊,它的方差也符合某种特征。

那么我们就认为它没有超过我们设定的阈值,我们就认为ok那你这个是一个近似的环形线,近视的一个环状物,这样子,那么它它的好处就在说,那你这个造型如果更没有那么对称的啊,就比如说你中间是个圆。

你外面是个方的,或者说你中间是个椭圆,外面是一个造型偏的别的一点的椭圆,那么它也会能够被识别成是一个近似的环,就它其实用来表达某种近似,嗯对好诶,这个是不是需要这两个啊。

前面两个输入形状的内部是内部三角网格是要一致性的,就是要可以这个地方可以当场给的三角化都可以哦,可以可以不一样,你是靠三角形的扭曲来那个对对对进行测量,好好挺好挺好嗯,嗯好,那个202呃也有一个问题。

就是你呃表面像比如说做动画迁移那个表面上的餐点呢,做餐的话是可以通过插画这个中间来做其对应哈,它有一些绑定的骨骼,骨骼是看不见的,是抽象存在的是吧,那么这个迁移是有特殊方法吗。

因为这个在做这个你说的模板,模板是已经给定的动画,这个是可以很很好,但是扫描的话你只扫到表面点啊,表面点对应关系相对来说啊,至少可做对吧,那么内部点的话,这个也是可以借用他的话吗,还是有别的一些技术。

反正呃稍微解释一下好了,ok ok那么这个地方就是实际上它呃有两种做法,一种是全自动做法,一种是半自动的做法啊,半自动做法,那么这这里面这里首先其实它迁移是说你找到了表面的点,一个对应关系嘛。

把它表达表达对应关系,那么其实啊模板上的那个每一个点,它其实已经是经过蒙皮处理,也就每个点它已经有与每个骨骼的一个线性绑定的一个关系,这个权重它已经有了,那么所以你如果建立了典型的对应关系之后。

你直接就把这个这个权重就复制到这个目标模型上对吧,那然后再进行一个差值,这样就可以蒙皮就迁移过来对吧,那么但是骨骼有可能与你的这个目标模型不完全吻合对吧,那么但是但但是呃我们应用到人脸这种情况下。

就他这个骨骼呢,就是说一种方法呢是我们用别的机制来调整这个骨骼的造型,另外一种呢就是人工来把这个骨骼稍微调一调,就这样子说说股啊,就是刘老师你说的这个骨骼的迁移。

这个确实这里是呃参数化并不不是解决骨骼这个问题,骨骼是别的方法啊,但是你一旦这个映射关系做好了以后,那你这个骨骼运动的话,它其实就可以驱动整套,他是这个意思啊,就是这里是要有一个外力的去辅助啊。

诶这个蒙蒙皮权重是也也是可以全部搬过来嘛,还是要调整的嗯,要搬过来啊,基本上就搬过来,然后就就是直接复制过来做个差值啊,对但是这个效果也是需要的,多多少少都是需要一点点调整的,多少都需要验证。

又不是做不到完美对啊,但是我们现在也在不停的改善,就是说会会未来会把它做到好完美的样子啊,对对对,工业界好像有很多工具来做这个事儿是吧,这个像rap rap four d啊。

这种就是当然它的骨骼迁移我觉得更难一点,因为你是在内部嘛是吧,是是建立表面跟骨骼之间的一个对应关系,如果骨骼迁移比较好,全系数就可以通用,这动画就可以迁移得非常好是吧。

所以你刚才说谷歌迁移的时候是还需要手微调,自动化程度不算高是吧对对现在还没有很高啊,嗯嗯这方面如果建立起这个人脸内部的一个题材的话呢,因为啊这谷歌在人脸内部嘛可不可以通过提升的话,我觉得我觉得是可以的。

就是这些方法都是可以的啊,就这这一块,因为我我我是把它作为一个呃就是一个非主要的应用案例来谈,就是就这块我们现在也还没有特别深入去开发,但是这些是我们未来的这个开发的一个也是重点之一啊。

啊所以所以提倡化绝对就是三维的体操也是绝对也是个办法啊,对因为其他的话构建了那个表面跟体之间的一个对应关系嘛是吧,所以这是有可有可有可能对这个这个反正不展开好嗯,对看到有些同学还问这样一个问题。

就是前面那个分片啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

分片那个你刚才说拉直拉成水平啊,这个只是是为了呃让这个装箱更紧致吗。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

还是有其他的一些应用考虑啊,啊它是个综合的考虑,就是说呃像这种拉直,它一方面就是说你所有线条呃,u就是与u周密周平行,会解决这个采样锯齿的问题,这是一个原因啊,就是在纹理分辨率非常低的情况下。

这种斜线采样呃,其实你不管管理分辨率高低,都会容易产生锯齿,但是如果你文笔你分辨率很低的话,这个锯齿就会很大啊,所以啊uv导的线条,首先就外边界和内部线条尽量都是与u轴和b轴平行,这是第一个考量。

第二个考量就是如果你这个造型比较水平,横平竖直的话,装箱也会比较有力,比较有利,所以这是综合两个因素考虑的,我可以理解,所以说呃我我们前2年一篇这个拉把它拉平。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

实际上是为了装箱的这个紧致性哈,上次除了这个还有这个质量的考量是吧,所以这样是非常合理的一个方法是吧,对对对对,非常合理,就在那个就是就是呃对对对,就中科大的有好几个研究都都直接都能用得上啊。

嗯嗯嗯嗯好好,我们的我们的成果很多都都在你们这里得到了很大的应用哈,是是所以这些研究也鼓励这些同学啊,这个这个能够更深入的往这个方向多做一点啊,行,这是一呃同学一个问题。

还有一个问题是就是在参数化的时候呢,有很多看到你这边有些用出的方法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

有些就a i p,有些a s m啊,就在你们刚才也提到所不同的应用有不同的算法选择,这个这个考量程度是什么呢,是美工呢还是啊程序员,还是呃这个游戏的需求是由哪些维度。

能不能谈一谈o k那就是呃其实基本上分两类嘛,就一个是呃应用的需求本身嘛,就是啊就比如说呃我们为了满足这个刚才这个斜线条这个问题,所以我们要设计专门的这种拉直的参数化嘛对吧。

我们要设计专门的拉伸手拉拉扯的参数化,然后呃比如说这个就是一个典型的例子嘛,就是说嗯像这种就典型的工业级的要求,就是说我与其把这个柱面切下来,展成四个长条,不如我牺牲这个柱面的一个扭扭曲,让它扭曲。

让它挤在这里面,让它产生一定的扭曲,但是呢我优鱼岛的数量从123455个变成了一个啊,那么就减少了这个u v导之间的切线,减少了切割线,那么就使得这些地方就不容易出现那个漏光漏光。

并且呢呃也增加少了七个线,就会少了接缝,所以利用率也会增加嘛对吧,所以这种就其实就是一种专门的要求,那么如果我们的参数化不涉及这种需求,就会导致我们展出来的效果会比人工智能化算法。

转出来会比人工的算法要差很多,就这样的,这是一个这个是一个面向需求的一个情况的一个一个要求,那另外呢就是说就是这种嵌入式应用了对吧,嵌入式应用,那就是看呃呃像这个也是这个也是专门定制的嘛。

就是就是狭长区扩大的参数化,这种也是工业的需求,就是他会为了解决这个像素的那个就是我这个区域,如果比像素要小,那它这个效果就会出现这种效果,那么因此我专门设计一个算法来把这个东西扩大,就是狭长区域。

这个参数化方法,这个狭长区域会专门拉大一点,它会给一个放松的方向。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

对那这种就典型的就是指这种情况。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那你这种看起来好像改动不多的山东话,但你如果不做的话,工业就会用不了,嗯好嗯,b站啊反馈啊,这个干货满满啊,说明同学们还是学到好多东西啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就还有一个同学问,就是做的很好啊,那他说是不是和微总差不多,r i c o m是是这个你知道吗,是一个软件还是什么r i s c o r r r i c o n region。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

哦,诶好像是诶好像是哦那个哦对对,是那个region是一个也是一个又一展开的一个软件,专门ok嗯对对对,他他他他想知道你这个做的跟他有什么区别,ok那个最大的区别就是目前你在市面上。

任何人就在市面上能找得到的任何软件。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

它都是人工介入的,交互式的参数发展开就是你需要需要鼠标去选择呀。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就是你如果完全加入那个软件。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

它自动化厂商,它展开的效果是不能用的,不能用的就是那么region呢也好,rx 3 d啊等等,你市面上能找到的都是需要人工去选择一些切割线,然后以及你切好之后,你大概放置的位置,你需要进行人工调整。

但是我们现在做的这个算法是百分之百不用人工干预的,不用人工干预,就你模型给掉进来,我出来的效果直接就可以用了,所以它是一个全自动能,最大的差别就在于我们是全自动的,那么它是完全无人干预的啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

也就是说你的效果已经超过超越了那个商业化的瑞总啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

像on rap呃,ford版是哦,那个是俄罗斯的吧,呃就目前所有呃对呃,应该来说我们跟他们都不太一样了,因为他们是半自动工具,我们是全自动工具,诶,你这个是不是呃他说这个能不能完全全自动。

还是说这个需要少量江湖。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后不是比如说美工做了个高模或者机膜,你能够全自动从网格简化到长城化到展开到这个装箱。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

全是全流程都不呃,呃我们是2u u一展开这一部分全自动啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就是光照纹理展开这一步,就是就这个视频这里面就这个过程就是一个全自动的过程。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

嗯嗯ok其他的其他的全自动环节,我们也能在你看在努力中软件啊行诶这样一个把半人工也好,人工的做法变成全自动啊,在整个比如说游戏制作过程中,没对美工来讲提供了什么意义,比如说节省了多少效率啊。

这个大概有个估啊,不值了这个顾虑吗,那么现在在游戏行业里,这个需求还是蛮呃是很很旺盛的,就是说呃我看看怎么说哈,就是说呃比如说这个r u v光照纹理这一项啊,光照纹理这一项我们做成全自动力以后。

大约我我说个大概的说法,不能说太精准了,大概可能能够节省啊,整个三维建模的工序的百分之就接近两位数的一个工作,工作成本的一个降低啊,就是那么那么这里影响的一个人员。

那你想想就是比如说呃在我们拿深圳的深圳或者说是国内啊,就全国吧,或者深圳就全国的游戏团队非常多了,就是让你每个团队就我觉得影响到的从业人员可能有10万人吧,就是做uv展开的人,可能这些本来很枯燥的工作。

他都完全不削弱了啊,就是可能啊就举个例子吧,比如说我们内部有些项目它有有一些参数展开,需要十十几个人做1年的工作,十几人做1年的工作,那么我们用这个算法可能就一跑大概两几天就已经全部跑完了啊。

就是那那这个效果就大概是这么一个效果,大家可以自己看看这个嗯好是有没有啊,哈哈是是这个是非常可观的是吧,所以所以这个这也体现了这个啊科研的那些成果啊,如果能够把它工作的话。

用到这些工业还是产生很大的效益是吧,这个节省节省能力嘛。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

节省成本嘛是吧,然后又提高了自动化,这个前景非常非常呃,就是这里的需求非常旺盛,就我这里面列出来这些应用几乎都有自动化的要求。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

非常旺盛,嗯嗯是是,然后刺上那个呃,我们有很多学生也在你那里是吧,在这方面做了很多贡献是吧,然后他们从工业中又可以挖掘更多的问题是吧,然后做更深入的一些这种研究和方法啊,工业需求啊。

跟那个科研的一些成果是是挺好,对对对对对对对,就我们中科大的这个中科大的这个差啊,这是数字几何处理啊,参数化方面这个有有就是刘老师和付老师,还有陈洁老师的学生啊,就就一些博士生啊,硕士生啊。

就有在我们团队里都有很多人,就是呃好几个啊,就是呃五六个的样子啊,就在我们这个团队就给我们的这个算法有很大的一个支撑的,这个这个就是一个基石啊,就这这方面的这个科研能力真的很强,嗯嗯哈哈哈。

b站同学们问这个听起来很兴奋,然后这个工工具里面会啊,比如怎么用,会开源吗,还是说现在只是在当然从商业上来讲,可能还是内部用是吧,未来有没有进行更多的推广或开源啊,或者商业化呀。

这方面呃未来我觉得是有可能会商业化的啊,就是啊但是目前我们呃就是仍然在打磨,仍然在打磨,就是说打磨一方面是说呃像这种uv展开的,其实自动化的应用还是挺多的,我们我刚才只列出了其中一种。

但是其实uv展开有好多种,1u2 u3 u4 u又很多,所以我们可能会在在这个产品线上面进一步丰富,比如说模型简化啊等等,还有自动布线等等,这方面我们都还会再进一步去进行研发啊。

然后可能呃等到我们认为呃这个呃比较成熟了以后啊,就就会是会会考虑商业化这个问题的啊,要像腾讯的话,其实有不少我们的研发软件,一开始也是内部使用,然后做得比较成熟以后,我们也会向社会开放。

就这一点我觉得是未来是很有可能的,嗯嗯好期待对嗯,还有一个问题就是现在这个unreal 5啊,今年发布啊,引起业界轰动,说可以啊,解放美工的那个约束是吧。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

可以制造很高的高模啊,不用担心这个这个引擎的开销对吧。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

它里面可能关键有几个nt这种技术啊,那么这里面插的话,在这里面我会对nt这种技术会有进一步的提升和改进吗,可是那night的话,那night的话我觉得那night应该影响的是还有呃模型简化的那一部分。

然后对参数有关系的,应该主要是撸lm,就是它的那个动态光光照,这个系统就主要是阿瑞,我就出了两个嘛,一个lm,一个是you sunlight,那么呃呃实际上是这样子的,就是说这个月是往3a级的要求。

那个参数化的工作量就越大啊,就是因为呃比如说呃如果你用nn,那么你其实这个模型精度是非常非常高的,那么这种这么高精度的模型,其实就会倾向于采用一个现实捕捉的一个方法,这个工具来来进行一个一个一个制作。

那么现实捕捉回来的模型面数就非常非常高,那么这时候进行参数化展开的工作量就更大,就会更大啊,那么呃当然当然如果你用露脸的话,露面的话,它是自己是标榜,是说是呃是完全动态光了,他可可能不需要r u v。

它不需要limp的u v,但是它仍然需要1u比啊,u v它仍然需要,那所以u参数化在uv里面仍然要用啊,那并且呢呃呃这个是呃这个影响就是反正现在我们内部也会啊,这这就是反正就这方面有这方面研究吧。

就是说这个需求仍然有啊,就就仍然会有进一步的需求的新的变化,就是它展开的要求是会变调不一样啊,嗯嗯嗯好,就是这不仅是几何处理,而且是渲染光照啊,鲁门那边也会有这个几何处理的帮助对吧。

所以渲染虽然跟几个是应该耦合在一块儿,相互解决啊,相互促进对吧,这个观念嗯好是是嗯好,可时间可能有限啊,我可能这边我我自己有一个问题,就是现在几何表达我们表达这种manifold用surface也好。

用mesh也好,只是离散和连续的关系是吧,前面我们课也解释,就是但是现在呢有一种新的表达基于体啊,这个长就像代表就是nerf,我不知道这个在这方面有没有关注。

然后再在这里面有没有一些类似的几何的深层次的问题,比如山的话在里面对体这种表达有没有一些这个问题啊,是不是有一些这方向可以值得探讨,或者是关注一下好看的想法,嗯嗯对那部分我们也是呃。

就是我们内部也是呃就是也挺多呃,挺多同事都在关注这nf,有些也有一些团队也在做这方面的研究啊,那么就我个人而言的话,我比较关注的是说呃这个可编辑性就可编辑性以及运动性,就是说到那个神经辐射场。

他如果呃如果是静态的,这个他现在是解决的比较好对吧,但是如果我希望它动起来,那实际上你仍然是需要有一个你要编辑它的运动,那你实际上你还是要通过几何的方法来进行编辑。

就比如说他把这个神经辐射场附附着在某种几何体上面,然后去去进行一个修改,那么我认为就几何这个东西就只要涉及到你要输入用户意图,就是输入某种运动目录,这种变化,某种形变好像你就跑不掉。

你就必须要用几何来描述这种运动和变化啊,你很难去描述一个神经辐射场这样一个这么高维的一个,信息的一个变化,所以所以我感觉呃这一部分会啊,这个几何肯定是他是会用另外一种形式被应用到这个ip上面的啊。

但是目前的话我们呃在这方面就是呃,我认为他可能还没有那么快的到应用到游戏里面,因为因为因为一个问题就是nerf的,就是说呃性能它相或者说它的这个制作流水线以及它的性能等等,他还没有达到非常成熟啊。

这也不是说它性能不行,但是他有时候他有些优化的也挺好的,但是就是呃相关的工具也好啊,制作的方法,还有与引擎的整合等等,现在都还在发展的初期啊,所以现在我们也是持续关注以及做相关的研究也是会有的啊。

嗯好你理解是这是一个是他的表达能力,就因为这个一直游戏,它更多的是玩的b c c工具啊,来帮助啊这个美工啊与车厘子来做完成游戏嘛,所以那么这种信息是可能工具链可能慢慢成熟之后,也有可能在那个游戏中啊。

另外一个就算染管线是吧,因为它的渲染呃也会有一些不一样啊,是不是能兼容现有的限量管线,是可能在你们那里可能会有一些同事在进行深入一些探讨是吧,那为了我们这次对对对,我们未来值得关注,好的行。

那个请问也蛮多了哈,这个你看这个引起大家还是信息点蛮多的是吧,那大家还是呃呃那个那个关注你的工具能不能够尽快让大家去是吧,这个受益这个我们有后面来这个在啊利用以后的机会啊,这个深入我们在探讨好吧行。

玩就到这里,好吧好,那我们再次感谢黄少华先生的这个精彩分享,好,那么对,然后从这次分享到同学们也可以看到啊,就是我们前面讲的呃很多传统化的方法呃,在至少在游戏界,在腾讯这个啊工业界里面已经得到大量应用。

在前面课里面都讲到了啊,所以你看到如果把这个这样的话的技术学到手是吧。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果把它理解透,即使可能现阶段没用啊,没有用啊,这个词时用,但是呢未来可能在后面这个一些处理方法处理的这些任务啊,我的需求里面可以得到很大的发挥,所以这个啊几何的这些东西知识面啊。

可能啊需要更多的一些深入哈,这样打好基础,为以后同学们无论是网工业界还是网页设计,这是有很好的帮助行,那就今天的这个课程就到这里结束啊,明天是301课程的最后一节课啊,在明天的课上呢。

一个呢就是三维扫描啊,就是如何通过结构光扫描点云点云重建网格啊,中间就会有好多这种网格重建啊,就是跟唱的话非常相关啊,另外一个应用呢就是这个工业cad cae这个一体化啊。

就是怎么样这个让cad和sc e这个一体化呢,中间有一个网格化,那么如何规避网化呢,一些一个参量化就是提倡化的一个应用啊,所以明天会继续再展开两个方面的应用啊,之后呢我会做个课程总结好行。

那就今天的课程到这里结束好。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那明天上午十点准时相见。

GAMES301-曲面参数化 - P15:Lecture 15 参数化在产业中的应用(2) - GAMES-Webinar - BV18T411P7hT

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

好啊,时间到了啊,各位games啊,同学啊啊今天是我们game 301这个课程的最后一节课啊,这个时间过得很快啊,七周我们在今天呢把这课最后一部分内容讲完啊。

今天呢仍然会继续讲一下参数化啊在产业中的应用啊,昨天啊腾讯这同事啊讲一下这个在游戏建模中的应用哈,得到大家非常广泛的一些反响。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

好那么今天我们仍然会在另外两个工业中的应用啊,第一个是三维扫描啊,大家知道这个怎么重构一个三维场景,有很多方式是吧,这个啊三维视觉啊领域和同性学领域呢,呃在对这个从多试点图片啊重建做了很多研究啊。

就是人们希望呢这个啊从对一个物体啊,从不同的角度去对他拍照啊,通过这个照片呢,然后得到这个三维的这个信息啊,这个点名跟那个纹理的信息啊,那么这个呃这背后呢这个原理呢就是有一个小学科叫多试点几何啊。

这个啊它的原理实际上是呃图形学里面一个投影变换啊,以及这个特征点匹配,就是说如果你知道两呃,这这是两个相机拍一个呃场景是吧,如果我知道了这两个图片中间的某个对应点关系,那么通过这个对应点关系呢。

以及这个相机的外参跟内参呢,就能求出这个对应点,这上面对应点跟二维像素之间的一个啊矩阵变换啊,所以如果你有很多这种对应点呢,就能构造出一个啊非常多的这个方程啊,通过这个这个求解这个最小二乘。

你和这个方程的求解呢,就能够缓解出这个x啊,这个我就不详细介绍,在电视102啊有非常详细的这个介绍,那么还有另外一种方式呢,就是这个在业界呢叫结构光扫描,那么它是通过一个相机拍一个场景。

另外呢我通过一个投影仪主动的打一些这种光斑或者叫pattern啊,这个光可以横一条一条的,有些女的死的时候,这个这个间隔呢也有变化,这样的话呢就通过这个这个打着光的这种啊光的一些特征呢。

以及这个图片呢就能够主动去找的特征点,以及重构出这个三维中的这个点的坐标信息,所以由于跟前面那个不一样,前面那个是两个两个相机拍,这是一个相机加一个这个这个主动式打光。

所以这个在业绩呢也要主动是这个三维扫描好,那么今天很荣幸呢就邀请到了啊仙林三维科技股份有限公司啊,这个做了非常好的产品跟很多算法,那么今天邀请到了这个他们啊解除处理与网络处理的一个算法主管啊。

加严明先生来跟大家分享一下这个在三维扫描中啊,这个参数化者的一些应用,好呃严明也可以开始了嗯。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ok那感谢刘老师的介绍,也非常荣幸有机会能在电子平台分享一些自己的经验,那么下面呢由我来给大家介绍一下参数化在三维扫描工业中的应用。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这是本次报告的内容,那么我首先来给大家介绍一下三维扫描仪,这个可能有很多同学是第一次听说3v321 。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那我们首先来看两张图,这个左边这个图呢是一个人拿着一个手持式三维扫描仪,然后再扫一个小姐姐,然后这边呢是我们的软件看到它实时扫描的画面,然后右边这个图这个蓝色的是扫描得到的网格数据,然后贴上纹理之后。

就是这个大的数据,那么我们可以来概括一下三维扫描仪,它的功能就是通过不同的视角扫描物体,来获取一个完整高精度的物体表面信息,那么他是怎么样做到这件事儿的,它的基本逻辑。

首先是由二维图像获取一些深度信息来重建这个三维点云,然后接下来呢由这个三维点云来获取一些这个点云的未知信息,将不同视角的点云对齐到同一个坐标系,借此来重建这个完整的物体表面,那我们稍微展开讲一讲。

就是如何获取深度信息,这个是通过多相机加结构光来实现,那么刚刚刘老师也讲的,那我们来稍微详细一下讲讲。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那首先来看这样,有一张图,一张照片就一个人坐在这个房间对面的椅子上,那么这样看就没没有什么问题,那么我们让这张图动起来。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ok我们会发现,最初我们在图片中感知到的这个场景和实际场景其实是有很大差异的,这个原因呢就是因为这是一个视频视频,它是由单个相机录制的,就类似于我们人眼的话,闭上一只眼睛,单眼来看。

那么我们大脑的基于经验判定出了一些深度信息,这些深度信息是不够准确的,导致我们出现了这样的错觉,ok那么我们已经看到了,如果只靠单眼是无法准确的判断深度的,那么我们人是怎么解决这个问题呢。

我们人类进化出了两只眼睛,两只眼睛由于有不同的视角,刚刚刘老师的那个图也大家也能看到,由于在不同的视角观察,大脑处理不同视角的图,那么就获取了这个深度信息,那么两只眼睛的人相比于一只眼睛的人。

他在这个现实生活中生存就有非常大的优势,那么经过进化,我们可以看到不支持人类,大部分大家能见到的动物都是两只眼睛,那么所以说这个多项机,就我们就是通过这样能够获取多视角的方式来重建物体的深度信息。

然后另外另一点就是结构光,节目光就是说我们大脑在获取到两只眼睛的途中,之所以能够恢复出深度信息,是因为它能够在两张图中找到对应的,我这个看到的是同一个物体,那么对于计算机而言,这个事情不是那么好做。

所以说我们通过主动向物体表面投射一些带编码信息的结构光,来创造一些特征,来辅助计算机在不同的相机的图像中找到对应的点,然后这样通过这个简单的几何计算就可以恢复出深度信息。

那么接下来我们拿到了这个三维点云之后,由于我们电源是根据图像加深度恢复出来,所以说这个三维坐标它是在图像的坐标系中的,那么我们要重建一个完整的物体表面,那么我们肯定需要把不同视角的图都拼到同一个坐标系。

那么也就是说我们需要获取每一个扫描视角三维点云的未知信息,那怎么样来获取呢,就是通过特征加一些辅助信息特征,这个就是说我们临近的两个视角的扫描数据中会有一定的重叠区域。

那我们在这个重叠区域的这个三维点中,我们可以识别出一些几何特征,那么重叠区域它自然就有相近或者相同的几何特征,那么我们通过这个重叠信息,就可以获取这两个视角的三维点云的相对位置关系。

那么通过这样连续的计算,那么可以把整个场景扫描的所有的三维点云之间的位置关系都获取到,那么这个时候我们就可以把这个所有三维点云拼到同一个坐标系去了,那么有的情况它只靠特征是不够的。

三位自己比如说我们想要一个强,那么我们就会手动增加一些辅助信息,就和这个头节目光是有点类似的,我们会贴一些编码点,这种在物体表面来辅助我们做这个位置的跟踪。

ok这个刚刚再回顾一下我们这个多相机加节目光的这种形式,就是我们在设计三维扫描仪的时候,会针对不同的适用场景来选择合适的结构光,就不同类型的结构光来选择合适的相机个数,那么基于不同的结构光和相机个数。

那么就会产生很多适用不同场景的三维小玩意。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那我们这里来简单看一下,左边这个是一个手持的彩色三维三一,它头的结构光是散弹结构光嗯,这个具体的信息我在这里不展开讲了,然后投射这个散弹激光之后,他还这里有一个激光投射器,然后这里呢是两个相机。

下面有一个纹理相机,那么这个31000就可以同时获取深度信息加纹理信息,然后它比较适用于这种追求扫描效率,然后又需要物体表面颜色的这种使用场景,然后呢这个这个是一个手持激光散白蚁,它投射的结构光是激光。

这个有什么样的特点呢,它是精度特别高,那么适用于这种工业检测等等这种需要高精度的场景,那我们看到这张图,这张图是一个,这个是一个手机的背板,就是说我们手机一些很多很精密的小零件。

这种都是镶嵌在这个背板上面的,那么对这个背板就有很高的精度要求,那么手机厂商在拿到这个背板之后,就可以通过扫描仪来扫描这个背板,获取这个背板的深度信息,这个整个的三维表面信息,然后呢拿到这个信息之后。

就可以和设计的时候那个标准的cad数据去做对比,那么现在这个图大家看到有不同的颜色,那么这个其实就是这个数据和标准数据的这种偏差,几何偏差,那么这种不同的颜色,比如说这种红色就代表的偏差比较大。

那这个标签儿大家可以看到这个单位是毫米,这个其实精度已经达到10微米的级别了,然后另外这个是一个口内扫描仪,就是牙科诊所的医生,他在给患者诊疗的时候,用于获取患者口内信息的这样一款扫描仪。

这个现在在这个牙科诊所已经越来越普及了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

好的,那我们来通过这个简单的看一下呃,三维扫描仪在日常使用中,它是如何使用,这个是刚刚我们看到的手持彩色扫描仪。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们拿这个扫描仪在不同的角度来拍摄这个模特。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那我们可以看到这个我们在可以通过计算机屏幕看到我们在扫哪里,然后完整的扫描一圈之后,就可以生成这样一个带纹理的完整的人体模型,这是扫描的使用,那我们更关注算法嘛。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那我们来看一下计算机中这个它的形态是什么样的,那么这个现在给大家展示的界面是这个牙科诊所的那个医生,他们用的口内扫描仪的配套软件,这个左上角这里是相机拍到的图像。

那我们可以看这个随着这个口内31000在患者的口内移动,那么患者的口内数据被一点点的恢复出来了,就这个获取过程是非常快的,ok这样扫完一圈之后,那么这个患者的这个整个牙和信息就有了,那我们再来看一遍。

我们可以看到就是当前扫描的针是一直停留在屏幕中间的,然后呢同时这个牙和会拼到一个合适的位置,让医生知道诶,我现在在扫这个牙齿的能力,以便他自己能够知道,我接下来这个扫描仪在患者口内要向哪个方向扫描。

ok那么通过上面的视频呢,我们就看到了三维扫描仪软件呈现给我们的这个三维扫描的工作流程,那就是其实说白了就是我们随着这个三维扫描仪,在物体表面上逐渐的移动,那么物体表面的信息就逐渐变得完整。

那么移动完了也就扫描完了,那么接下来呢我就给大家介绍一下这背后的算法逻辑,回顾一下刚刚讲的基本逻辑,我们是通过这个多相机和结构光来重建三维点云,然后通过这个三维点云的特征和一些辅助信息。

来获取这个典型的未知信息,然后进而重建出整个表面的,那么后面这个对应的算法流程呢,首先要做标定,这个标定是什么意思呢,就是我们是多相机加一个结构光的投影机,那么这种情况下。

这个相对位置关系就是我们重建深度的关键,那么这个相对位置关系怎么来的呢,其实就是标定来的,我们通过相机拍摄一些预设好的一些一些图像,来计算这个相对位的关系,然后拿到这个相对位置关系之后。

我们其实在辅助结构光就可以做结构光重建,那么就可以获取到相对电源,然后拿到三维点零之后,就要做位置跟踪,这个位置跟踪呢,其实就是刚刚大家看在那个口内扫描仪的软件界面上看到的。

我们要知道这个单帧点云在全局它处于一个什么样的位置,这个也是根据这个前后的前后帧之间的这个重叠区域,来计算它的这个相对位置的,然后如果未未自跟踪,这里没有什么误差,那么其实当我们扫完之后。

跟踪出所有电源的位置之后,就可以直接进行点击网化,但是这个往往是不够的,为什么呢,因为我们刚刚看到讲了v字跟踪,它是根据两针之间的重叠区域来计算一些三维的特征,然后根据这个特征来计算相对位置的。

那么这里就会存在误差,那么假设想象一下这样一个画面,我们去北京扫一个四合院,我们去扫这个东南西北这这个顺序去扫这个墙,那我们从东墙开始一帧一帧,根据这个相对位置一点点恢复这个电源的位置。

那么我们扫到难东南西北,等我们再扫回到东墙的时候,我们会发现这个根据位置跟踪算出来的这个这个位置,你这个心扫到了东墙和最开始扫的东墙已经差得很远,那么这个时候就就这个就是说所谓的累积误差。

那么这个累计误差就让我们无法准确地获取这个完整的网格信息了,那么我们怎么样来解决这个问题,就是通过这样一个点云全局注册,这个相信大家对同学的了解应该有听过。

这个就是我们把所有的这种扫描战争统一放在一起来,一起建立一个方程,来一起优化这个东西,然后获取一个相对准确一些的位置,然后这个时候拿到所有的单针点的位置之后,那么他们在同一做标系,我们就可以进行文化。

ok至此,那我们刚刚基本逻辑提到的第二点,这个重建物体表面就完成了一半,为什么呢,因为物体表面除了有几何信息,还有纹理信息,那么还有后续的处理,那么我们拿到这个网格之后,要对网格做一定的处理。

比如说做一些光顺,优化一下网格的拓扑结构,然后做一些简化等等,让这个网格所表示的几何信息能够更好地适配管理信息,然后接下来呢我们要恢复这个网格表面的纹理,这个我们管它叫纹理融合,然后是视情况。

我们可能会对这个纹理融合的结果做纹理的参考,这个我们后面会讲,然后对参数化得到的这个结果呢,我们有一些特定的产业应用,会会以这个参数化的结果作为输入,ok那我们接下来主要来讲这一部分内容。

首先看文理融合,这个其实就是我们怎么样给这个三维扫描得到的这个网格表面,来给它贴上正确的纹理信息,那么首先呢我们刚刚扫描得到了一个网格,同时我们还会得到一个带位资的多个角度的纹理图像。

这个那么这个纹理图的位置是哪里来的呢,刚刚我们说了,我们点云通过位置跟踪能够有这个点云的位置信息,那么我们的设备上有负责扫描电源的相机,也有负责扫描纹理的相机,那么这两个相机我们刚才也讲过。

有我们有个标定步骤,我们标定是获取了这两个相机之间的相对位置关系,就是其实是一个旋转平移矩阵,那么这里我们有了点圆的位置,加上这个相机之间的关系,我们就有了这个纹理图的位置。

那当然现在业界也有直接根据纹理特征来做v字跟踪了,这里就不展开讲了,然后呢有了这两个信息之后,我们对网格上的每个面片,根据这个面片的位置和法向信息。

还有各个纹理图刚刚的位置信息来选择这个面片的最佳纹理图,这里选择最佳纹理图不只是选择某一张图,它可能还涉及到这个多张图之间的这个亮暗平衡,它的零件信息也可以用来辅助计算这个纹理。

那么这里不展开讲这部分内容,然后得到这个最佳纹理图块之后,我们把这个图块排布到最终的纹理图中,那我们就得到了这样一个信息。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

有一个带纹理坐标的网格,这个纹理坐标其实就是这个这个面片或者点在纹理图层的位置,然后有一个刚刚我们说的图块排布的这样一个纹理图,我们管这个纹理图叫分块纹理图,自此呢这个扫描的纹理信息就已经恢复出来了。

那么这个时候就已经可以在一些三维场景中做显示了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ok那我们刚刚提到的这个分块纹理图,它以它在后续的应用中会有一些问题,那么首先看到的优点,优点其实就是速度快,因为我们在文理融合的过程已经把这个图计算完了,那么我们在不做额外处理的情况下。

就没有什么额外计算量,所以说就那么速度其实是在工业界非常非常重要的一个指标,我们可以看到大部分的这种三维扫描厂,他们产生的这个纹理的网格的纹理图基本都是这种形式,那么它也有它的缺点。

首先就是纹理图是碎片化的,就是看这是一块一块的,做一些语义分割啊这种类型的东西,那么这个分块的纹理图它就会破坏这个语音,那么会导致这部分算法就不能不是那么好用,然后另外呢就存在一些冗余信息。

那么可以看到这个耳朵区域,这里不光这里就能看到三个,然后另外呢就是这个网格分片,这个这个相接的纹理坐标不唯一,就是我们不同的图块,它在网格上的一个交界的地方,这个纹理坐标部位一。

那么会导致诸如这种纹理编辑啊等等这个场景,这种算法的复杂度会提升,那么也是不方便的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

所以呢这里就涉及到参数化,我们会尝试对这个网格上面,这个已经恢复出来纹理信息做这个参数化展开,那么使这个网格上的纹理信息,能够建立一个与二维纹理图上的一一对应关系。

那么这里之前在这个傅老师在第六讲的这里已经讲过这部分内容了,有兴趣的同学可以去关注一下,ok那我们来介绍一下这个纹理三文化在这个工业界的这个应用,我这里准备了三个三三部分内容,来。

希望借助这样的这样三个场景来给大家介绍一下,这个让大家对三维扫描工业对策化的应用有一些了解,那么首先是艾特的生成,阿s的生成,这个付老师刚才已经讲了,这两其实之前已经讲了非常详细了,就是做at的生成。

是为了获取一个这个从模型空间到这个纹理空间的一个映射,然后呢在这个过程中我们可能会做非常多的事情,比如说我们对这个网格要做切割,然后对这个切割下来的这个部分要做这个分片的参数化。

然后最后呢我们还要对这个策划的结果做一个packing,就是我们会排布这个一些,那么对于这种就是在分割的时候呢,我们可能分割的目的就是说希望这个网格在展开的时候。

能够消除这种像这样的overlap这种重叠的问题,然后peking的时候呢,我希望提高这个排布效率,这些都是一些比如说类似游戏场景,它非常常见的这种需求,就是对于这种游戏场景。

他们需要大存储大量的纹理图,那么你的这个纹理图占排布的比较好,那么它占用的空间就比较小,那么就会提升你这个场景加载效率,诸如此类,那么这部分回顾完,那我们来看一下对于三维扫描这个产业而言。

它的对二次生成这里有什么样的需求,那么相比于游戏产业呢,这个我们对p就是这个peking efficient的要求就没有那么强了,因为相比于纹理图,就是三维工业扫描扫到了那个几何数据都是非常大的。

它动辄就会有几百上千万的面片,那么这个是它的存储是远大于纹理信息的,那么同时呢由于数据量大,所以说我们对这个计算效率有着非常非常严苛的要求,但是呢计算追求计算效率。

同时呢也不能够就是摒弃掉这种基本的要求,就是我们要求整体的扭曲小啊,这些在付老师在之前课程也都讲过。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这里有诗,为什么,ok那这是一个简单的例子,就是我们这样一个这个蜘蛛侠的模型,然后它扫出来的纹理图的展开。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ok那我们来看一下,就是具体的工程化细节,就我刚才也强调过了,这个工业界对这个处理效率有非常高的要求,那么我们在除了选择更快的这个网格分割参数化方法外,就比如说我们可以先通过网格简化。

把这个网格先简化到一定的面片,减少它的输入数据的数量,然后呢对这个简化后的网格做这个网格分割,然后分割之后呢映射回原网格之后,再做这个分辨参数化,那我们来看一些简单的细节,首先就是网格简化。

大家可以看到这个左图,这里是一个就是原石刚刚扫描出来的数据,这个是通过这种提速的这种影视影视场的方式生成的这个网格曲面,然后加了一个这种各项异性的崇文化,来突出这个二楼区域的细节。

那么这里为什么这么密呢,是因为这里需要这个表面尽可能的光顺,所以说你需要足够的点才能够表示这个光顺的局面,然后那么我们会把它简化成一个非非常就面片非常少的状态。

然后这里其实用的是qq m简化这个q简化呃,相信可能有些同学有了解,其实他就是通过在网格上做这个边塌缩,然后通过这个点到距离,点到平面的距离这样一个度量来控制这个探索的过程,然后来对网格进行简化。

就是q m它是每次选哪条边境,他说他是选择这个对点到平面距离影响最小的这样一个边,来做做压缩了,做这个他做了,那么我们这里去除了这个排气过程,我们给给定了一个点到平面距离的度量。

来作为一个阈值来快速的做简化,然后同时呢在简化过程中,我们也记录了这个这个简化中这个细网格到这个粗网格的错格,到细网格的这个应试关系,然后用于导致我们简化分片之后,将这个分就是分割的结果映射和原格。

接下来是网络分割,就是在简化后,我们对这个简化后的网格做分割,用于作为参数化的输入,那么主要流程呢就是选择这个一些种子面,然后对他们进行这个l lol的这个迭代分割,那么在迭代过程中。

我们定义这么几个迭代的目标,首先是这个分片内的可燃度要高,那么我们对于每一个分片,比如说我们希望这个分片它是可展曲面,那么我们定义这样一个圆锥面去,比如说这样一个圆锥来,你和这个当前的这个分片。

那么当我们拿到一个新的面片之后,我们新的面片这个法向和这个圆锥的这个这个转线的这个夹角,作为这个一个约束,如果你大于这个值,那么我就不把你纳入到这个分屏来了,然后同时呢我们希望分片进行的规整规整。

其实就是为了减小这个割线的长度,然后呢这个规整这里也放了一个非常好计算的这样一个量,就是说我们通过这个新来的面片到这个种子面片的距离,然后和这个当前分片的面积的比值来做约束。

然后另外呢我们就希望这个边界也尽可能的平缓,这个公式中这个还alter是这指的是分片这个边界的这个边的长度,然后这个inner呢是这个内部这些方方面面的这个边的长度,然后通过这样带约束的一个迭代。

那么我们最后就可以把这个网格分割开。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后呢就可以做这个分片单化了,这个具体参数化方法就是我们的课程已经讲的非常多了,我们在这里不详细展开,其实核心还是一个需求,就是说工业界对速度要求非常高,所以我们会选一些速度非常快的这种分别采访的方法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后除了选择方法之外,这个有参数化方法之外,这里我们其实对分割也做了一些要求,就是呃其实是一个并行的要求,就是我们希望这个分割出来的这个块能够大小尽可能的接近,为什么有这样一个需求呢。

就是说我们在计算的时候,一般是会做并行的,会把这个分片之后的参数化分配到不同的cpu核心去计算,那么当这些块的大小比较接近,那么它的定义效率就会比较高,那么像下面这张图,它有一块比较大,有一块比较小。

那么当你这些小块已经计算完了,那你这些大块,那么你就只能在做这个片内的并行,那么这个片内的并行效率肯定是低于偏见进行的效率,ok,那么到这里呢就完全介绍了这个x生成工业界对它的这个速度的要求。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

以及我们对这个速度优化的一些一天努力了,然后接下来呢给大家介绍一下,有了这个参数化结果之后,我们这个可以做哪些应用,我们来介绍一下口腔辅助诊断这样一个先介绍一下产业背景。

就是我们之前大家都去可能会去牙科诊所做过这个牙齿的检查,就即使没去过诊所,体检的时候也做过,那么传统方法其实就是医生拿一个这种口腔镜直接伸到你的口内,然后通过这个镜面来看一下你的牙齿哪里有没有问题。

那它存在一些问题,比如说这种特定的角度比较难观察,比如说你的这个牙齿,这个这个后后面这个就指它的这个外侧,这个和牙龈和这个你这个贴在一起的,很很很难看到,然后另外呢就是你如果做一些治疗。

那么前面和现在就是你上次治疗和现在治疗你到底有什么变化,这个是很难直观的记录,只有一个病例上的一些文字信息,然后那么现在呢很多牙科诊所已经开始用这种数字化的方法,就是用这种三维模型来辅助治疗。

那么就是通过这个三维口内扫描仪,刚刚我们视频也看到了,能够快速的获取这个上下患者口内的信息,然后呢拿到这个三维模型之后,医生就可以去观察,这个其实是没有什么死角,只要你扫到了,他就可以观察到。

然后另外呢就是你在治疗过程中,这个是全记录了,比如说我们要去做一个正畸,就是要把这个排一下这个牙齿的排骨,那么你的每一个疗程,你的牙齿到底是什么形态。

你都可以看到医生也可以根据这个变化来及时的调整这个治疗方向,ok那这个传那这个口腔辅助诊断了,我们就会检查一些口腔的问题,那这个检查过程呢其实就是先来扫描口腔数据。

然后医生对这个三维模型进行观察来做出诊断,然后给出这样一个诊断报告,那么我们这里参考应用其实主要针对这两方面的,那传统的这种观察方式就是医生扫描模型之后,他在这个三维场景中拖动这个模型,然后做观察。

然后在不同的角度去截图,说你这里有什么样的病变,那里有什么样的病变来生成这样一个报告,那么这个过程其实是比较比较耗时的,那么我们希望做的事情呢,就是说通过将网格表面做参数化展开。

拿到这个参数化展开的纹理,在这个二维的纹理图中,来提供一个初始的判断结果,这样可以加快这个医生的这个效率,让医生能够看更多的患者,ok那我们为什么要在这个参数化的这个纹理图中做呢,它有一定的优势。

目前还不够成熟,这还没有达到这个业界应用的这个要求,那么另外呢就是医生是通过多角度来看的,那我们也想过用多角度投影这种方式,那么这种方式的问题就是会有一些遮挡,因为牙齿和牙齿之间这个牙缝。

有的时候你需要一个比较合适的角度才能看到,那么对于自动化来做,你就需要更多的角度,那么就会带来冗余问题,然后呢所以参数化展开到平面就不会有这个问题,那么同时参数化展开之后,它还有一些额外的优势。

比如说我们可以通过这个调整参数化的方法来突出一些重点区域,好的,那我们来看一下这个我们的参考目标,首先就是不会进行分片,我们希望这个映射下来是一个完整的这样一个那个区域联通玉。

那么原因呢刚刚我们讲那个分块纹理图的时候也说过了,这个其实是为了不破坏语音信息,因为你这里做分割之后,你很有可能这个区域就就被破坏掉了,这个寓意,然后另外呢我们希望有一个需求,就是控制不同区域。

就是网格上的不同区域在这个参数空间的面积,就是因为我们比如说检查病症,有的时候你可能需要去看一下我牙齿上有没有什么问题,有的时候呢可能要去检查牙龈有没有什么溃疡啊之类的,那么这个时候不同的目标区域。

那么我们希望它能够就是我们要检测的目标,它能够在这个纹理图上有更大的面积,然后我们也能够得到更快的结果,然后另外就是不变的追求,就是计算速度快,那么其实因为我们一个算法开发出来之后。

要给成千上万的用户使用,你这里优化节省一些时间,那么整个对于整个这个社会产生的效益非常巨大的,ok那么我们来简单的因为时间关系,我们简单介绍一下这个这个应用,就是说其实引入一些控制点约束。

就是通过这个控制点来重新调整这个参数化的结果,让这个我们目标区域的面积更大。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个方法我们就不展开讲了,然后类似这种我们可以让这个人脸展开的时候。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

它的这个人脸的扭曲尽可能小,ok最后最后就是这个纹理编辑,纹理编辑呢这个其实还是一个未未完全解决的问题,就是我们希望这个有的时候牙医会在这个牙齿上做一些标记标记。

然后那么我们希望这个这些标记在展开的过程中扭曲尽可能小,比如对比下面这张图,这个边界可能扭曲比较大的,但是中间标记这个区域扭曲还是很小的,那么这个我们也尝试了一些方法。

但是现在这在这个无压盒上能够取得这样的效果,但是有牙齿这种复杂的情况可能就不太好处理,那么后续呢我们也会继续深入的去研究这样的问题。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我给他总结一下,我们今天先简单的介绍一下这个三维扫描仪基本逻辑,然后呢又展开讲了一下这个三维扫描流程设计的算法,这个纹理信息是如何获取和存储的,然后呢我们又介绍了一下x生成这个在工业界。

在有追求效率的情况下,是如何对它进行优化的,然后另外呢我们又结合这个口腔医疗领域的应用,给大家介绍了不同参数化方法的这种使用价值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ok我的介绍就到这里了,谢谢大家好,谢谢严明的啊,现在分享哈。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

行看看呃,同学们有没有什么好,这里有个问题诶,那个呃在做重建过程中是通过标题来找到点的坐标,那时候还没有网格,是先做餐的话呢,是点云做餐的话呢,还是呃还是先有网格在做长的话,它的顺序是一般是什么样。

这个顺序其实是先做标定的时候,其实不涉及到三的话,就是我们标定其实只是为了获取不同相机之间的位置关系,然后这个是用来重建深度的,那么这个重建深度获取点云,然后把所有的点云拼接到同一坐标系之后生成了网格。

然后我们会在这个网对网格做参数化展开,ok就这点,于是先不是给你上的话,是网格成型后再去做那个菜的话,然后再做纹理是吧,嗯嗯好,这是一个,还有一个有个网友挺挺有意思,他说开始你介绍很多生物是两个眼睛。

因为具有时差嘛,就有人定为三定位深度来感知三维空间信息,嗯他的问题是很多动物这眼睛只能看一测,比如啊就比如一些禽类,老鹰啊,马是不是也这样啊,我不知道,就是他这个眼睛只能看一边。

就他们两个如果视角没有重叠的话,没有重叠的话,其实就像我刚刚最开始展示的那个图一样,就是那个小视频一样,就是你只能用大脑靠一些经验性的信息,因为这个从原理上我们是知道的,你只有一张二维图的话。

你是从原理上就无法获取深度信息的,但是我们大脑其实是会有一些积累的,这些信息可以给我们大概估一个深度,就是对,但是如果你没有重叠区域,那肯定是不能获得准确的深度,ok嗯对行。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个这个是一个这个挺有意思的,就是不知道生物它那个两个眼睛虽然长在长在两边,那是不是那真的是没有重叠的思域啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个还未知对吧,是只不过我们看他的眼睛是因为他的像老鹰的话,这个眼睛是一个鹰眼鹰眼,他那个这个apple v非常大是吧,可能会有重叠,这个不知道啊,假设没有重叠的话,这边左眼看一边,右眼看一边。

它的三维感知是个什么原理,当然也不是我们这个课来解决事情啊,这个你问到这个事情挺挺有意思啊,还有b站还有一个问题,扫描中遮挡区域如何处理的,就是遮挡区域。

遮挡区域其实就是我们通主要还是通过移动扫描仪的位置,因为我们刚刚看到了这个扫描仪其实都是手持式的,你可以调到一个没有遮挡的区域,如果有遮挡,那么只有弹幕的情况下,其实也是有一些方法来做。

但是这个方法它的精度相比于双目就没有那么大的优势,就我们会有有些时候会尝试用弹幕来做嗯,ok好,还有一个问题,这个扫描牙齿的模型啊,这个如果top不等价于圆盘的话,该如何处理呢,可能是个复杂拓扑。

像这种呃带动啊,带带带这种秉着这种物体这个流程里面,刚刚我们也说过了,就是我们在做这种纹理相关的东西之前,会对网格先做一步处理,就是网格化之后,它那个网格可能会有一些问题,那么这个呃另外拓扑不等不不同。

配圆盘,这里可能还要做一些切割,如果如果是正常来说,我们会先对网格做处理,把这里的一些洞先补掉,然后一些这种类似高配合这种情况,我们会先预先处理掉,一般来说比如说拿牙齿来说。

我们扫描是不太会扫除这种高规格的东西的,嗯好行,那个b站没其他问题呃,我这里有一个问题,也是探讨型或开放式的,就现在三维重建走那个传统的mv s这个多吃点啊,这个是传统的这个3d视觉图形的这种啊。

基于流行结构来重建呃,这2年呢比如另外一条线,这个上次在县里也探讨过,就是那个基于这啊影视题表达的懦夫为代表的是吧,就这种来重建呢,它们背后是不是呃同样都需要有个标定的坐标啊。

标定的那个相机正确才能做好,否则的话是不是都会有问题,这个你们是经验是什么,或者能给一些建议吗,啊这个是的,勒夫现在它是需要就现在就能理解它是需要这个你给定图片,它的有位置信息的。

就是有相机标定信息对吧,就是对,因为他输入的不同图片嘛,然后后或者视频流,那么它是有这个信息,要不然的话他会用一些可买不起,如果如果这个这个相机标定或者是外外参是不准确,你重现出来就是模糊嘛。

就它它不对嘛,应该是会的,因为我们在扫描的时候,其实就会遇到这样的问题,当你这个标题不够准,那么你呈现出来的东西它的精度就会有问题,有问题哈,嗯好好行好,那个时间有限,我就不展开了哈。

这个呃今天严明也给了一个非常好的呃全面的介绍啊,介绍了三维就是参数化的三维工业啊,三维扫描工业中的应用啊,特别是在牙科这样一个具体的应用过程中,好那我们就呃再次谢谢闫明,好吧好,那我们课程好好,谢谢好。

那么我们就继续课程啊,时间过得很快,然后呃呃刚才呢这个呃人民介绍了一下这个参数化,在这个三维扫描工业市场上的参数化呢,在只要涉及到几何的一些问题中都会有啊应用。

就像我们在第一节课开始就指出商业化是几何处理的一个根基数,因为它是所有支撑重建啊,传统化啊,那个还有不动啊,修复啊,去造啊等等的一些基本的技术,所以呢它不仅是在这些我们看得见的这样一些这个产品中。

而且在一些软件产品中应用非常广泛,好我下面再介绍一个这个一个非常重要的就是在工业软件中,工业产品制造呢同学们在如果听过102,应该有一个初步的认识,就是一个工业工业软件为什么很重啊,很重要哈。

这个工业产品比如一燃气车车身怎么出来的,它中间是一个非常复杂的一个流程啊,从这个车身的形状啊,这个外形用什么样的数学函数去描述啊,这设计师是怎么来设计这个汽车的外形,这个产品的外形。

所以它有概念涉及到几何设计,几个设计就是这个叫计算机辅助几何设计,来表达这种精确的这种曲面,当然你把它离散就可参加网格了是吧,然后之后还有分析,还有制造到后面装备好,所以它的流程这个整个工业。

那么其中这个虽然流程很多哈,但实际上是现在随着计算机发展就很多,就把它电子化了啊,就很多都是用计算机辅助来做,所以就出现了很多计算机辅助啊,什么东西啊,比如我们这个设计历史上都是在七八十年前啊。

你可以看到这是波音公司,当时啊波音公司早年这设计都靠人啊,这个这个人在纸上去画这种飞机的外形啊,可以看到这个工作量特别大啊,最难的就是协调好吧,这么多人涉及到几十甚至上百上千人的这个协调。

这个这个每个人只能画飞机的这个一部分啊,那么那么怎么把它拼起来啊等等,那么随着这个计算机发展,就这些东西就慢慢慢慢用计算机辅助来做啊,可以看到工业软件这么庞大一个体系好。

我们cad cae和cm也就占占这么一小块啊,当然还有好多什么管理软件啊,还有这个啊全生命周期管理这个工具啊等等啊,那我们呃今天呢是不可能有详细展开这个。

看未来有没有可能再开一门3t的课来专门介绍cad,那么今天我就呃稍微稍微稍微过一下啊,cad就是怎么去啊,把这个外形给它表达出来是吧,虽然我们啊102在讲过那个nov啊啊更多是离散的。

但是那不是作为一个工业标准,他这个表达一些这种光滑曲面啊,像这种啊高阶连续的光学面,实际上是叫做现在是成成为工业标准,可以看到怎么表达,还有这这种复杂的这种发动机呀,这种设计啊都是有很多方法啊。

所以作为一个cad软件这个内核啊,有一个造型引擎,还有个计算引擎,当然除了这些之外,还有这个用户界面,你可以看到一个这么复杂的一个工业产品的汽车为代表,里面有数万甚至几10万的一个构件啊,每构建之间啊。

这个什么表达怎么样一个配合都是一个非常复杂的过程,这呢仅仅仅是只有外形啊,还有呢功能功能什么呢,这种器件运动起来以后呢,哎你能不能满足力学温啊,这个热血这个做要求啊,所以需要去做分析。

那分析的过程呢就是一个产品设计好以后,我拿拿这个例子来说,做拉伸物体来做例子啊,就这个是一个啊衡衡量啊,那中间如果这里放个重物,那么这里这个这个力跟旁边的力就会受力是不一样的,这个叫应力是吧。

那么这个东西怎么来算呢,背后实际上就是这个这个叫力学对力学的告诉我们诶,这个物质在受力情况下里面的这个应变应力会发生什么变化,那他做的过程中呢,是要把这个这个实体啊进行一个跑分。

因为它本质是在求解一个pd叫偏微分方程,因为所有力学到最后的数学表达都是一些这种啊偏分方程来表达,所以你就对这个啊体来做这个平方的求解啊,这个力呢就作为一个外界条件好,那么这个实体呢就作为一个求解域。

那么你出去意思是一个连续的不好求,所以它就要把它离散成网格,所以你去看到这个网格剖分就怎么把一个这个这个体啊,婆分成四面体啊,是一个非常重要的一个工作,有了这个以后,就把这个空间离散成了一些呃点线面。

这时候就在点上去求解那个pd就可以得到它的c d的分析啊,这个啊这个主要方法就叫有限元好,那么你可以看到那个一个这样的体啊,给定它的物理参数,物理参数是由这个弹性模量还有普通比来描述以后呢。

你就可以对它进行操作,它这个变形就可以很很支持的把它刻画出来,像这个材料啊,赋予一个橡胶这样类型的这个物理参数的话,你这样一直拖着的话,它就会这样变形,它就变形。

就非常像我们真实的这个物质的这样一个变形啊,就力学就这样慢慢描述真实物体如何变形的这样一个学科啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

好那么你可以看到这个呃一个呃汽车有那么多部件,每个部件都要去做这个仿真,反正刚才我是举这个例子是例,但那只是d这仿真还有呢还有温度啊,热量啊,仿真像比如发动机在高速旋转,他要发热发热的过程中。

它的热量是怎么传播是吧,会不会导致这个部件啊,会物理特性也会发生变化等等,所以背后的热啊力啊,甚至持啊电啊等等,多一些仿真,你仿真之后才知道这个汽车正常运行起来之后的性能。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么信任完了以后呢,就是啊分析完以后就可以做这种啊虚拟的碰撞实验啊,比如这两辆汽车啊,各给定边界条件,比如速度撞击的位置和方向,那么就可以模拟出这个撞击后的这个各个地方的一些变形量啊,还有这个应力。

特别是对驾驶员乘客的一些冲撞的这个损害程度等等啊,到到这一步呢,基本上这个设计呢就呃c e就就分析完了,如果这个不满足这个这个功能要求,又得返回去修改,cad就是模型,这个模型可能形状不够好。

这个厚度不够厚啊,需要反馈给cd人员,所以cd员根据这个反馈呢又得去修改,修改完以后呢,他又这个c e的人员呢又得去做这个分析,又得去做模拟仿真,再看这个结果好,这个两边就要经常的迭代啊。

因为因为做设计的一批人都说做c e工程,一批人呢是两批人啊,就这个沟通成本非常高啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

最后啊这个验证成功以后,那么制造出来以后啊,就要做征集实验,因为毕竟这个无论力学,到底真实情况是不是像你仿真的那个样子,还造成一个整车之后,还要把这个真车做真实碰撞。

来来验证你这个啊它的安全性是不是满足了这个这个商业化的要求啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

所以啊这里面就整个流程是非常复杂好,那么我们再看前面啊,我们这个整个背景有了好,其中有一部呢就是刚才我提到就cad的这个形状跟那个pd求解c e啊,中间呢是要不断的去迭代,为什么呢。

这个不满足我就去修改形状外形啊,那么这个外形送到这个求解之之间呢,要什么要把它离散成网格好,那么他不满足要求,要求你修改,修改完以后,我要去网格网格化啊。

然后才才能去求解那个有限元的pd这个这个这个求解,而这个量呢是80%啊,中中统一就是这个怎么生成一个三角网格啊,就称别是体网格,这个这个计算量非常大啊,所以在传统的话就这两两个迭代是非常非常慢的啊。

造成这个可能工薪延时啊,这个这个这个成本剧增啊,那么在20005年啊,这个呃美国的三个院士啊,hills tom hughes啊,就就诶他就提出一个想法,这个外形并不是离散的。

也就是说我后面的pd呢以前是离散成很多小单元,把那个就像我们参数化这个课上讲的前面两个方法,一个是离散型,一个是连续性,一旦竞争的意思就是我用很多小的单元去逼近一个复杂的函数,那么我在求解pd呢。

就在这些小单元上去求解,因为每个小单元上是一个线性函数,所以用分类线形来逼近一个复杂函数,我只要知道这个这个解在这个小单元上的一个现金的这个性质,我整个拼起来就得到一个复杂函数了。

当然还有另外一种方法对吧,就陈文杰老师讲的,就是诶我直接用这个连续性表达达我的这个求解空间啊,我能不能就直接拿拿这个啊基函数啊啊,来表达这个啊边条基函数能表达后面的解。

而这样的话呢就不至于去要做离散化了,上次这个思想上早年很就有了啊,只不过他把这个思想用到了这个c6 和c变成了一体化,同样用来求解背后c e这个p d e啊,物理物理特性的求解。

这时候呢我只要在这里去做一个迭代,就就不要去涉及啊这个啊这边cad的这个呃这个从网络化啊,所以这个迭代起来就比较快,所以这个提出来这个概念叫做等几何分析i ga啊,就是只想把cad跟c一体化。

那么从我们这个课的观点来看,这个是呃如果这个呃背景有了,马上就可以定义出啊,嗯这个它的一个问题是吧,就是也就是说我我是在这上面去求解一个p d e,我只要有一个定义域,在地域上定义它的一个基函数。

计函数可能是个连续性函数是吧,在成立基老师在前面讲过,有r b f函数,有变量条,有更多调和函数,你就用这个连续函数作为表达去去求解这个预算的那个啊,这个p d e对吧,这个平分方程。

那么这里就有个有个重要问题,你对一个复杂的形状怎么样把它变成一个规整域,这个因为我们变量条是定义在这个张量级形式啊,二维中是矩形,三维中是这种长方体是吧,所以这里就有问题。

怎么把这种复杂形状把它参能化到一个规整形状啊,像比如说这样一个我们拿一个这个鸭子形状啊,是个体,怎么把它参数化到一个这样一个这个立方体或者长方体上面啊,有了这个以后的话。

然后在在这里呢就可以去求解它的那个pv方程啊,或者有些圆好,所以这里就提出一个叫做区域参数化的一个问题啊,就参数化的问题跟我们前面参数化的问题是一样一样的问题啊,就是足够表达方式上面有点差异啊。

那么我们啊我这我重复解释一下,就是给另一个二维的这样一个形状,我们这里拿了一个任意的这样一个形状,一个蝴蝶,怎么样把这个蝴蝶的这样一个区域啊,这个内部区域把它穿透化到一个矩形区域。

这时候在语音区域上面就可以定义定义标一下函数来求解,忽略内部的这个物理场啊,同样对这个体,我们把它参数化到一个张量积的这种立方体或者长方体上面啊,这就是一个参数化问题啊,那么这个两个问题呢。

呃从我们这个课前面,如果同学们啊能够了解到这些基本思想上那些方法都可以用用过来啊,啊这个领域这个做这个事情的二维和三维这个参数化基本上也是啊啊,平行的跟参的化解方法是平行的,好等一下我稍微快速介绍一下。

同样性质也一样啊,那你要做好餐的话,我希望这些里面的这个内部到这个呃蝴蝶这个内部到这个正方形内,内部也需要保持一些性质,这性质有什么诶,要双摄对吧啊,太大扭矩太大太太小。

你你的角度来面积和那个这个这个这个体积要保持是吧,就这些度量跟我们以前都全都学过了是吧啊,只不过它表达方式像哦sogno什么什么,表示我这个等拆线我希望保持垂直,垂直不就是保角吗。

啊保角就是方欣老师讲的那个conformal,就是有保保角性的uniform,进一步就是low redisttion嘛对吧,所以无论怎么表达,自然这个在参化领域里面都有对应的这样一个表达啊。

只不过就是这里强调的是一种变样条,这种连续性的啊,这种表达方式来作战的话啊,这个这个是一个特殊要求,实际上就是跟那个陈振杰老师应该是第一节课讲各种各样的这个啊。

好那么我这里啊这个领域呢呃我请了那个南南航的潘茂东啊,这个博士啊,就呃你已经向其主要方法,我这里不详细介绍好吧,时间有限啊,这个后面还有其他的内容,所以我就大概讲一讲。

就如果我前面那些课程同学们都这个听着啊,这个基本思想有了这些方法,我只要告诉大家对应哪一块,马上就知道哦,原来做i g a中的碳的话,这个基本上就是前面课的内容啊,好我们讲第一个就这个叫控制局面。

控制局面实际上是非常非常简单的概念,这个控制是这个重新学或者计算几何里面一个这个先驱啊,那个西瓜每年的控制讲就以他命名,它实际上是第一次定义了叫超差呃,超限差值就是给定是四条曲线啊。

这个四条曲线啊如何定义上光滑曲面啊,就叫控制曲面啊,有有有有有一些双一阶,双双双三阶等等啊,那么他这个这篇文章比较早啊,99年,所以他说我给你一个区域,我就人为的把这个区域变成四段。

每一段区域不就一个边界出来了吗对吧,然后就这个边界控制就是构造四条边界来构造一个曲面,就用它去构造就行了对吧,就非常简单啊,这就是一个非常简单的一个思想,但是呢这个呃因为简单嘛,所以它的特性不好。

那什么扭曲啊,这个这个根本就没有考虑内部的一些特性,它只考虑边界啊,所以方法简单,但是比较早啊,那么还有一种呢就是用调和函数啊,这个我一说调和大家马上就想到了陈仁杰老师第二节课是吧。

用调和函数来来做这个啊,这这个这样的话也是变形是吧,怎么把一个复杂到的外形,把它变形到这样一个区域里面啊,最后的这个数据表达就是用调和函数来表达,因为调函数是无穷阶光滑啊。

它是这个满足这个拉巴斯方程啊啊但是呢它因为是求解这个方程组,所以它也没法严格保证是吧,所以前面大家也听过严格保证的那个这样的话只能是什么,开始初值是一个没有这个翻转,然后慢慢优化过来是吧。

如果是要求一些复杂系统喜欢的方程组,基本上都没法保证好好,那么这个咱们还有还有一大类呢,就是这个叫非线性优化啊,中非线性优化一听啊,就是付老师前面讲的一些一些东西啊,就是你就把那个扭曲什么翻转啊。

亚科比这种东西拿来严格做过一些不等式约束啊,那么你就可以去求解这个系统啊,那么你开始如果有个初值是无无反转的,那么在优化过程中保证它不翻转,那么就结果一定不翻转。

如果你这个初值这个有翻转到后面去想办法把它把它纠正过来是吧,这个这些方法是一样的,可以看到,只不过在这个i g a中呢,它有一些这个函数用的比较特殊啊,我再介绍两个啊。

一个呢就是那个啊方兴老师介绍叫孔博,某叫薄叫共情啊,那么呢还有一种比共情弱一点的这个这个一些函数呢,叫啊这个cos叫拟共性啊,就是比共性上面弱一点,它怎么了。

共性是它它的一个嗯就它是一个共性的一个特特殊,特殊在哪呢,它这个值密码它的这个上学记小于一啊,所以他就本质上呢你如果你满足这个条件呢,它就是一定是局部是单四的,它不会不会翻了翻转。

所以呢你不用雅克比来判断这个局部单色条件是用这个值来判断,所以这种函数呢这个你更心寒,这个印映射呢就天然的就保证了这个locally injective,就是局部啊,单色只要满足这个条件。

所以我们还把可以把那个以前那个亚科比大于零,那个条件换成这个这个这个条件了啊,好没看到我们的确是一样的啊,这个值越小越好,这个是光滑,这个名次越光滑越好,还有这个要小于一把那个边界给定是吧。

所以可以可以马上,如果这种函数啊有有这种特性,你就对它能量进行一个约束啊,这一个一个描述加上条件就变成一个优化问题啊,所以很容易理解,只不过他用了一个非常特殊的一个理控型映射。

这样的东西好比你公司还要那个特殊一点,就是又一个子集叫jack ma啊,映射md意思是什么,是这个值啊,小于一啊,就是小于一,所以说这个是小于一的话呢,它的这个扭曲呢就会比较小啊。

所以哎我采用这样一个啊这个这个这个特殊的影射手呢,唉我能够但是能控制住他的它的扭曲程度,没看到女程度就能够很好控制啊,当然这个这个映射的二维中有三分钟没有啊,所以也有有一批这个做参照化的。

做预算的话的这个人在研究用这个map啊,这个tema简称t map来做这个i g a的参数化啊,这参数化实际上是本质上这个流程跟那个前面我们讲的参数化,是流程是几乎一致啊,首先构造一个初始上初始上的话。

然后呢不断去优化你刚才的目标,要么就是无反转,要么就是那个话以及那个扭曲极小啊,就变成优化问题啊,只不过背后这个参数呢变量是那些基函数的系数而已,并不是离散型的那个网格顶点啊。

所以啊中间就可以做不断的迭代优化啊,这整个过程是一样的好,那么那么这里呃呃我就我不去讲这个更多的这个这个细节啊,这个当然啊跟前面一样,我们那个嗯这这这些年大家一直在求解的优化啊。

优化这个求解都非常耗时是吧,怎么样去减少这个时间,还有另外一个就是如果是对一些复杂物体啊,那么效果呢因为因为这个参数域太复杂了,可能效果不好,所以需要需要需要做更多的一些处理。

比如分解后面后面会停一下好,那么呃在i g a中呢,还有一类就是因为样条它是个张量级形式,就是它战略机形式呢有个问题,就是你你一个方向如果细分一次,它所有的这个另外一个方向都要从事细分。

所以呢这样的话就导致这个网络很多,那么天量调整呢,它允许这种t节点可以看到有它跟张量级不一样啊,有有有有这种节点,所以有些地方吸,有些地方密啊,所以他能做到这种自适应啊,这叫气量条。

因为它有t junction t节点啊,所以啊那个在ig里面或者叫c基地里面,这样调也是一个非常重要的一个这个表达形式啊,因为它啊突破了张亮机这种这种啊约束或者说限制的情况下,能够表达非常复杂的形体啊。

好那么第二条这个啊呃t hb叫t量条,那个hierarchical dispring,这个啊这种框架呢整个逻辑都是类似的,特性这里写的没有看,就是具有局部啊这个这个更新性,因为它可以只会加密啊。

我这里定性解释一下,我这边呢要加加密,我只加密这一部分,别的地方可以不动,所以它能够自适应的这个加密,并且它具有一个层次性啊,所以到最后我们认识也是一样啊,我需要雅克比啊,这个follower呃最小。

那么还有属于一个这个这个一个啊扭曲在一个界之内是吧,这个k bg在前面也提到过,只不过这是用了另外一套表达或者另外一套语言来描述,这里基本思想前面全都有好,这就在这个用用线条啊。

好还有一个呢就是刚才我提了一下,就是最复杂形体,你一个这么复杂的一个形体,要把它参数化的一个简单的啊,这个体块挺难的是吧,那怎么办,我们就想到分割嘛,哎你你你把它翻转化到一个矩形不行,那我就分块啊。

每一个小块是一个矩形,这时候呢这个就是多快啊,就是刚才那个啊严明也讲到,就是怎么把这个分成多个小片,每个小片呢就容易去做做做一些参数化啊,然后呢我们把它后面把它拼起来啊,那么这个拼的过程中呢。

在在在这个学科在这个小领域呢就发展了一些这种比较比较特殊的啊,当然我个人认为它是启发式的一些方法啊,一个形体如果它有骨架,唉,我我原来我原来骨架来做一片一片一片分解是吧啊,这种这种还是比较特殊。

因为有很多形状是美股价他也做不了啊,所以他这个有有有一些这个论文呢,就通过这种特殊的形状,特殊的这种鲜艳啊,来来做这种四面体四边形分解啊,因为这个把一个形状分成四边形区域本身就是个很难的问题啊。

所以股价只是提供了一种这种这种高危性啊,定位的信息,能够更好的去做这个分解的工作,还有用这个pop的cube啊,pp我们这个课前面可能提到过啊。

就是这种啊这种平面面平行于坐标轴的这样一个形状叫poly cube啊,因为它不是一个呃立方体,它是一个多个立方体拼起来的啊,就这种形状呢呃因为它比较简单,它这个每个面都平行坐标轴或者平行做的总队。

所以所以我们也可以把它看作是一个比较好的参数化域,这时候呢我们还要把一个复杂物体呢把它印到这里来,这里是一个前提,也要也要做分片啊,好那么也也是一分片的话,就这种连续性就保持不了,就是c0 连续是吧啊。

当然这个昨天早上午那个付老师在他的课里面,也可以定义高阶的这种啊,这个分片的映射能保证一定的连续性能达到c甚至c2 ,所以大家可以想,如果你这个有有有有些不足,那怎么办,我可以从g函数。

可以来可以来达到这个目标啊,好那个i j这个这个领域呢这个做的也十几年哈,这个呃从从刚才我所过的这些方法,这些方法都是啊这个分类有不同分类啊,但是我们采用采用了一种啊,刚才那个分类方式。

实际上从从这里可以看到啊,里面采用的不管是能量模型还是它里面的一些描述啊,反转啊,扭曲啊等等,都跟我们前面讲的讲的都是一模一样啊,啊只不过它背后的这个变量呢是连续型的,这个系数就是一样条啊。

特别是跟成人接老师讲的那两节课是非常相关的,好大家如果感兴趣去切入到ig去看去做的话,非常快啊,就只要你对他的话是有很深刻的理解的话去做啊,没什么大问题啊,好那么刚才讲的那个ig呢,因为它是张亮机形式。

为什么坐标变量条有两个方向,变样条乘积就定义了二维空间的变量条啊,对三维中就是三个方向啊,所以他这这个g函数随着维数啊扩大又一下子膨胀很大啊,这是第一点,就是张量机的一个不足。

第二个呢它就它的参数欲求必须是个矩形域的,但这个矩形不是个严格矩形,如果是个四边形,你把它把它扭曲到此矩形啊,所以所以这个约束呢就限制它对很多玉啊,就很难够去去做很好的这个参数化啊。

那么呃那么呃这个叫t c b t c b叫啊全狗configuration be spring啊,就是它呢就在一个三角形上面去定义变量条,然后三角形之间的变量条呢有一定的光滑性。

所以呢它可以定义在任何的多边形上面,可以定义变量条啊,但是理论上是可以定义在任何的多边形上面,它是一个方法变量条,就可以构造非常灵活的这种玉,比如说这样一个玉以前用那个传统来截。

你必须把它分开成四块啊啊每一块分分别做,然后呃参数化,然后再拼起来,现在呢唉我不需要我就一个这样的啊,四边形中间这个口是一个洞,你看这是个啊带动的一个多边形啊。

这时候就就避免了要把这个域啊又分解成多个张量级,这个四边形的玉形式啊,所以它具有一定的灵活性啊,所以他这个就避免了这个参数化那个难题啊,把一个啊流行变成大量级的这种四边形啊,跑分啊,体的话。

要是六面体是吧,好这种餐的话呢是最近12年吧,23年看到的一种新的表达啊,这个厦门大学曹娟成都会团队啊,就在这上面做了一些非常好的前期工作,也这也证明了他一些好的应用哦。

我建议同学们如果想啊找找新方向的话,这是非常不错的一个方向啊,可以看到这是一些例子啊,这是一个呃任意构造的一个非常有挑战的一个预啊,那么这是简单的这个参数语啊,然后你注意参数化以后。

用这个方法就可以看到这个扭曲啊,能控制非常小,那么下一页有个对比啊,啊这是一个呃呃用用个鱼来做例子啊,中间差的化,里面扭曲极小啊,你可以看到这个这个这个深颜色几乎几乎没有啊。

因为它中间啊不需要去做这种剖分了啊,它是直接定义在这个啊多边形域上的一个变量条啊,当然这个呃最近我们在探讨时候呢,也只知道它的好处,它避免了这个张量机的这个域的分解,但天下可能还是我啊。

应该没有免费的午餐啊,中间它还有一些什么样的一些问题,我们还在探索啊,比如现在可能看到的就是它的计算量会比较大啊,它计算量啊,因为它不如啊,以前张亮机形式马上就可以做出一个写出片头这个形式。

但它们呢就要通过满足光滑性,拼接光滑性等等啊,所以计算量去要要需要有一些这个这个这个成本啊,当然这个随着这个发展呢,可能也会逐渐被解决啊,为抛抛砖引玉啊,这个值得关注啊。

最近我看到这个东西以后觉得还是蛮有潜力的好啊,实际有限我就不展开啊,还有后面还有一些内容,所以我尽快过一下市场参数化呢,除了那个啊这种平面上的话,你可以看到啊,全部寻觅去,就是把一个封闭网格啊。

封闭网格,因为它拓扑同名圆盘哦,哦圆球啊啊不不同的,同为圆盘,所以他没法直接参数化到原来这个表面平面对吧,所以你要生成割缝啊,割缝的历史上有好多论文方法去研究怎么样去割缝啊,实参考结果好是吧。

全凭一mage提供了一种这种这种奇葩式的购物方法,在付老师的课你应该提到过好,那么实际上是对一些特殊的啊,就是这种封闭曲面,比如说封闭曲面,它它它不带环啊,不不带,不像圆环一样的,它只是个封闭的。

亏格为零,我们把它归为零,它是不是就是个脱皮,同配一球面,因为他你往里面充气,它们就可以假设啊里面充气到一定量,它就变成一个球是吧,所以没必要把它割开啊,变成矩形式上的差的话是吧。

我我我上面定义什么信息,不用在uv空间上定义,我在球面上定义,如果我能构建出这个封闭曲面跟球面的意义对应,那么我是这个球是一个非常规整的,因为球的话我用极坐标也相当于就一个矩形出来了是吧。

就像啊那个叫做啊全景图啊,我我我在一个点看世界720度,那么我身上是存储的是一张全景图,所以说你球面中心信息有了后,全景图那个举行域也也也是可以出来是吧,所以我把它的信息呢存储在球面上也是可以的。

也是能够啊,这个很好的这个存储是吧,所以对这种物体呢我就不用割线把它割开,我直接把它参数化成球面,那么这个问题呢叫做球面参数化,当然我这里限制住啊,封是封闭的啊,这个是啊,这个是条件啊,但是亏格为零。

因为如果是个环,从中间带一个洞,就像我们这个手手柄一样的,它就不能够变成球,知道吧,它变成一个圆环好,那么是不是圆环差的话也可以提呢,当然也可以是吧,但是这个呃这个价值和意义不是特别大。

所以做球门差的话呢还是值得做好好,那么全面上的话,这里就就引出一些问题是吧,比如说我在这上面是个三角形,在球面上呢是个曲面三角形,那么是不是球面这个几何的一些东西就可以引进来是吧。

当然这个是是确实是是吧,因为在球面上,我们地球啊这个本本来就是进行一个球,然后呢在上面实际上是这个上面的边啊,就是一些大国的边就变成一个曲线是吧,所以这个叫曲边三角形,也叫球面三三角形啊。

所以这里呢就是啊会有这样一些球面三角形的一些知识啊,那么全面参与转型,全面参数的话呢,做的啊这个因为这个物体太特殊了,所以做的啊文章或者工作呢不是特别多,但是也大概也follow了这么三大类啊。

第一类叫直接把这早年的啊就直接啊,嗯最简单就是假设这个物体是个凸的,然后呢每个点沿半径求半径,跟这个点相交,跟球面碰撞啊,求交就得到求分化是吧,但这个物体简单可以啊,那个突兀的当然没问题啊。

还有新型物体也没问题,但是呢如果是复杂物体不行好吧,还有这篇文章呢比较早哈,他呢就叫叫shwaking reacking,让物体膨胀,膨胀到一定程度就变成一个球啊,这个这中间也是不断在做迭代优化啊。

还有这个你看弗洛特flow就是那个啊q的那个方法啊,就是每个点分作为重心坐标是吧,这个一个等式在球面上沿也可以这样定义啊,就是这个点跟相邻的几个点啊,这个平均啊,这个平均呢可能不是欧式空间。

是贴在球面上表达成一个方程组啊,那么也可以采用这个图图的理论图论啊来进行做,这篇呢就是osman这个103年吃过物,就把这个啊q的方法啊,就是那个float方法把它推广到球面上去了。

它变成一个非线性非非出的一个优化问题啊,因为做的比较早啊,当时这个方法虽然比较简单啊,理论上你这个也比较漂亮啊,但但是还是一个里程碑的工作啊,至少在前面差分化这里一块。

第二块呢就是呃跟平面三生化一样的这样思路优化啊,怎么优化呢,哎我可以优化角,那么那里a b f可以追到球面上,就是在球面的这个极坐标啊,不取消标记。

球面坐标也同样有这些这个这个这个正弦定理所诱导出的这些不等式,还有这个流量同样有啊,这些这些不等式同样可以推广推广过来,所以呢拿了cf啊,现在在,嗯在在加拿大对吧。

然后他就把这个呃a b f a b f也是他提的对吧,然后把它推到球面上,就变成这样优化问题,第一话问题是不是跟前面那个a b f实际上形式是一模一样的是吧,非常类似,你看这个是正正弦定理是吧。

这个只不过是体现在球面上复杂一点而已好,那么还有另外的一些这种呃这个基于优化的方法啊,你优化它的一些这个狄利克雷能量啊,能量迪迪克能量也可以用它的这个这个这个变换的这个机机,来来度量是吧。

以前我们是用那个两个奇异值来西格玛一接口嘛,二是吧,这里也同样有有球面上的这些值好,那么这个值有了以后,你可以定义不同的能量啊,迪卢克雷啊,还有这个面积扭曲啊,啊把它捆绑在一起啊等等。

反正就变成了一个优化问题,只不过这优化问题过程中,每个点必须约束在球面上,就加了个这个约束啊,这个点不能是平面啊,自由的啊,要是必须约束在球面上这个坐标啊,同样那个我们在前呃,14年也大概78年前啊。

啊这个我们我这个学生王春雪就把那个平面的啊,那个ai ap把它推回到球面,ap大家应该非常熟啊,这个很多同学都做过作业,就是啊尽可能刚性的这个思想,就是把这个三角形啊,尽可能刚性的把它一直到穷人。

然后这里分怎么办呢,再去求解一个全局的一个方程组啊,不断去迭代就可以去做这个全面战争化啊,当时当时效果还还还不错啊,这是这是第一次把这个平面的这个参数化啊,这个推广到了全面,那么it mips啊。

那个在付老师课也讲过是吧,就是啊most chic吧,i i i i so mi还是什么啊,常态化proation这个方法把它推广到这个球面,也就是它的能量形式是一样的。

只不过是变成了球面上的一些这个量来进行优化啊,好另外一种呢就是球面上看的话,那个在平面中也有这种形式,叫cost to find,就是由简单的咱们不断不断加息啊,这个过程很容易理解啊。

04年啊这个啊就是progressimatch叫间接网格,就是叫刚才q m就是来实现这个pm的一种技术啊,它把又复杂的几何呢不断的简化简化啊,简化到啊最狠啊,就是一个生命体是吧。

生命体呢把它把它进行一些操作展开啊,变形啊或者参数化呢比较简单,然后再把这个操作过程中的一些细节再把它把它修饰,细节,再把它加回来啊,因为这个中心有了这这个变换,把它细节把它加到这里来。

那么这个细节把它加到这儿来啊,就可以生成这个这个呃精细网格的一个结果啊,我我们这里是拿这个参数化来做例子啊,所以它这个叫cos fine,就是我在简单的地方先做,做完以后再把它加回来。

加载过程中我当然要保持它的一些特性啊,不能翻转呀,扭曲尽量小啊等等一个个加,但这种方法大家可想而知,因为你是一个个起家是吧,你不是每一步都能够保证你是没反转是吧,所以他呀啊方法呢实际上是有效。

但是呢就是严格要保证那些性质可能不一定理论上能做得到啊,但作为方法啊没有问题啊,17年我们的学生呢也把这个方法呢就到球面,我把一个物体把它变成一个四面体啊,然后球面上画。

那不断在球面上去做各种各样的这样一些这个啊加顶点,但是在过程中保持这个在扭曲和变形,还有一个整体上是一个优化问题,好啊,这是当年的结果啊,这这结果我们我们也发布这个数据啊,这个大家大家可以用啊。

在我们主页上都可以找到,那么我这里做个小的总结,可以看它的参量化,一个物体上的话,我们讲的最多的最早的就是平面参的话,对吧好,那么对于特殊物体也可以求面,刚才刚才讲的那个cos fine。

本质上就把它放到一个它的简化版本啊,那么也可以叫做代理啊,它的代理上代理好做啊,这个参数化好做,那么就把这个细节和它对应加上来啊,或者是还有这个双曲轨道嵌入啊,最近几年水管也有提及啊,我们这里就不介绍。

那还有一些比较特殊类型的,比如说高规格啊,刚才零亏格的话,可以有个规则的定义叫球面,但是对于这种那个三个洞亏格为三,就你很难找到一个这种这种大家通用的这样一个规整形状是吧,那怎么办呢。

我们就定一个叫polo cube,就是这种这种啊比较特殊的这种啊多面体,每个面呢是平行于某个坐标啊,平面,这时候呢这时候呢这个这个表达很简单,只要你把这个形状的点跟这个规整的这种玻璃shop对应起来。

哎我这个把它打开也是一个平面的参数化形式,所以呢这个pq长的话啊,在这个川化领域也是有不少文章啊,还有一个呢就是刚才跟那个呃谢林严明他见就在探讨的,就是还有一种呢就是我点名可能有某种方法破解到。

但呃一种方法呢就把点构成面,就连着mac在做超量化,就转化成我们以前的那个超能化讲过的一些方法,还有一种呢就是我不不去连面,我直接把这个点先把它展开,然后再在二维中就有一些点点云是吧。

那我在上面去做这个做mesh啊,做处理也是可以的是吧,那么等运算的话,因为没有点跟点之间的联系关系就相对来说难一点,但它基本思路呢也是每个点跟它的领域之间的点找到一些关系。

这关系可以是用刚才说的中心坐标啊,这个描述啊等等,所以这个点云处理的大部分技术都是启发于或来源于啊,这个nh这个或网格的一些技术啊,所以这方面这个早年有不少个人做,那么这最近做的比较少。

因为现在这个网格这个参呃构建现在已经越来越约好了,好好最后那个我我再提一下这个高位数据上的话,因为我收到几封邮件,就说在第一节课的时候,我在介绍参数化的时候,也介绍过高位数据是吧。

实际上三三参数化是什么呢,现在大家应该都理解了是吧,那我们啊能够直接看到的三维空间的曲面本质上是一个二维流形,它本身就是个二维流形,是二维流形,反义词本质是一个二维的,虽然它嵌入到一个三维空间啊。

像这个图刚好就是一个我们因为人类只能想象三维啊,大部分啊我们很难想象四维和五维高维是在三维中,我们看到这样一个球面,虽然它的点是呈现在三维,这个这个叫做啊观察空间啊,这个点是三维中一个坐标x y z。

但这些点集合啊是为一个球面,这个球面本质上是一个二维子空间啊,我们把它叫流行,流行概念,就是每个点周围任何领域都通通不同胚于低维空间的一个小圆盘啊,那我们这里是每个点球面上每个点的周围的一个小领域。

都是突破同归于二维的圆盘,所以这个叫二维流形啊,所以它本质上看起来是三维中心的一个数据啊,每个人点就和三维坐标属性,但是它本质是252维,所以我们有理由可以把它压到二维,所以这就是参数化。

参数化就在做啥,就是在做降维,大家理解这个本质以后,你就清楚啊,这个高位数据你要去做降维啊,只不过pca是比较简单的一种线性降维是吧,还有好多其他的一些这个降维基本上都是这个需要遵循这个啊。

就是你怎么样找到这个高维数据的一个低维嵌入的一个本征维度,一旦你嵌入到结尾,你信息损失不大,顶多是损失一些扭曲对吧,点跟点之间的扭曲,但它的这个位数是保持住了啊。

如果你把这个球面啊啊你这个假设球面你估计不好把它切到一尾,一个一个一条直线,那就信息就是太多,你想回来就回不来是吧,但是你现在二维像这些结果都是二维,只不过是嵌入的这个算法不一样是吧。

那你这个它的特征呢大部分还是能保留,它不会丢失,因为它本身维度保持住了,他的它它那个这个点在那个低位中的特征特征,就是那个那个迹象量就能够体现它的一些性质,当然性质有好有坏而已啊。

这个就看你这个数据的结构啊,所以所以本质上我们讲的差的话,这个思想里面的很多方法啊,同样可以去推广到高维数据的这个只不过高维数据呢没有那么多啊,直观的啊这个这个三角形啊。

顺便体啊这种解这种这种啊我们可以很容易想象的这种结构是吧,因为到高位中肯定是超平面超三角形超速问题啊,甚至如果你要嵌入到一个五维,要用五维的这种单元去描述那个点名,或者是描述那个啊流行结构,你才能去做。

所以啊虽然可以往上推,但是呢你要去做的话呢,你还是蛮难啊,好那么那难嘛,就大家就想到一些啊这种趋向于这种经验性或暴力性的这种方法啊,我就强行把它降维啊,降维过程中对这个降维后的这个认证扣的啊。

这个就是叫叫影编码,影编码是什么,是真实维度啊,那么这个叫观察维度啊,就对它进行一些这个这个这个映射是吧,进行的过程中,如果我们对这个映射这个加很多一些先验知识,还有这个recreation叫正则约束。

那么对这个这个这个降维这个性质就会好一点啊,所以你要去做呃高位数据的一个降维,你必须要对这个数据还是要有理解啊,你不能不能暴力性的哪一个就一个简单的这个mp就就就去做是吧,所以差字化的呃。

这个这个这个背后的这个啊理论或者这个一个核心理解好以后,我们再去看这个这个一些神经网络的这样一些映射,姜维啊,或者一些就容易容易看得看得清楚啊,那么这里像我这里给了一些信息啊。

我们最近也在做一些这方面的一些相关的工作,中间可以参数化将你和把它一体化,把它串通啊,就像我刚才说的c a d c一体化一样的,而不是端到端啊,而不是人为的把它分成两个问题去做,一部分人做参照的话。

一部分人做拟合啊,好那个我这里就简单这样这样这样介绍一下好,还有几分钟好,那我最后我做一个啊301课程的总结啊,这个啊我记得是啊,第一次课是应该是长假,那这个我们今年国庆节都没怎么休息啊。

那国庆节我们呃这个团队啊四位老师啊讨论了好几次,这个课怎么来,因为作为一个课来讲,我们需要把这个才能化这么多年的工作进行系统化整理啊,这个是一个啊非常需要花时间的事情啊。

因为我们从基础理论到各种方法到连续型到后面cfo啊,这个做的还是非常深刻的一些整理啊,那这是我们这实务讲吧,好啊前后前后七周啊,总共六周时间,我们把这个课啊虽然讲的比较快啊。

因为因为啊呃10 11月之后我们还有很多事情啊,这个水管我家那就就只有九周了是吧,所以我们呃两周啊啊一周讲两次,就把这个301这个课给他给他讲完,嗯虽然比较快哦。

同学们可能有些地方听起来还是不是特别清楚,没关系啊,我们这个所有资料都会备份啊,b啊,b站上面好,咱们可以看到这个呃,我就不回顾了哈,就是开始离散型啊,然后仁杰老师是讲了光环映射。

这个就跟今天讲的第三个应用啊,工业这个i j相关领域里面用用这种光滑函数去做这个传统化啊,那么这个conformer是一个比较比较重要的啊,今天介绍了coc homo啊。

去比比这个conformal弱一点的,还有一种听啊,tamal map啊,在比他还要在于特殊的一种影射,用来做菜的话啊,那么呃应用我们啊请的腾讯啊,仙灵啊,这个一些这个呃非常好的一些工作。

来进行一些这个产业中的应用的一个介绍啊,好那个课程虽然讲的很快,但是我们准备工作,我们这次整的还是非常非常尽心的啊,所以我们会把所有的啊这个课件啊,以及我们这15 15节课的录屏都会整理。

好像现在已经整理好大部分啊啊然后会会这个备份在啊我们的b站,我们games b b站上面啊,这是我们的一个非常好的知识保护,同时我们课程作业还有课后啊,现在第三个哈可能还没有完全做完哈。

那么我们助教同样会帮助到同学们去把作业给他这个进行论证的检查,好,然后呃如果三个作业都通过的同学呢,我们也会颁发一个这个课程结业的这个这样一个证书啊。

啊以以以以表以表示这个我们对同学们的这样一个认可和感谢好,那么呃在最后那个今年有一篇文章,s gp 7月份啊开召开的一篇文章,有一篇工作我稍微提一下啊,叫tiny ad。

ad的意思叫automatic differentiation,就是这个叫微分,就叫自动微分啊啊最近同学不知道业界好,学术界经常讲可微可微啊,比如说渲染可微渲染仿真,可谓仿真啊。

那么事实上可谓几何处理面好多计算都是口味的啊,那么这可谓呃这个概念是啥呢,就一个计算过程,如果你口味的话,你就可以有目标去驱动前面的x由y的变化去去用x和反过来,你反过来就相当于是什么梯度下降。

你必须要有它的导数和微分啊,所以这叫叫可微,所以结合处理啊,这个可微性实际上我一直在思考啊,但同学们也有些同学也在做啊,今天会一会文章,当他要把一些这个几何处理的一些东西呢啊一些东西啊,这个写成一个库。

把它自动微分,把它自动棒棒,你求出来了,因为任何计算都可以表达成一个图啊,像这里有些变量它和它运算得到它,它的运算运算得到它是吧,它和它运算值得它,所以每一步呢它这个只要这个计算图是给定的。

它的微分呢以前我们要去做优化,求那个梯度,都推那个梯度,食指和老长老长很容易出错,那么它其中一种机制,你要告诉他你是这个这个量fx是怎么怎么有些变量可以求出来的,我就可以自动的去算出你的记录啊。

以前是首推,现在什么它通过一个机制给你实现出来了,好那个接触有了以后,你去求解这个优化优化问题啊,因为你是梯度下降嘛对吧,那么就什么就容易自动的去去做了,而不用你去写代码,输入它的那个梯度。

输入他的那个海城镇,海城镇更麻烦,是个举证对吧,所以他就把这个事情呢变成一个自动的代码来帮你完成啊,我觉得我觉得这个工作非常有意思啊,就是他提供一个c加加开源的啊,a级库啊,好我举个例子,比如他的话。

他的话他这个给李哥啊,我们去呃把这代码啊,我那些学生吴文正去把这个代码拿来去看到诶,你你要去做餐的话,renice去读读读一个啊,这个叫做那些文件是吧,好你要做他的话,怎么你要怎么定义能量。

像这个是一个就是我们经常讲的迪迪克人能量是怎么定义,要写好,那么这里呢它有个函数就get这个梯度导数嘛,就这个梯度呢怎么去get一角调调查的函数就行了,你不用再去手算,再写成c c加加代码啊。

所以这话呢你就就通过这两个函数定义能量函数,然后调用它内部的怎么去算这个梯度,它就可以帮你去做这个优化啊,就写代码就非常简单,我现在发现这个以前我们主要自己去算梯度的格式,把它输入到c语言是吧。

这个代码有的时候一个符号错了,结果出不来,还不知道是怎么回事是吧,才能把它变成一个自动自动化的过程啊,所以所以这个工作今年刚刚出来啊,s g p2022 啊,我觉得大家关注一下啊,不妨去试用一下。

看好这个,当然它可能效率上不一定有你写的那么高效,因为它是一个通用性的,但是它可以帮你啊,在很多时候呢不用去啊关注到这些细节,这个这个导数啊求解啊,这些也可以做一些通用验证。

但是如果你要去高校去去去优化的话,可能还是解析自己的优化算法啊,好好最后这个时间来天下也也没有不散的宴席啊,这个腰椎啊,301课程经过啊这么六周啊,前后七周的时间啊,我们讲了非常多东西啊的资料。

也会非常完善的备份在啊b站以及我们game网站上面,那么这个背后呢实际上是同学们见不到的东西,就是这个背后的一些啊心血心血啊,就我们呃即使是这个参数化是个小众的领域,但是它作为几何处理好。

网格生成的一个基本的底层的根技术还是非常重要啊,我们也做了大量的调研啊,ppt也也做过多次评审啊,统一语言,统一符号,统一我们的思路啊,所以特别感谢几位老师吧。

那个呃我我来驱动这个把这个事情啊做得完美一点好,同时呢我们也在课上,最近几次也请了啊,腾讯的黄书怀啊,县令的贾延明,还有i j也是让潘粤东啊,草绝缘啊等等,帮我准备一些这个素材啊。

得以我能把最先进的一些东西分享给大家啊,虽然讲的不是特别细,也没有时间展开,但是这些啊这些信信息给到大家,希望对大家会呃在未来的啊,还是那个工业中应用应用啊,能得到一些更多的这个啊机会好。

最后那个作为这个新的尝试专题课,毕竟比一和二要要要难啊,你专题后面302303出来以后,你们也会觉得很难啊,但不怕啊,我们难难不怕,就就怕那个你不去学是吧,所以我们呃任何一门课我们都会给很高的要求。

所以我们你可以看到从一而二系列来讲,每门课我们对老师要求还是蛮高的啊,另外三话我们带这个头是吧,这个系统化的把一个小的专题把它进行很好的讲解啊,现在105还刘丽丽老师还正在上对吧。

那么302303在春节之后就会开啊,302呃,我要不要剧透一下呢对吧,3030很多同学在群里面已经猜到了哈,好那么大家可以在春节之后继续关注这个我们的game是呃,后续课程除了三以外。

明年还会开展示思维讲讲过是介绍这种非常优秀的雏形的框架啊,这个程序框架啊,通过啊这个那这个程序的这个框架介绍,让大家能够实战性变得更加的能够有经验啊,能力更加增强一点。

好你这个希望各位同学啊或者业界同仁啊,对这个课未来比如一系列也好,二系列也好啊,3号四都可以啊,给我们提供一些这个不同的建议和意见啊,以便我们把这个平台做得更好啊,让啊我们中国的图形学啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个屹立于世界之林啊,做一些贡献,好这个301课程到这里就结束了,好再次感谢各位games小伙伴哦,还有业界同仁对我们的支持,还有在群里面讨论非常多的问题啊,我们也会尽量的即使这个课结束啊。

我们在群里面仍然会回答同学们的一些问题啊,希望和大家建立起长期的交流和啊那个讨论啊,甚至能够找到一些非常好的东西,可以一起合作去做好行。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

GAMES301-曲面参数化 - P2:Lecture 02 面向离散网格的参数化概述 - GAMES-Webinar - BV18T411P7hT

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

诶那个欢迎大家来到那个gp 301的第二讲啊,就曲面三句话的第二讲,我们今天是主要介绍一下这个面向离散网格的这个参数化,然后等一些基本的情况就是,然后并且介绍一些呃传统的这样的参数化的方法啊。

在后续的课程中,这个关于离散网格的这个参数化方法,或者说意识,或者说这个映射计算的方法,我们后面会介绍一些比较新的一些方法。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

首先是这个介绍啊,那么这个离散网格,离散网格的话呃,它就是有这个顶点和这个呃有这个几何和拓扑决定啊,零呃几何的话一般对于这种水密的网格,或者说对于这种窝,对于这种就是流行的网格的话。

他首先主要是用这些顶点的位置来描述这个几何,然后顶点与顶点之间的连接关系,如果是其他的网格的话,还会存在这个四面体啊等等这样的一些你可以认为是这种graph,就是这种图的这种概念去把这些顶点给连接起来。

这些东西呢是描述了这个网格的这个connectivity,它的连接性,所以说一般的离散网格都是有这样的一个表示,那么离散网格的话,最常见的离散网格有这样的四大类,那么一类是这样的三角形网格。

四边形网格呃,四面体网格,还有六面体网格啊,对于这样的三角形网格,或者说,对于这样的三角形网格和这样的四边形网格的话,它主要是这个表面网格内部是没有填充的,那么对于这样的网格而言的话。

我只只只靠只有他这样的一个表面的信息,那么对于这个右边这两个网格的话,就是所有的这个元素都是这个四面体,右边这个的话所有的元素都是六面体,六面体的话就是它是跟这个立方体是拓扑上是一样的。

那么这边是四边形,这边是三角形,就是最常见的呃四类网格啊,当然这种网格现在这个里面展示的网格只是一种网格,里只有一种类型,比如这里只有三角形,这里只有四边形,这里只有四面体,这里只有六面体。

但是在这个现实生活中,或者说在这个实际的使用过程中,其实会存在混合网格,就比如说表面网格的话,又有三角形,又有四边形,可能还有五边形等等啊,当然题的话也会有一些什么棱柱啊之类的。

那么现在我们要去我们要去研究的是这个啊,我们我们主要是要去研究的是这样的一个映射,那么这个应该刘老师在上节课的时候也提到过呃这样的一个映射,那么这样的映射的话。

其实是从这个左边这样的omega这样的一个定义,映射到右边这样的一个变形后的这样的一个呃形状,那么这样我们我们这个课呢主要是讲类似这样的一个映射的一个东西,那么其实你如果从网格的角度来讲的话。

这个映射其实就是把输入的一个网格映射或者变形成另外一个网格,那么在这个在这个变形过程中,或者在这个映射的过程中呢,呃其实这个拓扑和这个几何应该都可以是成为这个变量,如果从描述这个定义域的角度来讲的话。

其实描述定义域的话,我其实只需要啊,我我其实跟这个连接关系没有一些本质的本质的这样的一些呃关系,所以说在这个映映射,如果你真要去求一个广义的这个映射的话,其实这个地方的这个拓扑和这个几何。

其实都可以成为是这个映射的这个变量,但是如果从这个呃从从这个呃映射的角度来讲的话,我们其实无非就是想把这个左边这样的一个域,变成右边这样的一个变化或者一个域啊,那么这个域的变化其实是在呃某种程度上讲。

就是你要去描述这个变化的话,其实拓扑和几何几何都可以成为这样的一个变量,那么对于这个一般情况下呢,我们其实呃不会去假设它的拓扑是变化的啊,当然这只是一般情况下。

那么我们假设拓扑是在这个映射前后是不改变的,所以呢求解的变量只有网格的几何部分,那么对于这个具体而言的话,其实我们就是要确定每一个顶点的一个新的位置,比如说像这样的一个左这样的一个例子。

左边是这样的一个输入的网格,右边是这样一个输出的网格,那么对于这样的一个映射的这个前后的话,其实我改变了只有这个这个网格的这个顶点的位置,然后通过呃顶点位置的改变。

达到我们这个要去求解的这个映射的这个目标,比如说像这个,这个图里面展示的例子其实是一个六面体网格质量提升的例子,左边是一个输入的六面体网格,右边是一个通过质量提升以后的这个六面体网格。

大家可以从这个局部的放大图里看出来,右边得到的这个六面体网格,更加像一个更加趋向于这个立方体这样的一个形式,那么说我们在这个课程,或者我们在这个接下来要讲的大部分内容里面。

我们都是假设这个网格的连接关系是点与点之间是如何连接的,这个事情我们一我们是假设它是不改变的啊,但是我们也会在后面的,有一些很特殊的应用里面我们会讲到这个啊,这个拓扑其实在有些应用里面。

其实是或者说在有一些方法里面,它其实是会改变的啊,但是我们现在假设这个几何主要是这个变量,这个映射的变量,或者说这个参数化的变量主要是这个呃顶点的位置,或者说这个几何。

那么刚上面讲的是一些比较这个一般情况下这样的定义啊,映射的定义啊,那么我们接下来要讲一下,对于这样的一个线性网格,线性网格的话主要就是这个三角形网格或者呃,三角形网格和这个四面体网格啊,注意啊。

我们这里考虑的是这个线性网格呃,比如说对于这个四边形网格和这个六面体网格,它其实不是这个线性网格呃,比如说最简单的一个例子,空间中的一个四边形,它其实不一定是平面的啊。

那有可能是一个它其实是可以是一个曲面,或者说它是一个其他的形形状啊,这是一个高阶的曲面,那么所以说呢在考虑这个线性网格的条件下,就是三角形网格或者四面体网格的情况下呢,映射前后的两个网格都是直边网格。

于是在每个三角形上或者四面体上的映射就是一个线性的映射,那么这个映射每个四面体上或者每个三角形上是一个线性映射,那么整个映射因为你映射后的这个网格还是一个整体。

所以说映射后的这个网格是一个还是是一个整体的话,那也就是说是一个分片线性网,分片线性页,分片线性映射,并且这个映射是一个c0 连续的啊,因为如果没有不满足这个c0 连续的话。

那么这个网格可能会如果每个三角形上的三,每个每个三角形上的这个映射,它与相邻的三角形之间不满足这个c0 的条件的话,那么它就会这个三角形就会呃打散掉,那这样的话这个映射其实不是我们想要的啊。

那么这个也不是我们一个合理的映射,所以我们在这样的情况下,那么每个三角形上或者每个四面体上的映射是一个线性的,那么整体而言的话,这个整体的这个映射就是一个分片线性的分片线性映射。

并且这个映射是一个c0 的映射啊,对于一个三角形而言啊,那么如果是这个四边形网格或者六面体网格的话,每个单元上的映射就不是一个线性的,那么比如说这个当然可能用的最多的,比如说对于这个四边形网格。

大家用的最多的可能是一个双线性差值,那对于六面体网格用的最多的可能是一个三线性差值啊,它其实用的是一个三次多项式去表示,或者说三次的映射去表示这样一个六面体网格,它其实不是一个呃线性网格的映射前后。

那么在这在我们这个课程里面呢,这个六面体和四边形的部分会讲的比较少一点,我们大部分呃基于网格的映射的话,我们主要讲的是这个三角形网格和这个四面体网格,那么在这个映射前后。

在每个三角形上我建立一个局部坐标系啊,这个局部坐标就比如说这个里面的这样一个蓝色的局部坐标系,和这个地方的紫色坐标系,这个小t呢是映射前的三角形,这个大t是映射后的三角形。

通过建立这样一个局部坐标系以后呢,我这样的一个线性映射呃,是因为这是一个线性映射,所以我就可以把这个线性映射写成这样的一个呃线,这是一个假货币,就是它这是一个线性的矩阵,就是那个变量就是一个平移量。

我可以变成一个这样的一个简单的形式,那么对于这样一个简单的形式的话,在建立这个局部坐标系的情况下,这个简单的这个线性部分的这个局,这个a这个t这个假货币矩阵的这个t呢,其实我可以把它描述成啊。

这个t呢我可以把它描述成一个整个映射的这个假货币矩阵对吧,或者说你这个线性矩阵,因为你直接对这个你是映射后的这个比如说你是uv,你输入前是这个x和w变量。

那么你对这个uv就是这个f t x它其实是一个呃向量,所以这是一个整体,是一个向量值函数,那么输入是两维的变量,输出是两维的变量,那么你可以对着这个呃向量值函数去求它的甲壳币矩阵。

其实就是得到了这个前面的线性部分,线性甲壳比t这个部分,那么它其实是抛绣,又乘上ptix party,那么你会得到,因为你是个线性部分嘛,所以你就要求导的话,其实这个假货币矩阵就是这样一个形式。

所以说呢你这个这个你可以认为这个线性部分,就是整个这个映射的这个假货币矩阵啊,因为这个因为它是一个线性,所以说你对它求导就是这样一个形式,那么对于这样的一个假货币矩阵的话。

y j x k y k的形式下,其实你可以得到这样的一个式子,那么这个推导的话其实也比较简单啊,怎么怎么推导呢,就是你现在不是有这样一个等式吗,yi带进来吧,ui v2 带进来。

那你其实可以连列得到三个呃,六个三个等式,三个等式的情况下呢,你现在的目的是要去求这个甲壳b t,那你其实可以呃,应该是有六个等式啊,其实是有这个xx l y i和vi应该是有六个等式,六个等式呢。

然后你可以把这个呃都减去这个,因为你要把这个平移量给消除掉,所以你可以把这个用这个x j y j减去x2 y2 ,那么你这样的话就会得到的是,这个甲扣b t乘上小号b d乘上这条边的向量。

就等于这条边的向量,帮我看一下能不能写啊,啊就你可以把它去直接去给它计算出来,就会得到这样的一个举证啊,这样的一个推导啊,这个推导比较简单,刚才讲的就是把这条边印到这条边,这条边印到这条边。

然后你就会得到这样的一个方程啊,那么这样的话我就可以把这个角和b矩阵给写出来,这号比角号b曲线写出来以后呢,你在对于这个x i x j x k y k这个东西呢,其实对于我们的这个一般的研究的问题而言。

它其实是这个左边这个输入的网格,所以这个东西呢其实是已知的,那么已知的话这就是一个2x2的矩阵对吧,就已知的2x2矩阵,左边这些变量呢其实是未知的,我其实就是要去求这个uv对吧,那么由于这个是未知的。

那么所以说整体这个而言,这个假货被t呢,你可以描述成我未知的这个变量,未知的这个顶点的这样的一个线性组合啊,呃因为线性组合就是指后面这个是已知的线性函数,那么左边这个是未知的。

所以这是一个整体的这个线性线性组合,那么对于这个四面体网格而言也是一样的,对于每一个四面体而言,现在比如说你有这样的一个四面体呃。

每个四面体的顶点是这个x j y j x z z和x i y i z i,然后这是第二个顶点,就是第三个顶点,就是第四个顶点,然后我把它映射到另外的第一个顶点,第二个顶点,第三个顶点。

第四个顶点上的时候呢,我可以构造出来它的假货币矩阵是这样的,一个3x3的矩阵,那么对于这个问题而言,他们输入这些x i y i x z i这些变量是已知的,那么也就是后面这个矩阵是已知的。

那么所以说整个的甲亢比矩阵是关于这些未知量的一个线性组合啊,啊这个推导跟上面那个推导其实是一样的,在这个地方再多说一句啊,这个部分,你如果对这个假货币矩阵,我再回到上一页啊,如果你对这些。

现在我们是写出来这个假货币矩阵是等于这两个矩阵的乘积,那么我对这个假货币矩阵如果给它取一个行列式,那么这个甲方比矩阵因为是两个矩阵的成绩,那么行列式的话也应该是这个矩阵的行列式。

乘上这个矩阵的行列式对吧,那这个矩阵的行列式呢,其实正好是等于这个黄色右边映射过去的这个三角形的面积,那这个矩阵它的逆,你给它取行列式,其实就是里面这个矩阵的行列式的逆对吧。

那么里面这个矩阵呢其实正好是左边这个矩阵的这个行列式啊,这这左边这个三角形的面积,所以说呢这个甲亢病t的行列式,其实正好是这个映射后的这个三角形的面积,除以映射前的这个三角形的面积啊。

就是从这个式子来推导来讲,那如果你要问我,为什么这个左边这部分描述的是这个三角形的面积的话,大家可以想一下这个三角形的这个面积的话,其实就是可以把它写成这个就是。

就是那个呃那个那个就是那个叉乘的形式对吧,插乘的形式的话,这一部分你可以认为就是那个往z方向那个插成留下来那部分啊,所以说最后的这个假货币矩阵描述的是映射后的这个三角形的面积。

除以映射前的三角形的面积啊,对于这个四面体网格而言也是一样的,这个假货币矩阵的行列式就是描述的是映射后的四面体的,定时后的四面体的体积除上映射前的四面体的体积啊,就是甲高比智的行列式啊。

那么对于这样的一个三角形呃,对于这样的一个映射而言的话,我们其实还是比较关心这个映射,它是啊,就是它是有没有对这个输入的三角形产生一些扭曲对吧,这个应该刘老师在之前的课程里也讲过了,那么对于这样的一个。

首先我们会引入这样的三种这个映射,首先是等距映射,或者说叫做大家如果呃等距映射就是iso iso magic map,那么主要在这个地方,我们是讨论我们考虑的是它是一个旋转加平移的过程啊。

我们这里不考虑这个镜像映射啊,我们不考虑镜像映射,对于这个conformer的话,你可以认为它是产生了一个相似变换,相似变换,也就是说这个这个三角形就是做了一个放缩对吧,所以说它是一个scale。

再加上一个translation,a scale,加rotation加translation啊,或者说similarity就是相似性和这个呃平移啊,那么如果是一个很丰富vip的话,你可以认为对。

就是如果从矩阵的角度来讲,它就是一个scale,就是一个放缩,再乘上一个相似变换,乘上一个旋转,然后再乘上一个,再加上一个translate,就是一个translation,就是一个平移啊。

那么如果是保面积的话,那么也就是说是这个前后两个三角形的那个面积要一样啊,那么从刚才我们已经讲过了这个行列式,它这个甲克比矩,阵的行列式其实就是映射后的这个三角形的面积,除以映射前面的三角形面积。

那么所以说呢我们就可以如果是一个preserving的话,等于就是我们其实要求这个映射前的,要求这个映射的这个假货币矩阵的行列式是等于一的啊,那么对于这个一个意识而言,他如果是一个呃等距离映射的话。

当且仅当它是薄角,并且保面积啊,这个应该是一个比较初等的一个数学里面应该也讲过啊,全等变换,当且仅当它是一个相似变换加表面积啊,那么为了去具体的描述这个我这个映射发生的这个形。

变的话我们就需要引入一个叫做s,就是一个带符号的sn的那个svd分解,那么这个带符号的符s b d分解呢,是跟这个普通的s b d分解稍微有一点点的变化,又有一点点的不一样啊。

这地方的这个s b d分解的话,我们就会把它呃转成这个s b d分解,首先如果它的呃我们s b d正常的s v d分解的话,我们这个u和u和v的话,我们最后应该是呃两个正交矩阵。

然后s t的话它是一个对角阵,对角阵所有的元素都应该是大于零的,那么在我们这个带符号的这个s b d分解里,面呢我们会把这个u和t呢转成这类的两个旋转矩阵啊。

那么也就是说如果它的甲合比矩阵的行列式是大于零的,那么这个s s v d分解就是s v d,那么如果是这个如果是它的行列式是小于等于零的情况下,我们会把这个u t和v t呢变成旋转矩阵。

然后呢把这个s t那个奇异值最小,那个奇异值变成这样的一个负数啊,那么这是我们的这个呃带符号的sb分解这样的一个特殊性啊,就如果就是我们会让这个ut和v t呢是一个旋转矩阵,而不是说只是一个正交。

正因为正交,正的话它的行列式有可能是-1对吧,那么我们会把这个ut和v t转成旋转矩阵,并且把那个s b s b d分解那个奇异值的最小奇异值变成负数,那么这个s b d分解的话。

其实可以用下面这个图来描述啊,就是我们比如说上面这是一个圆,通过一个甲壳密矩阵,我可以把它变成硬设成这样的一个椭圆,那么其实从这个下面的整个两个过程来看,其实我可以先可以看成是用这个vt的转置。

先去对它做一个旋转,然后再用这个,再用这个scale去给他去做一个放缩,做完这个放缩以后呢,我再去给它做一个旋转,然后变成一个这样一个矩阵啊。

所以你可以把这个呃sp t分解的过程可以看成是这样的一个过程,可以看成是一个旋转加转转加这个不同轴的放缩,再加旋转的这样一个变化过程啊,那么对于这个呃呃保角啊。

不是那个as so magic map的话,就是说如果他是一个等距变换的话,那么其实我们希望它的假货币矩阵是一个旋转矩阵啊,我们这地方注意啊,我没有考虑这个镜像的啊,就是这个。

所以说我们希望这个假号比矩阵是一个旋转矩阵,那么如果是一个旋转矩阵的话,我们其实要求的是它的两个sn s v d分解,就是那个s s v d分解的话,就是他要求要求两个西格玛一等于西格玛2=1啊。

就是要求它是一个啊全等的那个,那么如果对于这个是一个confirm的变换的话,就是大家可以回到上一页,就是说如果我要求这个阶梯是一个旋转变换的话,那个t和v t是一个旋转矩阵。

那么s t我就希望它是一个单位正对吧,所以它是个新号,一等于x2 等于这个啊s t s,t呢是这个s西格玛一西格玛是那个st的那个对角矩阵对角,那么呃是那个对角元素,那么sigma sigma等于一啊。

如果是一个confer变换的话,我们就需要这个jk币矩阵是一个相似变换,相似变化我已经刚才讲了,它是一个scale,就是一个放缩量,再乘上一个旋转,那么所以说它其实是一个对角矩阵。

并且对角的元素呢都是就是求出来那个奇异值,那个对角元素应该是相等的,其实我们如果是一个是一个角的conformal map的话,我们就希望这个sigma是等于sigma的对吧,因为如果两个相等的话。

那么前中间这个对,角矩阵中间中间这个s这个奇异值矩阵我就可以写成一个s就乘上,可以写成一个数乘上一个单位正,那么也就是说我就可以前后的u乘上v t的话,就是一个旋转矩阵,再乘上一个变量s的话。

这样就会变成一个相似变换,或者变成一个scale,一个伸伸缩因子乘上一个就是呃旋转矩阵,那么所以说这个ctrl一设的话,我们希望这个西格玛一是等于西格玛二的啊。

那么这个air preserving就是说如果它是一个保密级的意思,我刚才讲过了这个行这个角和背矩阵的行列式,它其实是呃jab矩阵的行,列式它其实是这个描述了这个映射后的面积,除上映射前的面积。

那么它的行列式是等于一的情况下,那么也就是说呃它的映射后的面积是等于映射前的面积的啊,所以我们要求是西格玛一乘上新k82 等于一的呃,注意这个地方的行列式,因为如果是现在的行列式是小于零的情况下。

那么其实我们会把这个最小的其余值西格玛二变成负的,所以说呢如果是一个air preserving的,那么我们让这个sigma等于乘上sigma等于一的话,那么也就意味着这个西格玛一和西格玛a都是正的啊。

都是正的,话那么也就是说他这个三角形的朝向其实是一样的啊,就是映射前后的这个面积,因为面积的话其实可以看成是插成嘛,但差成的话,如果你这个应收前后是一样的,就是说他最后的这个啊这个朝向就变成一样了啊。

那么对于这样的引入了这样的一些定义呃,distortion的定义以后呢,我们接下来就要讲引入这个conformal distortion对吧,我们conformal distortion。

我们的目的是要让con如果是confirm意识,也就是说西格玛一和西格玛a要足够接近,所以说呢最常用的,那么也就是说无非就是我们要去呃测量这个映射它的conformal的,扭曲的话。

那么也就是我们要度量哎,我的目的是要让西格玛也等于这个方法,那么我们现在呃要去度量这个扭曲的话,其实我们就可以去衡量这个西格玛一和西格玛a之间的这个difference,对不对。

那么所以说我们衡量两个两个数之间的difference,那最常见的就是sigma一减去这个sigma对吧,两个之间的这个difference,然后再开个平方啊,这是一种,那么这种就是l s m等会会讲。

那么第二种的话就是这个诶我要去衡量两个之间的sigma和sigma,jin difference,那我还可以另外一种方式,我们就用它的比值,对不对,如果sigma等于。

西格玛a那么也就是说它的比值应该是等于一的,那所以说另外一种方式就是这样的一个k ma除上sigma,加上西格玛除上西格玛一,在用了这样的一个对称的形式以后呢,我们其实就可以让这个函数变成一个是一个呃。

它是都是大于等于一,大于等于二的一个函数,并且它是一个凸的函数啊,就是关于这个新msmart的啊,关于最后的顶点,它其实不一定出的,那么这是一个最经典的这个mix函数。

那么这是两种度量这converal distortion的,那么接下来是对要去度量这个iso magic distortion,那么as so magic distortion的话,我们之前。

讲as a magic还是卖出map的话,是要求这个星ma一等于西格玛2=1的对吧,那么也就是说我们要去度量的是这个西格玛a1 ,而这个cm 201的这个距离的远近。

那么所以说呢第一种方法就是这个第一种能量,就是这个传统的这个r a p的能量对吧,那其实也就是说我让这个c m一减一的平方,加上c k m2 减一的平方对吧,那就是度量这个西格玛a101 的距离。

西格玛2011的距离,那么还有一个是这个呃,这个叫做对称狄里克雷能量,就是最近这段时间比较常用的对吧,那就是西格玛一的平方加上西格玛一平方分之一,那么如果这个能量取到最小值的话。

也就是说是西格玛一的平方等于一,对不对,那么西格玛一平方等于一的话,那么对于如果是一个已经是已经是,就是他的sigma是大于零的情况下的话,那么它的最优值也是到了这个西格玛等于西格玛2=1的情况啊。

那么这个a max能量的话,它实际上是描述的是这个它其实你可以看成左边这一项能量呃,描述的是一个conformer能量,右边这项能量描述的是这个面积能量啊,等会我们讲完,下面再来讲。

呃这个air preserving disty,其实就是我们现在的目的是要让这个它的行列式等于一对吧,那么我们要让行列式等于一的话,我们最常见的就是这个c m一等于乘以。

我们目的是要让c m一乘上西格玛2=1,其实我们可以用的方式也比较多,比如说西格玛a一乘上sigma减去一括号平方,还有这个是这个这个ppt里写的。

西格玛a一乘上西格玛a加上西格玛一乘上sigma分之一对吧,那这个最优值渠道的时候,其实也是sigma一乘上西格玛2=1的情况,那么也就是说对应的是这个行列式,大家应该。

知道这个行列式其实就等于这个假货币矩阵的行列式,如果回到这个,如果我对他做完这个sp b n分解,我对他取行列式其实就是后面这三个矩阵的行列式乘积,那么ut和v t的话,它的它是一个旋转矩阵。

所以它的行列式就等于1s t的行列,是因为它是一个对角矩阵,所以应该就是对角元素乘起来,所以说为什么是这个行列式值等于这个西格玛a一乘上西格玛二的啊,那么有了这个conformer能量。

有了这个air preciv能量,那么我们刚才讲过一个映射,但如果是一个等距映射,当且仅当它是一个倒角,并且它是一个保面积的,那么所以说呢我就可以把这两项能量放在一起,直接去做一个简单的直接累加。

然后变成一个新的能量啊,那么接下来我们刚才讨论完了这个distortion的这个type,那么接下来我们要讨论一些约束啊,那么首先是我们要考虑是没有翻转,那么没有翻转是什么意思呢,就是映射后。

比如映射前的体积是映射前的面积是大于零的,那么映射后的面积我不能够小于零,面积小于零指的是什么呢,是找指的是它的有效面积啊,有效面积就是你可以认为是那个呃插成,插成完以后再点成那个z z轴啊。

那么为什么呢,因为是这个在现实生活中没有一种实际的材料,它的体积是可以负的,那么翻转元素对应的是其实是在物理上是一些physical的impossible,就是在物理上是不可能的一些变形啊。

那么所以说呢我们呃当然了,这些in如果是产生一些翻转或者产生一些映射的话,对于后面的有些应用而言,它其实不是一个好的东西啊,所以呢我们需要这个所谓的叫flip free。

那么flip free的意思就是说我映射前后的这两个三角形,它是需要有相同的符号呃,比如说什么意思呢,你这个输入是一个三角形,然后我通过这个变形变成另外一个三角形对吧,然后这个映射前意识后。

这个三角形的有效面积要是它的符号要是一样的,那比如说你的朝向都是同时朝z轴或者同时朝负z轴都是可以的,但是你就是不能够就是说产生这个跳变,因为跳变的话,比如说你现实中你要去做一个物理仿真。

你的你人民体积,如果一开始体积是正的,然后你物理仿真出来一个体积是负的东西,那这个东西在这个道理上来讲,它其实是不存在的对吧,那么所以说呢我们就希望这个映射前后的这个面积,或者映射前后的体积。

它是有相同的符号的,那么相同的符号我们刚才讲过了,这个行列式就等于这个映射后的小号p矩阵的行列式,就代表了这个映射后的这个呃面积和另射后的体积,除上映射前的面积,那么这样的话我要让两个保持相同的符号。

也就是说这个没有翻转这个条件,其实就,代表了就是就是可以等价的换为这个它的呃,映射的这个假货币矩阵的行列式是要是大于零的话,所以说这个flip free的最后的条件就对应的是,这个行列式大于等于零啊。

那么这个是比如说拿这样的一个纹理映射的,一个就是拿一个参数化的例子来讲的话,就是左边这是一个这个黄色的三角形,大家可以认为就是存在一些翻转,左边的话虽然这个红色的代表扭曲比较高,扭曲比较高的话。

但他也还是没有翻转的,那大家可以看一下,如果存在翻转的话,这个地方的这个纹理其实是没,有这样的一种棋盘格的这种啊这种这种图案了,他就被被被那个打乱掉,那么就说这个地方的纹理其实是不好的。

那么讲完这个flip free以后,我们接下来要引入一个locally injective啊,啊大家注意啊,这个locally injective和这个flip free才从道理上来讲。

其实是不是等价的,就可能有一些讲者或者说有一些文献里面,他们其实会把这个locally injective和这个flip free这两个概念混淆,就是早年的时候我的我的文章也是会把这个内容呃混淆。

但是从这个数学上来讲,这两个东西其实是呃不是一个东西啊,呃首先我们来讲一下这,个locally injection locally,首先首先这个词是locally。

那么locally的话也就是说比如说对于这样的一个三角形网格的话,我们其实考虑的是一个点,比如说这个点它的这个一领域里面的这样的一个三角形的情况,那么对于这样的一个local injective。

就是说比如说这是一个边界点,这个点是一个边界点,它的locally就是它的一领域,一个三角形,两个三角形,三个三角形的嘛,这两条黄色的边是一个边界边,那么如果是一个local的引擎体局部时。

如果是一个单色,那么根据这个单色的概念的话,如果你这两个三角形映射后的三角,形这个三角形和这个三角形发生了这个碰撞的话,虽然这两个三角形都没有去产生翻转啊,这两个三角形都没有产生翻转。

但是这个三角形插上去了,就跟这个三角形去发生了碰撞,那么对于这个这个两个三角形的交集,就是这个中间的这个公共部分而言的话,这个局部它其实不是一个满,其实不是一个单色啊,其实在这个局部来看。

它不是一个单色,那么所以说呢呃从这个映射的角度来讲,这个这个这个里面这个地方肯定不是单色,对不对,那么所以说呢所以说呢对于这样的一个,local injective的条件。

我们会在这个flip free的条件的条件的基础上,我们还要求这个对于这个边界点,他的映射后的这个三角形的一圈的这个内角和是要小于二派的,如果大于二派的话,就这个内这一圈的内角和要小于二派。

如果大于二拍的话,就会产生这样的碰撞,产生这样的碰撞的话,这个中间的这个公共部分就是会产生这些,它其实不是一个弹射啊,从数学数学上来讲,它就不是一个弹射。

那么所以说呢真正的这个locally jective,其实会在这个原来的这个flip free的这个条件上,再加上它的边界点的内,角和要小于2/2派啊,如果是一个四面体网格的话。

也就是说它的这个它的那个圆锥那个角它那个要小于四派啊,那么讲完这个locally jective以后,我们接下来我要讲一个叫做global injective。

那么刚才的这个locally jective,它其实是从从一个局部的角度来讲的,那么locate jective的角度呢,就是我要去考虑这个global inventive,那也就是说我在全局意义上。

每主点都要是这个主点多,都是满都是那个印,都是这个局部的单色啊,那么从这个角度来讲,大家可以看一下,就是说如果像这个左边这个例子啊,对我虽然虽然是一个locally injective。

或者虽然是一个flip fate,但是呢我这个远端这个蚂蚁的两个触角还是发生了这个碰撞啊,两端,比如这个这个触角,这个地方这个红色块和这个地方的这个这个地方的这个红色的块。

它们两个之间还是产生了这个碰撞,那么于是呢在这个地方它的纹理就会变成这样的一个形式啊,就这两个地方都会涂上红色,那么也就是说这个这个点,这个平面上的这个点被映射到了曲面上的这两个点上去。

那么也就是说这个它其实不是一个单色了啊,那么所以说我们要维持这个单色的话,比如说这一个红色的点只映射到这个红色的点,红色的部分去的话,我们就要要求这个整体的。

这个三角形在平面上的这个三角形它是没有发生这个intersected,intersection,就是不不能发生这个自交啊,所以说呢如果我们要去做一个全局的这个jective的话。

我们需要在这个flip free的条件下,我们还要求在平面在三角形这个参数化的过程中,或者说在整个变形过程中,我不能够产生自相交啊,那么回到这个这个这一页,这页的话其实大家可以看一下。

如果这两个地方大于二派的话,这个地方其实也是这两个三角形产生了自相交,那么所以说呢在这个讲这个global injective的时候,我们只要求这个整体的这个网,格不产生自交,并且它没有无翻转就行了。

不要求有刚才那个小于二派那个那个条件了啊,就是讲了这个flip free,locally injective和global injective这三个约束啊,那么所以说呢对于这样的一个映射的求解。

或者说对于这样的一个参数化求解的这样的一个问题的话,我们通常可以把它描述成一个大约束的这样的一个优化问题,那么对于这个带约束优化问题的话,首先它的目标函数就是比如说我们会有一些这个扭曲量对吧。

我们希望它的扭曲足够小,它的那个那么当然还会有一些特殊的指定的一些应用,里面的一些呃一些度量对吧,那比如说我希望这个映射后,他要需要跟某一个reference比较接近啊等等,anyway。

那么约束里面的话就会刚才讲到的这个basic的约束,那比如说这个呃fp free啊,local injective,global injective,那么这些约束。

那么对于这样的一个还会有一些特定的约束,比如说有一些位置的约束啊,你指定的说我这个点一定要移动到某个点啊,还有边界要对齐啊,还有一些无缝啊等等这样的额外的约束,所以整体而言呢。

这样对于一个参数化或者对一个映射的求解的话,我们一般可以把它描述成这样的一,个呃带约束的一个优化问题,那么呃这样的一个优化问题的求解是比较的困难的,那么为什么呢。

因为这个整个的优化的问题就是一个非凸非线性的一个优化问题,那么为什么呢,比如说我们来看一下这个约束,这个约束,比如说我们考虑这个无反转约束,无反转约束我们已经讲了。

它就是一个让它的行列式大于零的约束对吧,因为无翻转其实就是要让它前后的映射的这个面积的槽啊,有相同的符号吧,那么就是说它是行列式大于零,那么行业是大于零的话,我们假设这个行列式就。

是a b c d这样一个简单的2x2的矩阵,那么这个a b c d呢是关于这个顶点位置的一个线性函数,那么线性函数的话,如果我要把这个行列式大于零的约束转成。

那么也就是说它的行列式应该是a d减去bc对吧,那么也就是说这是一个二次的多项式,这也是个二次多项式,这个东西剪出来,它其实是一个非凸的约束,当然它本身是二次,要是他还没法把二次线给消掉嘛。

他没法把二次项消掉,那么所以说这个整体是一个二次多项式,那么这个二次的多项式呢,它其实还不是凸的,啊这后面我们会具体分析,为什么不是说在下一周或者下下周的课里面,我们会具体讲这个事情,它是一个非凸的。

那么说整个这个约束它是因为是一个非凸的约束啊,它就是一个高次的多项式非线性的,那么比如说我们来看一下这个目标函数,比如说我们这个地方的西格玛一比上西格玛二加上西格玛二。

比上西格玛一这样的一个mix的能量,那max能量我把它简单的转化一下,就变成西格玛一乘上西格玛分母上就是西格玛一加上西格玛,那么这个sigma一乘上sigma,我们已经讲了,他就是。

这个行这个假号比矩阵的行列式对吧,那么行列式刚才讲了这个地方,它其实就是一个二次多项式,那对于这个分母的话,sigma平方加c m平方,那么其实就是这个甲亢比矩阵的f范数,因为负数的话。

其实f数代表的是什么呢,负数代表f数的平方,f数的平方代表的是这个甲cb的转置乘上甲cb的对角线的g,那么呃就是甲亢b的转置乘上甲cob的g这个矩阵的g。

那么他的g的话就等于所有的这个奇异值加其他的特征值加起来,那么甲亢比矩阵乘上甲亢,甲亢比矩阵的逆乘上这个,甲亢比矩阵自己的话又等于呃他的那个特征值的话,就是西格玛一平方和西格玛二平方。

那么所以说呢这个三位西格玛a一平方加上西格玛平方,就等于甲壳币矩阵的f范数的平方啊,那么所以说这个平方的话,他甲方面甲和b矩阵它是a b c d,那么就是他的f放数的平方应该是a的平方加b的平方。

加c的平方加b的平方,所以这个整体呢分子部分它其实也是一个二次函数,分母部分也是个二次函数,所以整体而言呢它其实就是一个一个有理的形式啊,有理的形式,分子呢,还是一个分子分子分子还是一个to的形式。

分母是一个非凸的,那整体而言它就是一个非线性非to的啊,所以说呢这个所以我刚才也讲了,这个整个是一个二次二次的多项式,那整体就是一个有理的多项式,那整体就是一个非线性非凸的,如果你要去陪他去做求解的话。

这个呃问题还是存在一定的困难啊,啊接下来刚才讲的是一般的映射,那么我们接下来把这个问题变成了一个参数化的问题啊,那么对于这个参数化的问题而言呢,其实我们可以,啊这个参数化的问题呢。

你可以认为是其实是去把这个3d的这个曲面,映射到这样的一个2d的一个平面上,那么这个映射的过程呢,其实你可以认为是比较一个比较准确的一个定义是。

functions that push input mesh in one two one correspondence,within a two d domain,其实这句话也就是说。

你去把一个3d的这样一个网格映射到了一个2d的这样的一个定域,2d的一个产区域上,那么他这个地方是这个映射,它是希望是一个one two one correspondence,所以他希望是一个一一映射。

但是这句话呢其实是会存在一些在实际问题中会存在一些问题啊,比如说在我们的这个实际的这个大家通过这个扫描,或者说通过一些其他方式获得的这个三维的网格,它其实有时候会存在一些这种瑕疵。

比如说存在一些自交啊等等这样的一些问题,或者说一些局部的一些三角形质量很差,出现了一些相互的穿插,那么这个时候呢其实你要真要去做他的one two one是不可能的,因为为什么。

因为你的输入本身已经不是one two one了,那么这个时候呢你只能是做一个global injective参数化,所以说呢对于这个参数化而言呢,我们其实是希望找到一个映射。

使得最后出来的这个映射它是一个满全局满射,全局单色是一个全局单色,那么所以说呢我们是呃希望去把一个映射到一个2d的平面上,2d的这个参数域它是无翻转,并且全局全局没有自交啊。

所以说最后的条件是没有翻转加全局自交,当然我想了一下,为什么很简单,如果大家在做那个text map的时候,在做纹理映射的时候,如果你这个局部有一些相互的自交了,那其实你在这个画纹理的时候。

其实是没法定义的对吧,你就赢颜色映射到a a还是映射到b的两个点,其实你是没法定义的,所以我们希望这个纹理的映射它是,但是这个地方的参数化是希望它是一个globally injective的。

这样的一个约束啊,这就也是为什么我们前面在讲这个呃,引入了这个global injective这样的一个约束啊,那么对于这个参数化的过程的话,其实你还可以认为就是我把这个参数化的三维空间中的每个点上。

我给他付一个uv值对吧,就像大家写这个o b j文件一样,其实就是说最终的这个呃,最后的这个u u v就是每一个顶点最后传出来ob,这也是每个顶点我会从一个uv这样的一个形式。

所以说你也可以认为是其实就是在计算这个uv的这样的一个过程啊,当然了,参数化的这个过程,其实我们在整个的呃应用里面,我们不单单是这个texp,我们还可以用来做很大很多的其他的事情啊。

比如说去计算这个曲面与曲面之间的对应,也可以用来做remash,也可以用来做这个性质的app to transfer,也可以做这个material design呃。

也可以做这个computational art design,就是说这个art design,就是说一些艺术形式的设计,后面在我们的课程里会介绍的,我这个地方多提一句这个material design。

这个material design呢其实是不是我们这个图形学这个学科的,因为这个上次有有有对吧,就这个呃我们这个课是game 301,我们实际是在这个图形学这个方向去开设的,但是这个参数化这个东西。

其实不光是可以用在这个呃图形学的这个圈子里,其实这个参数化这个东西的应用的广泛是极其广泛的,比如说在这个工程领域,比如说在这个材料设计领域,其实现在比如说比较火的一些呃,前一段时间呃。

在那个nature communication上,我们之前还看到有一篇文章,他是要去打印,他是要去制造一些三维的这样的一个形状,但是呢三维形状的制造,比如三维形状的一些曲面的制造本身是困。

比如打从这个3d打印的角度来讲也是比较困难的,那么所以说他就做了一个什么事情呢,他就是在相当于是把一个把这个曲面参数化到2d上对吧,就跟我们这个之前做参数化一样啊,把它参数化到2d上。

然后在这个平面上呢,他去把这个材料设计好,然后呢通过这样的一些材料本身的属性属性,然后再去deform回原来的这个曲面啊,当然它里面会有一些其他的技巧,那就是共性映射。

这个后面方老师在讲课的时候会引入这些东西,所以我讲我讲这句话的意思就是说什么呢,这个参数化这个事情,其实会比大家想象的更加的这样的广泛应用会更多一点,他其实不光是在这个图一学这个圈子。

或者说有一些这种更更广阔的这个应用空间吧,啊就这边差稍微说的有点多啊,那么对于这样的一个呃,我们对对于这样的一个参数化的话,我们希望它是一个低扭曲的,并且是一个全局全局单色啊,他在这个地方放了一个视频。

那么对于这个呃,接下来我们就引入,我们接下来就介绍一些具体的这样的一些参数化的方法,嗯那么对于这样的,我们首先引入一个这样的一个啊to diebing这样的一个概念。

就是我们去呃介绍一个最最最常见的这个方法啊,这个也是我们第一次作业啊,呃首先是这个我们来我把这个定理的给大家念一下啊,就是给定一个三角形网格,它的拓扑是跟这个圆盘同配的,那么如果这个uv坐标。

他的那个边界点的这个uv边界,顶点的这个uv坐标被你放在一个凸的多边形,圆三角形,五边形,正五边形,正方形等等啊,就是把它按照顺序放在一个凸的多边形的边界上,那么如果内部的顶点是一个它的内。

如果对于所有的内部的顶点而言,它是一个周围的它的one润的顶点的一个凸组合的话,那么最后的这个uv坐标就会形成一个呃vid的那个parameterization啊,就是他是一个没有自交的。

并且是一个globally injective,是个全局全局单色啊,就是这是一个定理啊,这是个定理啊,就是说你只要满足这两个条件,他最后肯定会得到这样一个呃这样一个全局全局。

没有那个呃全局单色的这样的一个参数化啊,嗯但是它其实会产生一,些等会再看啊,比如说我们现在就是说给一个例子啊,比如说左边这个是一个输入的一个网格啊,就是这个地方这是一个输入的这样一个网格。

这是我通过这个算出来的这个参数化啊,首先这个网格呢是跟这个圆盘是同配的,然后呢比如说我把它放到了这样一个圆,把它的边界点放按照顺序放到了这样的一个圆盘上啊。

这是一个cycle或者cos放到这样一个凸的多边形上,然后对所有的内部顶点而言,这个v0 它其实就是它的周围的这些顶点的一个凸组合,凸组合的意思就是说这个,全它是大于等于零的。

并且所有的全加起来是等于一啊,这是一个凸组合,比如最简单,就比如说这个点它周边有六个点的话,我这个拿不到i就可以直接取成1/6对吧,那么1/6的话,所有的全都是大于零的,并且1/6加起来。

并且也是等于零的,等于一的,那么这样的话它是这个呃v0 ,这个内部点就可以写成这个周边这些点的一个凸组合啊,那么这样的形式的话我去那么现在我可以对于这个这个边界点,可以在这个构造过程中,我。

已经放在了这个圆盘上,那么也就是说这个边界点其实也就是都都是已知的,那么接下来你根据这样的一个图组合的话,我相当于可以连列出来很多的线性方程组,可以得到一个线性方程组对吧,一个顶点我有一个线性方程组。

那么最后的话你就可以通过求解这样的一个线性方程组,可以把这个所有的内部点全部给求解出来啊,呃所以你需要去解一个线性方程组,那这是我们的第一次作业啊,就是你们第一次作业也很简单,就是拿一个网格。

然后去算一个这样的一个参数化出来,然后你最后把这个参数化可能出来,或者贴个纹理出来给大家看一看啊,这是第一次作业,那么对于这样的一个特殊化行业,大家可以看一下这个地方。

其实对于比如这样的一个这是一个骨头还是一个什么什么模型,如果你通过这样的一个参数的话,你会发现中间这个特别是这个骨头的上部,你就会发现它压缩的非常非常小,那么压缩的非常小以后呢。

就会导致这个地方的这个三角形啊,就是如果在极端情况下,可能会虽然我前面那个定理说的是,最后一定是一个没有翻转的,并且是一个全局自交的,全局没有自交的,那么对于这种很极限的情况下,比如这些点全部堆在。

一起的话就会出现什么呢,就会出现三个点,就会出现三个点,在这个比如说在这个float的意义上,就是在这个浮点数意义上,它最后其实就是一个在这个浮点数意义上,它其实就是一个点,那么这样的话它虽然不是它。

它其实是一个行业是等于零的情况,那其实就是一个退化的情况,这种情况也是很常见的啊,特别是在这种比如说这种很极端的例子下,如果你把这个三角形全部压缩在一个地方的话。

那么这种txt bin就是说在这个数值上可能会呃会可能会失败啊,所以说这个之前也有一,些文章去讨论这个事情,就是说如果数值上失败了,那我怎么去处理啊,呃讲到这个地方呢,我们就介绍了这样一种最经典的方法。

我们接下来按照我们的这个呃呃内容安排,我们接下来会介绍三种三种具体的这个参数化方法,三种经典的参数化方法啊,那么这些参数化方法呢只考虑了这个低扭区,而没有去考虑这个全局,没有单全局单设这样的一个性质啊。

那么首先我们要介绍的第一种方法呢是这个a b f啊,就这个angle best flag,就是一个基于一个角度的这个flash啊,这个地方稍微注意,稍微这个把这个英文的词给大家解释一下。

这个地方有flaking啊,什么这个i folder,i’m folding啊,什么parameter zation啊,这些词都是一个意思啊,就是相当于是什么呢,也很也很形象。

就是把三维空间中的这样的一个三角形网格摊平,或者说把它一个展开成一个2d的一个形状啊,所以说这个叫做flash或者and folding,或者叫做panterization。

那么接下来我们要介绍的这个是一个基于角度的这样一个,fighting的一个算法,那么这个方法也是一个非常非常经典的算法,主要参考了下面三篇文章啊,首先呢这个这个angle best这个flying的话。

他的这个key observation的话是这样的,就是说这个参数化的这个三角形,它是可以,如果如果你这个三角形所有的三角形的内角全部给定的情况下,就是比如说对于下面这个三角形,如果你的阿尔法一。

阿尔法二,阿尔法三,如果全部给定的情况下,其实你可以去把这个三角形给恢复出来对吧,那么这个三角形恢复的过程中其实只差一个scale,对不对,那么其实如果你只差一个scale的话,就意味着什么。

就是我如果只要定下来一条边的scale,那就是你其实可以整个网格就可以恢复出来,对不对对吧,你比如说你这条边边的长度我定好了,那么也就是说你这个三个角也给定的情况下,其实这条边和这条边其实也就能定出来。

这个角也是能定出来的,对不对,这样这样很简单,对不对,因为讲嘛你就直接可以把它算出来,那么算出来以后呢,那也就是说你这个其实也就是说你真正比如说这个参数化的过程中,你如果把这些角给算出来了以后。

你再去恢复这个uv的话,其实这个事情是比较简单的,或者说这个事情是一个可以做的事情,所以说呢这个angle beast这个flatten它的key observation的话,就是说这个参数化的三角形。

它可以通过这些角,并且加一条边,这样的话唯一确定出来一条边的长度,唯一把这些顶点给确定出来,那么所以说呢整个的算法就变成了去寻找这些角,所以这个算法就变成了两步,第一步是去寻找所有三角形的内角。

第二个是去用这些内角去恢复出来这些所有的这个uv,就是所有的这个顶点的位置啊,所以说呢呃这个算法就变成两步啊,就是寻找角计算角,第二个是用脚去重建这个uv坐标啊,那么所以说这个问题就很容易了。

就你可以直接把这个问题就直接写出来,这个它的目标函数呢,就是说我,要让这个优化后的这个阿尔法讲,阿尔法这个角跟这个输入的这个角尽量的接近,那这样的话我才能够使得这个最终的这个三角形看上去是一个就是。

看上去就是一个conformer变化对吧,就是如果你的内角和原来的角色比较接近的话,那么原来三角形其实好像相当于是一个呃,类似于去做了一个ctrl变化也一样啊。

当然这个地方他还做了一些这个scale什么的,我们这个地方呃呃这个这个也无关紧要啊,但是呢你你这样的目标函数就虽然很容易射,但是你的约束其实是比较麻烦的,首先啊对于所有的三角形的内角和对吧。

我希望它是大于零的对吧,这样的话你是比较正常的啊,这是这是应该的,所以你要让所有的三角形的每一个内角,这个,t呢你是认为是这个t是某一个三角形,这个是i是这个三角形里面的123,哎呦这地方是一啊。

写错了,这p t上应该是阿尔法1t阿尔法2t,阿尔法3t就是这个三角形里面有三个角a等于123,那么就是阿尔法1t阿尔法2t阿尔法3t都要大于零,那么当然了,这个三角形的内角和要加起来等于派对吧。

是要等于180度,那就是阿尔法1t加上阿尔法2t就是这t这个三角形,它的内部角阿尔法一,阿尔法二,阿尔法三加起来要是派对吧,加起来180度,那么,对于任何一个点,比如说这个点v而言。

它的这一这一圈的角在,因为它是一个参数化到平面上去的,那么也就是说他的这一圈角塞起来应该是个二派,对不对,所以说呢如果对于一个内角的话,说对于一个平面的角的话,它其实它的这一圈角,一个角,两个角。

三个角,四个角,五个角,这个角五个角加起来应该等于二派对吧,那就是这个是一个三个约束,那么对于这样的一个重建的还会有一个约束啊,刚才说的是这个角这个角这个角这个角这个角加起来要二派。

那么还会有另外一个约束,就是是一个叫做重建的约束,这个重建的约束呢这个解释起来也比较的简单啊,啊就是解解释起来也比较的简单,就是这些对于这样的一个弯润的情况,这些绿色的角但可以认为是左边的乘积。

就是这个左边这个角阿尔法k什么加一什么t,这这这个符号它代表的就是这个绿色的角,大家可以看一下,就是按照这个三角形,按照这个顺时针走的话,它那个逆时针走的话,就是它这个绿色的角,然后这个是绿色的角。

这个是绿色的角,就会发现它其实是这个都是指指向这个角,然后这个,是紫色的角,指针的讲就代表的是这个角,那么也就是说这个紫色的角跟这个绿紫色的角的sin值的乘积,应该等于这个绿色角的sin值的乘积啊。

为什么会有这个性质呢,其实这个推导来也比较简单啊,比如说我们来看一下,对于这条边而言啊,对对于这个三角形而言啊,对于这个三角形而言,对于这个三角形而言,这个绿色的角比上这个绿色角的这个sin值。

比上这比上这个紫色角的sin值应该是等于它的对边,比上他的呃,比上这条边对吧,就是正弦定理,对不对,就是说这个紫色角的sin值,比上不绿色角的sin值,比上这个紫色角的sin值,应该是这条边的长度。

比上这条边的长度,那么你考虑到下一个角,那么同理,那么这个角的sin值比上这个角的这个绿色角的sin值,比上这个紫色角的sin值,应该是这条边比上这条边,那么你把这个东西走一圈,所有的三角形走一圈。

你就会发现,因为它是这条边,比这条边,这条边比这条边,这条边比这条边,这条边比这条边,这条边比这条边,那么你把这条边所有的这个就构成了一个循环,对不对,你把它乘积乘出来就应该是等于一了,那么这个。

时候呢也就是说你的这个就会构造出来这个sin值,就是这个绿色的角的sin值乘积,是等于这个紫色角的sin值的乘积的啊,那么这就是最后一条这个重建的这样的一个啊约束啊,那么有了这个约束以后呢。

我们的目的当然要去求解了,但是大家可以看一下,这个求解其实是比较困难的,理解起来比较简单,但这个求解比较困难,大家很显然嘛这个约束它其实是一个超一个超级非线性非凸的约束,对不对。

这是一堆sin sin本身还是个周期函数,然后你又是一个五六个sin值乘积乘出来的,那,这个值本身就是一个非常复杂的函数,如果你这样的,你直接选a的是个等式约束,他肯定是个匪图边缘性的。

如果你带进去求解的话,肯定很麻烦,那么所以说呢这个地方就发展出来的一个方法叫做a linear a a b f,就是一个线性的a b f,那么现在的f h呢。

它的观察还是说诶这个重建的约束就那个sin值乘积了,乘除了乘起了那个约束呢,它是一个非除非线性的,并且是很难求解的,那么所以说呢他就说哎这个很难求解,那我能不能把它转成一个比较简单的方式呢。

它就在这里面做,了两步,一个是给它两边左右两边取了个对数,那么现在这个地方是这个乘积的对数对吧,乘积的一个对数,那么所以说就变成了一个对数的和,对不对,就乘积是啊,再取对数,其实就是这个每个元素取对数。

然后再把它求和求下来对吧,那么所以说最后的这个左右两边就给它变成了两个呃,加和的这样一个形式,然后第二呢他又做了一个操作,是把里面的这个对角log取了一个tag展开。

它的展开呢就是把它转成这样的一个呃对数的,它的展开首先是在这个,比如说你看这个这个式子啊,sin阿尔法k加一,那么比如说这个k阿伽玛k t就是这这是一个什么呢。

这是阿尔法k阿尔法呢就是这个运算后就是优化后的那个角度,伽马呢就是阿尔法呢是伽阿尔法呢是这个最后参数化出来的这个角度,伽马呢是这个输入网格上面那个角度。

那么你可以在这个把这个对数呢在这个伽马it这个地方做一个ta展开,那最后就会长出来什么呢,这是这是它的展开,所以这个是函数值,再加上它的一阶导数,那么这个sin的这个一阶导数的话。

它应该是对数学对数求导,就应该是这个,x分之一对吧,然后再对里面的这个sin求导变成cosine,所以cosin除以sin,cos in除了sn就是一个余弦,余余余弦余弦值就是cotta。

那么然后再乘上这个x这个小量,就两个之间的这个difference对吧,再乘上这个小量,然后后面再加上一些二阶小量,那么他把这些高阶量给抛弃掉,那么最后的话你会发现这个log的这个取完。

最后就可以转成这样的一个关于e t,关于这个两个阿尔法,这个阿尔法是优化后的角度,伽马是这个输入的角度,那么这个e t呢是这两个角度之间的difference,那你就会发现最后的这个他。

的这个reconstruction,就这个这个约束的话就会转成关于这个difference这个角度,或者是这个误差这个角度的这个线性和线性表达啊,那么也就是说指我就把这样的一个非to非线性的一个约束。

转成了一个通过一定的高阶量的近似,把它转成了一个线性的约束啊,通过这个检测这个线性量的线性的约束以后呢,整个问题就变成了目标函数,我希望这个呃输入和输出之间的这个difference要足够小对吧。

那么所以说我的目标函数就是一个二次的目标函数,那么约束的话我会加一些线性约束的啊,这是一个,线性约束,这是一个线性约束,这个约束也转成了线性约束,那么这个约束呢我们暂时先不考虑啊。

那么所以说呢最后就变成了一个二次的目标函数,加上一个线性的约束,线性的一堆一堆的线性线性约束啊,所以我们变成了求解这样的一个目标函数,那这个目标函数它其实是会存在下面这样一个解析式的啊。

首先要去求解这样的一个优化问题的话,首先我要把他的这个用这个拉格朗日乘子法,我要把这个东西a e e a e等于b写到这个上面去啊,就拉格朗日乘子法,然后最后对。

这个e求导对这个拉格朗日前面的那个兰姆达那个拉格朗日因子求导,最后我们就会得到这样的一个呃线性的呃,就会得到这样的一个目标函数,就得到一个这样的一个方程,给大家一个线性方程组求解。

这个线性方程组呢我就可以把这个最优的e求出来,那么其实这个最优的e呢还会有下面这样的一个解析的表达式啊,这个推导如果有b b d的话,我可以给大家写一写啊,但是现在没有bb的话。

大家可以回去自己再上去思考一下,就是为什么从上面到下面我可以直接写出来,这样的一个形式啊啊我就不给大家去推导了,那么对于这样的条对于为什么要去做这样一个转化呢对吧。

那感觉可能有很多很可能有的同学觉得哎这个多此一举对吧,首先我们来看一下这个矩阵的规模,这个矩阵的规模,这个d这个d呢它其实应该是等于这个e的变量,那么应该是跟所有的内角的变量相数量一样。

那么内角的数量应该是这个三乘上f对吧,就是这个三角形的数量,所以应该是三三倍的三角形数量的这个为数,再加上,南姆达南姆达维数是这个线性线性约束,这个线性约束,首先一个三角形有一个内角和约束。

一个顶点有一个内部,内部顶点有一个边界和约束,然后内部顶点还有一个重建约束,所以这个约束的量也是很大的,也就是说这个拿不到本身的维数也比较高,所以说整体而言,这个方程的维数是相对的比较高的。

但是如果我把它写成这样的一个形式的话,首先这个d是一个对角阵,第二对角阵,也就是说d的e其实我就直接可以写出来了,那么这里面这里面其实只涉及到矩阵的乘法,然后,呢并且对对他去求求逆,求逆的话。

其实我要去求逆乘上b其实也是要去解线性方程组的,但是这个建立方程组的维数其实只跟这个a的维数相同,它没有跟这个他他其实不会很大,就是这个为数不会很高,就它的维数会比这个方程的位数低啊。

那这样的话它这个解起来会稍微快一点,那么讲完这个上面这个过程中,我们讲过a b f它只是两部分,对一部分是求解这个角,第二部分是去恢复这个参数化,那么接下来我们要去恢复参数化了,那么恢复三句话的话。

有两种方法,一种是这,种叫做贪婪的方法,他那个方法就是我一个三角形,一个三角形的去恢复对吧,我就是比如说我等会儿等会儿再讲嘛,一个三角形,一个三角形恢复,那么也就是说对于一个三角形而言。

如果给定它的两个顶点的位置和这个三角形的三个内角,那其实它的第三个顶点其实也是可以被唯一确定的,那这句话什么意思呢,就是说我首先选一个初始的种子,那我可以把它的两个顶点固定住,那么第三个顶点求出来。

那么再从这个点,我在可以从这个三角形开始,我去可以去广度便利深度遍历,它所有的其他的三角形,那么在便利到三角形而言,它其实都是两个顶点,已知一个顶点位置,并且三个角已知。

那其实我可以把所有的三角形通过这种就是贪婪的方式给恢复出来,那么还有一种方式呢,是通过解这样一个线性方程组的一个最小二乘的方式啊,我们分别来讲啊,这个刚才已经讲了,就是说我首先是这种贪婪的方法。

就是我先选一个三角形,称为种子三角形,然后呢把这个三角形呢啊这两个顶点定下来,第三个顶点就是通过这个内部的,通过那个内部的三个角,我就可以,把这个点给恢复出来。

然后对于这个三角形旁边的三个三角形而言的话,它也是两个顶点,已知三个角已知,那我可以把那个三角形也恢复出来,那么通过这样的恢复的话,我就可以把所有的三角形全部恢复出来。

但是呢因为这个地方会存在这个数值误差,最后出来的三角形的质量一般都比较差啊,通过这种呃他的方法做的话,那么所以说呢我们这个地方会引入这个最小二乘的方法,这个最小二乘的方法的思路呢。

其实跟我们的这个刚才讲推导这个推导这个同建约束的时候是一,样的它其实用的是这样的一个正弦定理,首先我们来看一下这个三角形p1 p2 p3 这个三角形p1 p2 ,三角形的话,p一这条边p1 p3 。

这条边的长度比上p1 p3 ,这条边的长度比上这个p1 p2 这条边的长度,其实就等于这个sin阿尔法二除上sin阿尔法三对吧,就是正弦定理,那么我们把它写成这个向量的形式,我们把它写成向量的形式。

我们知道这个p一和p3 ,p1 p3 这两个向量不是在一个方向上的,那么我需要把这个p3 这个p一到p3 这个向量要把它转成到,p一到p2 这个向量。

或者说p一到p2 这个向量要转成到p一到p3 这个向量上来,那么这个时候我就要逆时针旋转这个阿尔法这个角度,那我要把这个向量旋转阿尔法一这个角度的话,其实就是用这个旋转矩阵乘上这个向量。

那么这样的话我会这个旋转矩阵乘上这个向量以后呢,这个p一到p p1 p2 ,这个向量就跟p一和p3 这个向量就变成一个方向了,那么这个时候呢,因为这两个向量之间的长度还存在这样的一个比例关系。

我再把这个比例关系写在这,那么这样的,话我就会得到一个线性的等式,就p1 p3 ,这个向量跟p1 p2 这个向量它会要满足这样一个等式对吧,那么对于所以说对于一个三角形的话,我就需要满足这样一个等式。

所以对于一个三角形而言,它就需要满足这样一个等式,那么也就是说对于每个三角形而言,我都可以满足这个等式,但是刚才我讲过这个如果你这个等式它其实是不一定满足的,所以我需要通过这个最小二乘的方式。

那么相当于我们把这个等式两边取一个平方,那么这个等式它首先是一个线性的等式,那么,取个平方以后,他最后其实我就可以去把所有的这个顶点位置给求出来了对吧,那么但对于这个再去求这个参数化的时候。

它其实呃如果你只是还需要去固定两个点啊,因为它这个整个的这个三角,如果你只用三角形去定义一个参数化的话,它其实会存在一个旋转加一个全局的放缩对吧,我们之前也讲过,那么旋转的话是一个维度的一个角度。

那么一个变量,然后skills另外一个变量,所以说它是一个你看你需要把这些的这个呃旋转和这个平移的,这个旋转和这个scale,还有平移的这个,自由度去掉,旋转加平移加自由,旋转加平移加skill。

这个四个四个自由度去掉,那你要把这四个自由度去掉,就是你就需要固定两个顶点,就所以说你在这个你在这个参数真正的去恢复这个参数化的时候,你需要去选择一个三角形。

把这个三角形的两个顶点固定在你想要固定的位置,然后通过去解上面这个把上面这个线性等式的给它取一个平方,取一个二范数,然后去解一个最小二乘,那么这样的话你就可以把这个所有的顶点位置也恢复出来了。

通过最小二乘好,那就是我们讲到的,第一个方法就是解下面这样的一个线性最小二乘,然后你要去固定它两个顶点啊,啊这是一些这个l a b f的一些结果,结果还是挺好的。

那么接下来我们要介绍的第二个方法是这个l s p m这个方法,那么这方法参考的是一个22002年的这一篇,非常经典的西瓜文章啊,那么我们知道他这个文章呢也是跟这个a b f一样。

他只考虑了这个conformal的这个角度,conformal的这个distortion,因为a b f的话,他其实是希望这个意识后的角度跟输入的角度尽量接近,所以它是一种conformer的角度。

那么对于这个lsm的话,它的目的也是这样的,他希望这个映射前后他的这个是一个相似变换,那么我们刚才讲过,如果是一个相似变换的话,它其实是一个skill乘上一个旋转矩阵对吧,这是一个二维的旋转矩阵。

cosine乘上负的sin,sin乘上cos in,所以说他是如果你要去做一个2d的这样的一个conformer的话,它其实是一个scale assimilar,一个相似变换,或者说它是一个相似矩阵。

那么消除矩阵的话是一个skill乘上一个旋转矩阵,那么所有最后表现出来的应该是这边是一个a这边是一个a,这边是一个负b这边是一个b对吧,你看看你看一下cos乘上s。

cos乘上s就是这边的a这边的sin乘上s的话就是,这边的b所以最后这个甲和比矩阵它是如果是一个相似变换,它应该最后出来的形式是a负b a f b的这样一个形式,那么既然你要去让他。

你的目的是要让他变成这样,我们之前讲过这个假号b矩阵,它其实是是ph u比上partix parshu,比上partiy,partial v partix,partiv partix。

那么你要让它变成这个形式,那么也就是说你要让这个这个对角啊,这个对角你要让它相等,就party右比上partix等于partivp上partial eboy,那么这两个对角应该加起来等于零。

所以说是pushu比上party y等于负的psv除上partial x对吧,所以你你你应该让他满足这,个形式,那么你要让他满足这个形式的话,那么他最后出来的这个变换就是一个相似变换。

那么这两个方程的话,如果在这个复变函数里面去看的话,它其实就是柯西迪拜方程啊,这个在后面这个方清老师会在深入的介绍一些,这个数学上的一些东西啊,我这边就不去介绍了啊,所以我们的目的是要让他这个整个的。

所以参数化的过程,我要让他这个partial you partix等于这个partial v partial y partial,you pury加上papv px等于零对吧。

那么既然是我们的目的是要让它等于零,但是你真正做参数化的时候,你其实不,可能让它等于零对吧,那么所以说呢这个地方用一个能量惩罚它对吧,我既然要让它这两个相等,那我就让它两个减起来的平方。

那我既然要要让他加起来相等,那我就让他的那这样加起来要等于零,那我就去惩罚他这个离零的这个离零的这个距离对吧,那么所以我这个地方用了一个最简单的这样的一个二次的一个形式。

那最后呢就是会得到这个lcm就会变成这样的一个能量形式,就pass you除上partix减pu px减去psv psy括号的平方,那么这个地方其实度量的其实是其实度量的是这个第,一项对吧。

这两个接近的程度,那这两个地方呢就是ph右臂上爬hy加上pcie发生x,那么这个地方其实度量的是这一项,那么这样的话我就可以去度这个能量,就度量了这样的一个呃,这真实的面积啊。

这是已知的面积是一个conformal的这样的一个距离,那么这样的话你当你要去求解这样的一个问题的话,那么所以说整个这个整个这个能量函数就是个二次能量函数。

也是它其实也是一个呃类似school就是一个最小二乘的一个形式,那,么最小二乘的话,你要去求解,就是就是把它写成这个违逆的形式是吧,a的转置乘上aa那就法方程的形式。

a的转置乘上a乘上x等于a的转置乘上b对吧,这样的话你就可以把这个方程给求解出来,那么这样的话你就可以把这个uv给求解出来,但是呢你在这个求解过程中,我们其实已经讲过了。

它其实是会跟这个它其实会有四个自由度,需要一个是全局的旋转,全局的平移,还有全局的这个scale,其实会有这样的一个四个自由度,所以说呢你在真正在做的时候,你需要去固定两个顶,点啊。

就跟刚才的a b f一样,你需要固定两个顶点,那么固定两个顶点的时候呢,它其实会产生这个非常大的这个影响,比如说这是一个牛的例子,你给它固定两个顶点,固定不同的顶点会出来完全不一样的结果啊。

所以你这个两个顶点怎么选,使得它这个有这个参数化的结果,质量更高或者什么等等,这其实是一个相对还是没有去探讨的一个问题啊,怎么去选择两个点固定啊,大家也可以看到这种方法,它其实也是会产生这种自交啊等等。

都其实都是没有,其实没有办法去避免的啊,就他只是去在某种平均意义上,他去把这个扭曲给压下来了,但是他其实是没有考虑直接约束的啊,好接下来我们要介绍的第三个方法是这种a i p的方法。

或者叫或者是主要是参考,是刘玉刚老师在08年发的一篇经典的文章啊,那么刚才前面的a b f也好,后面的l s c m也好,我们其实当时的目我们的目标都是要让它是尽量是一个conformal对吧。

那么这个时候呢我们希望它是要变成,我们还是希望能考虑说它是一个尽量是一个刚性的,或者尽量是一个呃iso magic就是个等距变换,那,么等距变换。

我们之前讲过它其实我们希望它的假货币矩阵是一个旋转矩阵对吧,那么所以说呢我就可以很简单,我可以直接去把这个目标函数构造出来,那目标函数呢就是这个甲壳b矩阵减去l t l t是一个旋转矩阵。

或者l d是一个其他的,如果你要是一个combo映射的话,它就是相似矩阵,那我们现在就以这个旋转矩阵为例啊,那么也就是说这个甲亢币矩阵减去这个旋转矩阵,给他开a算数,那么这个f函数的范数。

其实就是度量的这两个东西之间的这个距离对吧,那么所以说,呢这个函数就定义了这个假货比矩阵跟这个以某一个旋转矩阵之间的,这个度量,那么你要去真正去求解这个问题的话,其实首先是这个假货币矩阵。

它本身是它其实代表着它背后其实是那个二维的这个参数化的坐标,对吧,那这个l t呢它其实是一个旋转矩阵,但这个旋转矩阵本身你自己也是不知道的,那么也就是说这里面的变量就变成了这个假货币矩阵里面的。

这个二维的参数化坐标和这个lt里面这个旋转旋转的变化,所以说呢对于这样,的一个这样的一个优化的目标函数,一部分是这个2d的参数化坐标,还有是这个lt就是这个目标的这个旋转矩阵啊。

那么你要去对他去求解的话,那么最经典的方法就是这样一个交替迭代的方法啊,交替迭代的方法呢,也就是说我要去对这个x2 d的参数化坐标与这个呃旋转矩阵之间,2d的参数化坐标。

2d的参数化坐标与这个旋转曲线旋转矩阵时间,去做一个交替迭代对吧,那么首先说一说固定2d的参数化坐标,那么我要去对每一个三角形,而言我要去优化它的目标的这样的transformation。

就是那个旋转矩阵,那么给定这个目标每个三角形上的旋转矩阵的话,我就要去求解这个二维的参数化坐标,这样的一个交替迭代的过程,那么对于如果我这个l o t这个矩阵给定的情况下,那么接替我们刚才讲了。

j t其实是关于这个2d的参数化坐标,它是一个线性表示,那么所以说呢整个这个能量它就是一个最小二乘的形式,那么最小二乘的形式的话,我其实就可以通过一个求解线性方程组的方式。

去把这个啊就把这个方程给解除了,所以说对于这样的一个问题的话,这个global这一步它其实是比较简单的,我就通过求解一次线性方程组,我就可以把它直接给求解出来。

对那么接下来我们要目的是要去考虑这个global的去local这一步对吧,那么local这一幕的话其实是什么呢,我们回到这个目标函数里来,这个l t呢它其实是定义在每一个三角形上的。

所以每个三角形我都可以单独做,就是其实什么其实你就可以认为在这个参数化迭代的过程中啊,这个当前已经有了一个,参数化三角形,那么你要去给这个三角三角形估一个最好的一个投影的一个旋转矩阵。

所以说呢你的目的是a prossimation one,一个你这个jt这个假货币矩阵,其实你已经知道了,就是看你在你在这个local这一步,其实你已已是已知的。

那么这个时候呢你需要去给他去用另外一个旋转矩阵,去给他去做一个最优的一个近似,那么也就是说相当于是因为这个神的矩阵,或者说这个矩阵它是在每个三角形上是单独定义的,所以你可以从只看一个三角形来看。

那么对于一个三角形而言,他们的这样这,样两个之间的距离是甲方比矩阵减去这个旋转矩阵,他们之间的f范数,那么f范数的话我可以写成这个甲亢币矩阵,按减去这个矩阵的转置乘上甲亢币矩阵。

减去这个旋转矩阵的这样的一个矩阵的g啊,绝f3 数的平方可以看成这样的一个旋转的一个曲线的g啊,这是一个因为g的话就是对角线元素加起来嘛,那么这个这两个转一个转一个矩阵的转置乘上他自己的话。

其实它的对角线其实就是所有前面这个元素的,那个的所有元素的平方和啊,他们说可以选择这个g那么,现在我们的目的是要去找一个最优的这个lt,那么也就是我们要去尝试去minimize。

就是这个a d就是minimize上面这两个矩阵的这个difference对吧,然后怎么去做这个事情,那这个地方已经把这个答案给告诉大家了啊,就是说通过是一个所谓的sp t分解,然后呢去这个去求解。

然后呢把这个lt给给给写出来啊,这个推导的过程其实是其实是需要自己去思考一下的啊,就是说他这个地方也给了,其实这个东西呢也可以不要看,就是你要去minimize的是这两个这,个g对吧。

那么其实你要去mini这个东西,你其实是需要去把这个矩阵给展开,把这两个东西整乘积给展开,其实你要最后你要去mini马还是这两个之间的记,其实你最最后对应的。

其实你要去是maxim这个甲克比矩阵的逆减去甲壳币矩阵的呃,就是l的转置乘上甲高比矩阵的迹呃这个地方直接给结论了啊,我这个推导我也不讲了,这个推导其实在很多地方都会出现这这一套东西。

比如说这个呃logo logo去求解这个这个这个deformation啊,比如说后面讲这个logo logo去求解这个,比如说i c p里面去求那。

个最近最最近点就那个最优的那个best的那个rotation啊,还有translation啊,这里面用到的都都是这个东西啊,啊这里面其实是要简单推导一下的,里面会用到一些定理啊,用到一些事。

那最后我不管了,我直接把结论告诉大家啊,如果你要去优化这样的一个这个东西的话,其实你最后的其实做法就是把这个阶梯变成优西格玛vt,就给他做一个带符号的s v的分解啊。

那么它的最优的这个旋转矩阵就是u乘上b的转置啊,然后如果你是如果你要是一个相似变换的话,你要乘上一个对角矩阵,那么这,个对角矩阵取的是sigma加上sm 2分之一啊,为什么是u乘上v的转置。

大家可以回去推导一下啊,就是为什么是这个,如果有兴趣的同学啊,这我觉得也可以当做一个书面作业吧,如果有兴趣的同学可以去推导一下,但如果如果只想用一下结论的话,大家知道这个结论就行了。

那么这样的一个整个的一个参数化的过程呢,其实大家可以认为是什么呢,就是你要去给他去做一个参数化,其实就是分为这个local和global不对吧,那么local部的话。

其实你可以认为是它其实是把这个三角形给他去求一,个每个三角形求一个最优的这样的一个仿射旋转矩阵,那么其实你相当于是把这个三角形就是都打碎了,因为它合不上了,其实你是把这个三角形又合上了。

然后这里面去交替迭代,就是最后会得到这样的一个收敛啊,那么这个local global呢,这个迭代其实在后面也有人去做一些,更更因为他的local global这个东西说的多一点啊。

logo logo这些东西在后面有很多有影响的工作,比如说这个sheep up,比如说这个project dynamics,就是说这个动态做那个仿真里面的,其实本质上都是。

这个东西啊就没有什么本质上的一些改变啊,都是这些东西都是多口古老文,就局部给他找一个最优的全局,再给他搞搞起来啊,那么如果我们把这个logo logo这个东西就是我不不不是logo logo。

如果我们把这个前面的目标函数就是这个假货币转甲后币矩阵减去lt,如果把它转成这个呃,如果从这个奇异值的角度去看的话,那么其实他最后conformal的这个地方它其实就是等价于。

如果你这个lt如果它就是一个相似变换的话,它其实最后对应的就是一个西格玛a t西格玛a一减去西格玛二的,这样的一个平方的一个形式啊,就是这个l o s t m也是这个形式。

其实如果你这个l o t看成是一个相似变换的话,这个形式啊得到了这个形式啊,这个能量其实是跟l s cm是一样的啊,如果这个l o t如果是一个旋转矩阵的话,你最后会得到的他的这个度量。

其值的度量是西格玛1-1的平方,加上西格玛2-1的平方,这两个数的推导其实也比较容易,你只是指你这个lt其实就是比如说你这个对于这个的话,就是u乘上西格玛对吧,你把啊u乘上v的转置,那么你把u。

提起来v提下来中间就是sigma减一,然后就给它取个算数,那么u的话,因为这是两个相似,就是右乘上对角,对角是西格玛,西格玛减去单位正在乘上v的转置。

那么这两个矩阵它实际是在这个左右两侧呈上的两个正交矩阵,或者说两个乘上了两个相似矩阵,承受了两个正交,承受了两个旋转矩阵,那么这样的话它这个呈旋转矩阵乘,或者呈这个正交矩阵成和不成。

他的这个奇异值其实是不改变的,而特征值其实特征值其实是不改变的,所以说呢这个你乘上这个u和乘上b的转置以后,它的这个特征值其实是跟这个中间这个西格玛减去单位阵的特征值,是一样的,再给它取分数。

其实就是这个西格玛1-1括号平方,加上西格玛2-1号平方啊,这样的话其实你可以把这个跟我们其实前面的奇异值这个联系起来,所以说这个对于这个a r a p这个方法的话。

它其实优化就是这个西格玛a一减一括号平方,加上西格玛2-1括号平方啊。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

时间差不多,正好现在一八十五分钟啊,我们现在这个课程内容就基本上结束了啊,我看看有没有什么问题啊,第一个问题,就是作业已经刚才已经讲过了呃,作业除再重复一下,我们就是第一次作业。

就是我们会在那个主页上挂一个框架出来,然后当然在我们的框架里面的框架,大家可以在我们这个框架里去实现一下那个toy bin啊,就是把边界印到一个to的区域上,内部的点是周围顶点的这个突组合啊。

然后去求解一个线性方程组,得到这个参数化结果,大家可以把纹理画上贴一下纹理,看一下这个贴出来纹理的效果啊,有个同学问这个lsd里面的目标函数里面,为什么,会要乘以面积啊,因为大家可以想一下吧。

就是说他他这个如果从这个连续到离散的角度来讲,它其实应该是一个积分的过程对吧,那么积分的过程,因为你这个每个三角形上的这个现在角靠背矩阵都是一样的,那么你要去把这个积分转成这个就是离散的这个求和的过程。

其实就是要乘上一个面积,乘上一个量,为什么要乘这个面积,因为就是如果从这个连续的角度来讲,如果你把这个网格看成是个连续,就不是一个c0 的,你就是说白了就是,你这个能量应该在这个网格上求个积分。

那你只不过现在每个三角形上,你的这个l s u c m的每一项都是一样的,所以你这个积分呢就转成了这个求和,就是面积乘上这个再向目标函数啊,觉得还是这个积分的这个离散化啊。

就是它这部分函数你可以认为是定义在整个的这个网格上,所以你需要去给他去求一个积分啊,积分的话呃,因为每个三角形上的是一个面积分,面积分的话,其实你会把它最后乘出来,就是一个面积乘上它。

这个因为他每一每一个面都是一样的,如果没有,我。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值