3DMAX导入技巧SketchUP可以将场景模型导出为3ds、dwg以及dxf的标准工业格式,因此为我们配合其他软件对场景进行进一步深化和完善提供了便利。比较符合以往习惯的是输入到3dsmax中进行渲染处理。

在输出场景之前,先认识一下SketchUP中记录模型文件的特性:

SketchUP对模型管理的重要特征是群组和组件,利用这个特性我们可以方便的对某一组特定的选择集进行移动、旋转、缩放以及编辑等操作。

SketchUP中对于对象的基本描述是以线和面来定义的,而max对对象的基本操作单位是可编辑的网格物体(Editable Mesh),虽然也可以对网格物体的点、线、面进行深层编辑,但相对于SketchUP来说直观性和易操作性显然比较难于掌握,并且深层的编辑会导致贴图坐标的变形。所以为提高效率,和避免一些不可测的因素,模型应当在SketchUP中尽量的完善,避免在3dsmax中进行深层操作。

SketchUP可以输出dwg、dxf以及3ds格式的3d模型文件,其中只有3ds格式可以记录材质信息,因此一般情况下用于渲染的都采用这种文件格式的输出。

SketchUP和3dsmax中对应的操作对象:

当输出3ds文件时,整个场景中排除群组和组件,所有的线、面会组合成一个可编辑网格体,每一个群组和组件都会各自转化为一个网格物体,而群组和组件中的群组和组件将会被炸开,被合并到最表面一层的群组或组件成为一个网格物体。

所以如果将整个场景成组的话,那么输出的3ds文件将只有一个网格物体。

3ds输出选项设置

1、Singel Object 勾选此选项时,整个场景将合并成一个物体被输出,在SketchUP中建立的群组和组件将不能被单独进行操作,在场景中线面数很大的情况下有可能不能完成输出;(除非场景不需要做任何修改,或场景较为简单时,否则不推荐这种输出方式)

2、Objects By Geometry 此选项将以群组和组件为单位输出物体,SketchUP最表面一层的群组和组件被保留为单独的物体,可以在max中进行单独灵活的各种编辑,推荐使用。缺点是每一个群组和组件都会输出一个自身的复合材质,就是说如果场景中有100个物体,就会在max中产生100个复合材质,使人对材质的编辑无所适从。对于如何快速编辑材质会在后面说到。

3、Output Texture Maps 如果不勾选,输出材质中将不包含贴图信息;贴图文件路径需要在max里添加,建议将所有贴图复制到max模型文件所在工作目录,这样就不会出现找不到贴图的错误信息(注:建议养成习惯,一般情况下,包括lightscape,三维渲染软件的贴图搜索路径第一个总是场景文件所在的目录,这样既不会出错,也节约了贴图搜索时间,对于场景在不同电脑间的转移也带来方便)

4、Output 2-Sides 输出双面:一般情况下不需要,会额外增加模型量;但是在SketchUP建模阶段必须保证面法线正反的正确性,否则反面在max里无法显示,产生丢面现象。Materiar和Geometry分别以材质和物体产生双面。

5、Output Standalong Edges 输出边线,对于max不必要。

6、Use “Color By Layer”Material 用层的颜色作为材质输出,是以层颜色进行管理的材质,需要在建模起始阶段就规划好的材质管理方式,物体(或面)将以所在的层的颜色为自身的材质。因为SketchUP里组件和层是参插的,在组件具有复合材质时好像不易管理。

7、Generate Cameras 产生相机,原理上每一个页面会产生一个相机,但是实际应用中好像只有当前页面的相机视角能被保持,其他都会出错,所以还是到max里重新建立相机吧。

8、Units 这是SketchUP 3.1以后才有的功能,你可以设置模型输出的单位,在正确单位建模的情况下,一般是不需要改变输出单位的,当然在max中所设置的系统单位也要相对应。

材质管理

打开3dsmax,导入SketchUP输出的3ds模型。(老房子的SketchUP模型在资源版有下)

打开rendering-Material/Map Browser查看当前场景中的材质,会发现场景中有几百个复合材质,它们分别被赋予Material#(*)表示(*是材质序列编号),如何编辑材质根本无法下手。

下载过那个老房子模型的朋友,如果细心一点一定会发现到在场景的边上有一组小方块组成的群组,可能一时不明白为什么要这样做,其实这就是材质编辑的关键所在。

因为SketchUP的每一个群组都会产生一个材质,而当这个群组只有一个材质时就产生了一个单一材质而不是复合材质。

而这个单一材质在max中编辑时恰巧是能够和场景中所有复合材质中的单一材质关联的,因此只要编辑这些单一材质就能改变场景中所有复合材质中的相同材质。

现在要做的是建立和材质栏中同样多的群组(不被关联的清理掉),然后分别对应的赋给他们。然后可以输出3ds模型了。

在3dsmax里导入模型,再次查看场景中的材质,这时会发现又多了先前在SketchUP里建立的那些群组的材质,这些材质都是单一的,而且材质名称和SketchUP里面是相同的。

把这些材质用关联方式导入材质编辑器进行编辑,而那些复合材质可以一概不予理会,就是这么简单了。

曲面输出问题

无数次的测试,最终只能确信SketchUP无法将曲面的平滑信息带到max中,并且更糟糕的是即使在max中用MeshSmooth也无法对SketchUP中导入的曲面进行平滑。

虽然一直认为这是不可能的,却始终没有找出问题的症结所在。我相信很多人没有注意到这个问题,也有人注意到了却同样没找到答案。

不过只要是问题,就一定能找到答案... 有一次在max里编辑多边形(以前未对Sketchup导入的模型做过深层编辑),在移动一个面时,面被移走了,而周边的节点、边线和面居然毫无变化。天!原来导过来的模型每个面都是单独存在的,拥有自己独立的边线和节点,节点和边线只是和相邻面的节点和边线重合而已,并不是共用的。每一个单元只是一个平面而已,所以也就无法使用平滑了。

终于找到了其中原因!

把所有重合节点焊接在一起,现在就可以进行平滑组的操作了,假如觉得平滑程度还不够,就使用MeshSmooth... 平滑面的操作:

解释一下平滑角度:

这里的概念和SketchUP中是相同的,角度的大小设定了一个平滑分界的临界面,当两个面的夹角小于该临界角度时,这相邻的两个面即被平滑;当两个面的夹角大于该临界角度时,相邻的两个面不受平滑的影响。