朱峰社区在本节为大家带来好用的减面工具:polygon cruncher,希望能为大家带来帮助。
软体名称: polygon cruncher
开发厂商:mootools
适用软体:lightwave3d、3d studio max
demo版下载:有
相关网址: http://www.mootools.com/plugins/us/polygoncruncher/index.asp
在模型的製作上,我们通常会碰到一个蛮困扰的情形,就是得跟多边形的数量奋战。多边形的数量愈多,自然的可以做出来的模型将愈细緻,虽然对於物件在建构上,多边形的数量达到一个程度之后,即使你再去细分它也没有什麼意义了。但是由於在製作过程中我们可能还会去使用smooth shift,metanurbs。bandsaw…这些可以对多边形做细分动作的指令,因此常常不经意的让多边形的数量一下暴增许多。这样的结果不仅对於模型的细緻度帮助不大,真正在製作动画的时候,麻烦也很多。不管你所用的3d加速卡能够显示多大的多边形数量。当整个场景裡头模型的多边形数量一多,在编辑上也是一件蛮沉重的负担的。
不过,模型既然已经完成了。总不可能再重新製作吧?当然不可能。通常我们会使用减少多边形面数的方法来帮模型”瘦身”。lightwave的modeler裡头提供了几种”减肥”的方法,我们来看看它”减肥的功效吧!
我们载入了一个机器人身体的模型,这个模型的多边形面数高达52,520个多边形面数,算是一个蛮复杂的模型了。
不过,它是否真的需要这麼多的多边形面数才能构成它这副模样呢?那可就不见得了。我们选择conctruct->qemloss2这个指令,在goal栏位裡头输入0。5或是50,这两个数值所代表的意思都是将多边形面减少1/2。虽然在面板裡头还有许多可以设定的地方,不过因為笔者所要提的重点不再这裡,因此我们保留其预设值。
执行了之后,qemloss2会开啟新的图层,并且将减过多边形面的物件置於新的图层中。你可以看到多边形面从52,520多个面减少到26,259个面(还真的几乎是1/2)。不过在此我们发现了一个大问题。那就是经过qemloss2所减过多边形面的多边形,它的uv贴图会遭到破坏。
这就是笔者所要提的重点了。我们在模型的製作上,一般说来应该不会刻意的去做高多边形面以及低多边形面的贴图吧(至少笔者不会这麼做)?尤其是当你减面的程度其实可能不会很多(比如90%)的情况下,uv贴图被破坏掉,就得让我相当的考虑了。
除了qemloss2之外,modeler还有提供一个减面的工具,叫做reduce- polygons(construct->reduce-polygons)。你可以透过polygon reduction以及colinear point removal这两个选项的交互调整来减少多边形面。
底下的附图就是笔者使用polygon reduction=0.2,colinear point removal选择none的情形。这次的操作,polygon reduction帮我减掉了一万多个多边形面。数量变成了37,236。
这次的减面可以发现uv结构并没有被破坏,不过在操中笔者发现会有些多边形面被翻转的情况,你必须以手动的方式将它翻转回来。
这次笔者将polygon reduction的数值输入10,而colinear point removal还是选择none。执行的结果,竟然减掉了四万多个多边形面。
虽然减了这麼多的面是件好事,不过物件的形状是乎变得有点给它不好看了…。而且其非平面多边形(non-planar polygon)的数量多得惊人(本例中產生的数量為4,123个)。这样的情况将造成在layout著色的时候產生一些小斑点的情形。怎麼改善这个问题呢?我们只能将这些多边形面选取,执行triple指令。只是,当我们执行triple之后,多边形的数量又暴增到几乎跟原来的多边形数量差不多的情形,让我们觉得这样的动作似乎有点多餘…。
而colinear point removal的几个选项从none。low,med,high,到max,其实所能够减少的多边形面数也相当的有限,就笔者测试的结果,固定polygon reduction数值后,选择colinear point removal的none跟high所能够减少的多边形数量差异不大。主要还是靠著polygon reduction的数值在做减面的动作。
综合以上两个lightwave内建的减面工具,我们发现前者无法保留uv贴图的讯息,但是可以控制减面的程度,后者虽然可以保留uv的资讯,但是对於减面数量的控制上,却是显得有点有心无力…
当然,如果,减面是你势在必行的动作,而你又对於上面两种减面方式不满意的话,你可以试试看polygon cruncher这套软体,这套软体可以让你达到相同的减面目地,但是并不会有上面两种方法所產生的问题喔!我们来看看套软体有什麼特殊的地方吧!
一样的机器人上半身模型当作范例,我们来看看在使用polygon cruncher之后,它会有什麼不同於lightwave内附的减面工具的地方。执行polygon cruncher这个程式,polygon cruncher会开啟其设定面板。
在画面的右方有一个预览画面,你可以在此做缩放,位移,旋转的动作。左方则為我们用来做减面处理的地方,共有三个面板,分别是optimization,selection以及advanced features。我们现在就来试试看吧!首先在optimization面板裡头,我们保留其预设值,只在optimization裡头将face减少到50%,也就是42576个多边形面,在经过一阵运算后,多边形面减少后的样子会呈现在右边的预览视窗裡头。
按下apply之后,你会发现物件面虽然减少了。但是uv贴图的部分似乎有点不太理想,因為一些贴图位置似乎跑掉了。
我们再次的进入polygon cruncher,这次我们勾选materials and textures选项裡头的keep materials discontinuities功能,你可以看到右边的预览视窗裡头,材质相接的部位出现了红色的色块。
设定减面的程度之后,按下apply键,回到modeler,你可以发现这次uv贴图并没有跑掉的情形。
这种情形,即使你将多边形面减得更少,结果还是如此,下图中笔者已经将物件的多边形减至15,738个面了,你会发现,uv贴图依然是正确的。
polygon cruncher的最佳化选项(optimization options)提供三种选项,即crunch borders,protect borders以及exclude borders。选择crunch borders选项,在减面的运算过程中,polygon cruncher并不会去顾虑物件的造型问题。因此当减面的程度很高的时候,你会发现结果可能会导致物件的造型有点改变,附图中当我们将多边形面减少到5%左右时,你可以看到基本上物件的形状有点不太一样了。
protect borders则会顾虑到物件的轮廓造型,因此减面之后的感觉会尽量维持跟原本物件的造型一致。当然前提是你不能减到太离谱,让它连想保有物件轮廓造型的多边形面都没有的话,还是会使造型產生改变的。基本上,这是polygon cruncher所预设的减面模式。
exclude borders模式一样会考虑到轮廓造型的问题。不过因為它永远不会去对轮廓造型的多边形面做减面的动作,因此你只能减少到一个程度的面数而已。好处是你的造型绝对不会跟原来的物件不一样。
除了这些减面的功能之外,polygon cruncher还提供了其他的减面参数设定,其中之一是让你选取哪些surface要做减面的动作,哪些则不做减面的动作。在selection面板中,我们可以看到整个物件的surface清单。如果你不想让物件中某些surface的面被减少的话,你只要将原本打x的栏位给关闭,那个surface所属的多边形面就不会被拿来做减面的运算。当你排除掉某些surface时,你可以在预览的视窗裡头看到红色的色块,这些色块所表示的就是不会做减面运算的区域。
而另一个则是让你选择减面的时候是否要做对称减面的动作,你可以选择你要减面的平面,polygon cruncher如果发现其中多边形有对称的情形的话,在减面运算的时候也会作对称减面的动作,由底下两张附图可以得知有对称减面跟无对称减面的差别。
评论