您的位置:首页 > 其它

关于3Dmax建筑建模的一点心得

2015-01-15 16:50 323 查看
相信大部分从事建筑模型制作的同行,开始建模的时候都是从 <线-挤压> 这种方法来制作大部分模型的,但是过程中会出现很多的困惑,经常出现一些不只是挤压就可以轻松解决的问题.希望这个博文能给对于建筑模型建模有迷惑和想要寻求新方法的同行们一点帮助。

Ps:纯新手向,大神们勿看~,有说错的,小弟曲解的地方还请指正~
PS2:本文提及的建筑模型师,仅从软件技术运用层面上来讲.不讨论关于本职业应该涉及的其他技能和素养
PS3:鉴于3Dmax的Nurbs过于闹心,本文仅讨论多边形~

很多人会认为建筑建模只是个重复机械劳动的体力活,因为只是重复的描线à挤压àedit meshà拉点拉线.确实,在对于常规的建筑模型.方方正正的体块堆砌起来的一个建筑.这种方法是再常用不过的了.

当你看到一位双眼呆滞的模型师在迅速的操作着3Dmax,但是你发现重头到尾,他只是一直在重复着挤压与描线,然后抱怨着要加班了.

上面所说的并无嘲笑之意,我想说的是,只懂用挤压,被挤压束缚着,仅限于用挤压的思维来建模的一个软件操作者是很难成为一个优秀的建筑模型师的.

或者其实我们可以用更轻松更有效更节省时间的方法来代替机械的体力劳动?
在这之前让我们来看下我们一直在接触的“模型”到底是怎么回事,在3Dmax里面又是如何存在的。
--------------------------------------------------------------------------------------------------
大部分时候,我们制作的模型是服务于渲染的,在3Dmax中,无论模型是用什么方法制作,或者是由各种修改器堆栈而构成,在渲染的时候都会被转化为mesh(网格)再被程序所计算,而mesh和nurbs是3Dmax的两大模型构成方法(似乎还有patch?)。

在3Dmax版本更新演变过程中,mesh有了更高级更方便的替代品---polygon,poly是max建模比较主流的一种方法,有各种方便的工具用于建模和修改,你会发现挤压也在其中,也就是说挤压只不过是这个完善全面的建模工具中的一个功能,只不过它被独立拿出来做成一个修改器,便于仅需要挤压的线来使用罢了。既然有这么多方便的工具和方法,我们为什么不选择更高效更优秀的来使用呢?

首先我们来看下所谓的polygon到底是什么。

通过百度,可以得到polygon的含义为:
  1、polygon:名词多边形、多角形
  2、指多边形函数
3、用多变形函数画一个由直线组成的、有两个以上顶点的多边形,并用当前画笔画多边形轮廓,

用当前画刷和多边形填充模式填充。

可以看到polygon(也就是多边形)的解释,套用在3Dmax里面的话,几乎可以认为所有的模型物体都可以称之为多边形(虽然nurbs的过程算法有不同于多边形,但显示和渲染也都是转化为mesh的).说到多边形,很多人经常听到关于模型的两个字”布线”又或者是”拓扑”,那么布线,或者说拓扑又是什么呢?

继续搜索,可以看到:

 拓扑学的英文名是Topology,直译是地志学,也就是和研究地形、地貌相类似的有关学科。我国早期曾经翻译成“形势几何学”、“连续几何学”、“一对一的连续变换群下的几何学”,但是,这几种译名都不大好理解,1956年统一的《数学名词》把它确定为拓扑学,这是按音译过来的。

拓扑学是几何学的一个分支,但是这种几何学又和通常的平面几何、立体几何不同。通常的平面几何或立体几何研究的对象是点、线、面之间的位置关系以及它们的度量性质。拓扑学对于研究对象的长短、大小、面积体积等度量性质和数量关系都无关。

拓扑是物体在三维空间中存在的点线面之间的关系位置,在三维软件中,我们创造的模型都是由点到线再到面构成的.或者因为这种理解,再加上大部分时间我们在创造一个多边形物体的时候更多的是通过编辑结构线来达到目的,我们可以更直观的称3D软件中的模型拓扑为---布线

看起来似乎有点过于书面化而不够直观,但软件却可以一目了然的让我们看到一个多边形是由怎样的点线面通过怎样的位置关系构成的,那么下面我们用截图来说明多边形和构成多边形的点线面的拓扑关系:

利用挤压和弯曲修改器来制作一面墙:




得到的却不是期望的弧面墙体的效果,线加上挤压修改器之后,墙体就通过由软件生成的布线构造出来.但弯曲却得不到要的效果。

把这个物体分别转成mesh和poly:




图中左边的是mesh物体,右边的是poly物体,选择mesh物体,按2进入线层级,全选线,可以看到多出许多虚线。同样操作,poly物体的线没发生变化。




通过观察可以看到墙没有出现光滑的弧面却出现类似皱褶的效果,正是因为这些虚线造成的。而且每三条虚线构成的都是三角面。

mesh物体的构成,是由物体中每三个点连线构成三角面来构成,而且点与点之间的连线无法与已经存在的线交叉。也就是用面的最简形态---三角面来组成物体

虽然我们可以通过增加更多的点来得到更密集的三角面来达到更好的效果,但是这无疑增大了模型文件的容量和系统的负担,而且渲染时间也会增加,而且最大的确定是无法再圆滑模型

poly物体的视觉效果看起来稍微好点,从上面poly的含义可以看到poly物体是可以有2个以上顶点的多边形组成,并无限制,允许多边面存在 ,右击左上角视图名称。再出现的下拉菜单中勾选show statistics打开统计信息.




可以看到:







(可能你显示的整个的是整个场景物体的信息总和,那么可以在右击之后最下面的configure里面的statistics设置只显示选择物体的信息).

可以看到信息中
e503
面数的显示有polys和tris两种,分别也就是物体的poly面数和mesh面数。

第一张图是转换成mesh后物体的面数,第二张是转换成poly的,可以看到mesh物体的poly面和mesh面是一样多的,而第二个的poly面数比mesh的少的多.

Poly只计算多边面的数量。而不会把多边面分隔为三角面,也因为允许存在多边面所以对内存和显卡的占用会比mesh更大,在处理一些多边面布线的时候操作不当会比较容易出错导致max崩溃。

mesh则是只计算三角面数量,也就是任何的多边面都会被计算转化为三角面。所以显示的poly面数其实也等同于mesh三角面。

Poly物体在渲染前手动转成mesh可以稍微减少渲染时间,也就是我们经常做的渲染前的 “塌陷模型”(当然塌陷模型不仅仅是为了减少转化mesh浪费的时间,减少整个场景中的物体数对渲染时间有很大的提高)

虽然poly会让内存和显卡的负担更大, 不过随着硬件的升级对软件的支,这种负担感觉微乎其微,而且poly和mesh之间可以很完美的互相转换。所以有着更好用更方便的工具的poly完全可以比mesh更好的胜任建模的工作。

Ps:早期的3Dmax只有mesh而没有poly,在后来的版本才加入了poly,某方面来看它是升级版的mesh。因为取消了某些限制和有着更好的工具。习惯于用mesh也一样可以做出想要的模型。

--------------------------------------------------------------------------------------------------

接下来看看挤压修改器经常出现的一个问题:




墙面“烂”了,下面一个窗口封起来了。出现这种问题的时候,移动或编辑线。或者是点选grid可以解决





虽然点选grid在很多时候都可以解决这个问题。但是面数却会激增(查看mesh面会出现很奇怪的细分面,而且会出现多余的点),而且或许你有需要再编辑这个线的时候烂面问题又出现了。所以也并不是一个好的解决办法。

把刚才的物体转成mesh物体再在线层级下全选可以看到一些局部位置出现的问题 :







可以看到是内部三角面构成出现了我们不想要的效果和错误。虽然构成mesh物体每一个点都有编号。但是软件在处理多边面为三角面的时候不是按照编号顺序来,甚至似乎都不是按照某一种规律来。所以随意的连线就可能会出现上面的问题。

既然如此,那么我们就有必要手动布线来减少问题,就像以下的例子:




右边是把所有的点做成一个多边面。左边是把物体的布线做成网格状,而且每个poly面都是四边面。事实上这种网格的布线是最常用而且最好控制的一种,虽然对比右边的物体,面数肯定是增多了。但是我们却人为的减少了细分成三角面时候可能出现的问题,把两个物体都贴上棋盘格贴图,可以看到:




上图是在顶视图看的。似乎没有区别,那么我们换一下前视图再看看:





可以看到右边的贴图比起左边的明显拉伸了。再给两个物体加上turbosmooth(涡轮平滑)修改器




这次可以看到明显的区别。左边的和原来相比只是布线增多了,效果更加圆滑,而右边的明显不是我们期望的效果

虽然有时候越少的布线与三角面,可以让物体面数减少从而减小文件容量和加快操作和显示速度,但是却无法得到想要的正确贴图和光影效果,如果在有需要进行细分圆滑的时候,多边面会产生难以预料和控制的效果
而四边面布线。每一个poly面可能出现的细分三角面效果。只有两种:





而且在四个点越接近于一个平面的时候。两种虚线出现导致的视觉和渲染效果就越一致,所以布线也可以说是人为的去引导软件,让其在转化多边面为三角面的后出现我们期望的效果的一种行为。

上面讨论了几种多边面转化为mesh出现的问题,但很多时候。我们的模型都是以“方块“居多。就算出现N边面现象。只要不是墙体的掏洞或者过于复杂的形状。在N个点处于一个平面的时候。很少会出现面的问题的。所以”方块”的模型制作方法可以说非常随意。只要有自己的一套习惯的建模方式。都是可以很简单的完成的(当然无论怎样,节省面数是必须的)。

--------------------------------------------------------------------------------------------------
那么说完方块模型,下面我们来看看制作非方块模型(好别扭的说法……)时候所要用到的poly的圆滑。

先画一个正方体:





原地复制一个并加上turbosmooth修改器,细分为1:





再复制一个。细分为2:





分别查看三个物体的面数信息:











可以看到三角面数量均是原来的4倍,通过观察也可以知道细分后的物体布线是在原来的基础上加一倍,会在每个线中间产生一个点。然后再和点上的线构成的面中心点形成连线。而已有的点只会发生位置的上的移动,有点类似由一个“口”变成”田”字,所以无论是那种N边面只要是细分后均是四边面。,自然面数也就是乘以4了(非四边面的圆滑情况面数变化情况比较多种)。

圆滑后模型的形状也会有变化。不仅仅是布线变密面数变多,而且更加“光滑“了。

继续回到上面的的模型,来看看圆滑前后两个模型之间布线的改变程度,做一些辅助线:





蓝色线为未圆滑的模型没有封上盖那一边的线,也就是原轮廓。





从原模型的每一个相临的点上做连线,并且在每个线中间产生一个新的点并与所处的面上的中点连线,新产生点再和每一个临近的新点再做连线并取中点,原物体的已有的点和每两个临近新点连线产生的中点连线取中点。此点位置为原有点的位置。

这个似乎和古代祖冲之割圆的方法有点类似(线的点以beizer形成弧线的圆滑细分方式也是和着有点类似)

不过这只是个大致的细分方式演示,具体模型的细分方法我们也不必去细究(或许我想错了也不一定呢…… ORZ)





不同布线下的物体的细分状态。

,可以看到虚线是只用于转化mesh三角面的时候存在的并不参与实际的细分圆滑,一个点仅连接两条线段的位置会保持原始的夹角状态无法圆滑(点的位置不会发生改变)。

所以如果把圆滑的段数无限加大,得到的也只是无限接近于圆滑的一个模型(好孩子千万别试~)。

但是很多时候为什么我们看到的或者渲染出来的模型却很光滑呢?









上图中是复制得到的两个完全一样的球体。但是左边的看起来比右边的圆滑?

其实在3Dmax中,一个模型光滑与否。只是视觉上的一种“假象“,原因是采用了一个叫光滑组的东西来定义面和面之间是否光滑延续(障眼法……),光滑组可以在poly或者mesh中选择了面层级之后在properties卷帘中找到,还有就是smooth修改器也是专门的光滑组设置修改器。








图中的1~32是组的编号。如果全选一个物体的面。将它们随便编到一个组里面。那么模型就会变的光滑。也就是说只要是在同一个组里面的面,面和面之间的过渡就会被处理成光滑的。

将左边的球的一半面编到一个组里。选择另一半的面点clear all。会看到这个球一半圆滑而一半面和面之间有明显的折线





物体加上turbosmooth修改器之后会自动将所有面数编到一个光滑组里面。这也就是为什么模型会光滑的原因。

未完待续~

下次更新会用一些实际的例子来补充说明布线实际运用的方法,有机会还会讲解一些比较实用的技巧操作和工具~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: