论文部分内容阅读
利用计算机进行工业设计时,尤其是利用三维造型软件3ds Max进行产品设计时,常常涉及到三维模型的轻量化技术。装配体模型通常由设计委托方提供,为了提高参数化软件导入三维造型软件的效率,并确保关键零部件的技术保密性,需要在模型导入三维造型软件之前,在参数化软件中对模型进行轻量化处理。在将模型载入三维造型软件的过程中,由于模型文件较大、三角面数较多,会导致CPU占用率较大,在载入模型文件后,对模型进行编辑和修改时,场景变化随着鼠标移动滞后几秒甚至几分钟。模型的复杂程度也直接影响最终的渲染速度,尤其是动画制作效率,这都对模型的轻量化提出了要求。
一、三维模型轻量化流程
对于从参数化软件导入三维造型软件3ds Max中进行工业设计的三维模型,本文提出了对其进行轻量化的基本流程,如图1所示。
二、三维模型在常用参数化软件中的轻量化方法
选取SolidWorks、Inventor和Pro/ENGINEER三款在机械制造领域较为常用的参数化软件,研究三维模型在其中进行轻量化处理的一些方法。
1.三维模型在SolidWorks里的轻量化方法
(1)压缩零部件。
对于SolidWorks装配体中不可见的零部件,可以对其运用压缩命令,将其暂时从装配体中移除,被压缩的零部件不可见并且不再装入内存,压缩零部件包含的配合关系也被压缩。
(2)隐藏零部件。
对于不可见的零部件还可以运用隐藏命令,运用隐藏命令后,零部件不可见,但零部件的模型信息依然完全装入内存,提高了显示性能。
(3)使用零部件简化配置。
零部件大都带有装配体不必要的模型信息,如装饰性的圆角、切角、部分孔、凹槽和凸台等。零部件把这些信息带入装配体内会占用部分资源,降低系统性能。可以通过创建零部件的简化配置,压缩不必要的信息,简化零件资源消耗。
2.三维模型在Inventor里面的轻量化方法
(1)抑制特征处理。
抑制特征功能既可以对零件模型特征进行抑制,还可以对装配部件进行抑制。对装配体内部不可见的部分进行抑制特征处理,使零件模型从装配体中移除,这样能有效减小零部件文件大小,节省内存使用空间。
(2)造型终止处理。
有些零部件的倒角、倒圆、退刀槽以及螺纹等模型特征是可以不带入到装配中的。在浏览器中,将造型终止拖到这些模型特征的前面,这些特征就会被过滤出来。
(3)零件的不可见处理。
经过不可见处理的模型仍然存在于装配之中,内存仍然加载该模型,只是把不可见的模型隐藏掉了,这样可以节约显存空间,提高文件打开和文件更新速度。
3.三维模型在Pro/ENGINEER中的轻量化方法
(1)零件的隐含。
隐含就是把某个零件或者特征暂时放到回收站,不在内存中,但是可以从回收站中恢复,受父子关系的约束。
(2)零件的隐藏。经过隐藏的零部件,依然存在于装配之中,内存仍然加载该模型,不受父子关系的约束。
在SolidWorks、Inventor和Pro/ENGINEER三款参数化软件中各自相应的轻量化操作命令如表1所示。
由表1可知,在SolidWorks、Inventor和Pro/ENGINEER三款参数化软件中,从减少模型个数和简化零部件两个角度,对三维模型运用各自相对应的命令,使其在参数化软件中进行第一次轻量化,然后再通过各自相应的方法导入3ds Max中进行第二次轻量化。
三、第一次轻量化后的模型导入3ds Max的方法
参数化软件中的模型是不能直接导入3dsMax中的,需要通过转化为中性文件格式再导入3dsMax中进行编辑处理。
1.将SolidWorks模型导入3ds Max的方法
(1)stl格式文件。
将SolidWorks文件转化为stl格式文件,此方法适用于导入单个零件。如需导入装配体,则需将装配体保存为stl格式文件后,再将每个零件一一导入,比较繁琐。
(2)igs格式文件。
将SolidWorks文件转化为igs格式文件。igs格式文件较小,但有时会出现个别面无法转换,或者是导入3ds Max中出现多面和少面的现象,转换误差较大。
(3)wrl格式文件。
将SolidWorks文件转化为wrl格式文件,可以将装配体中的多个零部件同时导入3ds Max中,方便快捷。
(4)stp格式文件。
将SolidWorks文件先转化为stp格式文件,再导入Rhino中另存为3ds格式,最后导入3ds Max中。使用这种方法得到的模型,面比较完好,少有破面出现。
2.将Inventor模型导入3ds Max的方法
将模型文件保存为ipt格式文件,然后用Inventor和3ds Max的接口,直接输入3ds Max,这样导入的模型比较完美,不会有破面。
3.将Pro/ENGINEER模型导入3ds Max的方法
(1)stl格式文件。
将Pro/ENGINEER中的模型文件另存为stl格式文件,再导入3ds Max中。在导入3ds Max时,可能遇到曲面的法向相反的情况,需要在3ds Max中调节曲面的法向量。
(2)obj格式文件。
将Pro/ENGINEER中的模型文件另存为obj格式文件,再导入3ds Max中。导入3ds Max后,模型表面通常会有折痕,渲染后折痕依然存在。
(3)stp格式文件。 将Pro/ENGINEER中的模型文件另存为stp格式文件,再导入Rhino中转存为3ds格式。这种方法需要调节面片数量,最后导入3ds Max中,得到的模型几乎没有破面,比较光滑。
将SolidWorks、Inventor和Pro/ENGINEER三款参数化软件中的三维模型导入3ds Max的方法以及各个方法的特点如表2所示。
四、三维模型在3ds Max中的轻量化
中性文件导入3ds Max后,在将模型转化为线框显示模式时,会明显看到三维模型的三角面数很多,这样会占用大量的内存,增加数据的计算量。对模型进行编辑和修改时,场景变化会随着鼠标的移动滞后,大大降低了设计的效率,因此需要对三维模型在3ds Max里面进行进一步的轻量化。在3ds Max里面主要可以从精简模型个数,精简模型面数,使用纹理贴图来替代三维建模三个角度来对三维模型进行轻量化。
1.精简模型个数
相同材质的模型进行合并。把场景中具有相同材质的模型分别赋予材质后,独立调整它们的UVW贴图,再对其进行合并或者塌陷。但如果模型相隔很远就不要将其进行合并,否则会影响运行速度。
2.精简模型面数
(1)批处理ProOptimizer。
ProOptimizer技术可用于同时优化多个场景文件,它可以减少对象中的顶点数(且因此减少面数)并保持对象的外观,其选项可用于维护优化模型中的材质、贴图和顶点颜色信息。模型经过ProOptimizer处理后,减少了场景的内存要求,因模型的面数变少而简化了模型,提高了3ds Max视图操作显示的速度,并缩短了渲染时间。
(2)使用减面插件Polygoncruncher。
Polygoncruncher减面插件的主要功能是对模型进行面数精简,在保证结构正常的情况下,尽量减少模型的多边形数量。在高优化比的情况下不损失细节,还可以保留原模型的纹理信息、节点色和多边形对称等。
(3)删除不可见的面。
对模型进行轻量化时,对于看不见的面应予以删除。如模型之间的重叠面、模型底部看不见的面及物体之间的相交面等,通过删除这些面,可以降低整个场景的面数,提高交互场景的运行速度。
(4)重建简模。
对于三角面数量较多的简单模型,重新建立简模通常比在一个精模的基础上修改的速度快,要尽量创建视觉真实且多边形数量又不多的模型。
(5)减少模型分段数。
在重建简模时,网格的分布要合理,平直的结构要使用较少的网格分段数,在创建如长方体,圆柱体等模型的过程中,确定不需要对它们的表面进行异性编辑时,可以减少它们截面上的分段数。例如,在创建圆柱体时,默认创建的圆柱,其段数是5×1×18,即其高度分段为5,截面分段为1,边数为18,则总面数为216。在不做其它编辑修改的情况下,有些段数的存在是没有意义的,这时可以对物体的高度段数进行精简,修改后的段数为1×1×18,则其总面数精简为72个,而模型效果并不会因此而受到太大的影响,如图2所示。在建立圆形时,如果不是在近处观看,用六边形代替就可以了,如果再远甚至可以用一个方形来替代。
(6)二维图形转三维模型的面数精简。
◎二维图形经过放样产生的三维模型面数精简。
由二维图形经过放样产生三维模型的轻量化过程,需从放样的路径及截面着手进行,在保证视觉效果不受太大影响的情况下,适度减小放样物体的形状步幅和路径步幅参数,以达到精简放样物体面数的目的。
◎地面创建及精简。
制作室外地面时,建议不要用二维的Line画一个封闭的区域,然后通过Extrude为0得到一个地面。可以对封闭的二维曲线直接添加UVW Mapping编辑器,得到的模型面数比直接添加Extrude编辑器并设置Amount为0得到的模型面数少的多。所以在建模时,要注意选择恰当的建模方式。
3.使用贴图替代三维建模
(1)占画面比例相对较小的物体用贴图来表现。
在3ds Max场景中建立模型时,类似于窗框、栏杆和栅栏等这些细长的物体,以及距离主体对象较远的物体,占画面的比例相对较小,将其建模只会增加当前场景文件的模型数量,因此对于类似这些细长条型的物体以及远方的物体可以利用贴图来表现。这样不仅减少了数据计算量,同时其效果也较细腻,真实感也较强。例如,为了表现场景远方的一座高楼大厦,用两个互相垂直的矩形加上贴图就可以达到比较理想的效果了。如果要求更高,可以用三个面按三棱柱的形状来排列,再为每个面贴上纹理贴图,这样的视觉效果对于要求不高的仿真模型而言,是可以满足逼真度的。
(2)复杂造型用贴图来代替。
在3ds Max场景建立模型的过程中,遇到类似于植物、装饰物以及浮雕效果等造型复杂的物体时,有效使用贴图来代替其三维建模可以节约场景模型面数,提高计算机运行速度。对于这些复杂造型的物体,可以用面片来代替其三维建模,然后用贴图来表现其复杂造型结构。如表现大量的环境绿化问题,如果每棵树、每朵花和每颗草都用模型来表现的话,场景里的模型面数将会是一个极其庞大的数字,可以利用贴图贴在面片模型的方法来解决这个问题。
以草坪贴图代替草坪三维建模为例,在用Plane命令创建好平面对象后,打开材质编辑器,选择一个材质球,将草坪贴图赋予材质球后,调整好相关参数,再将材质球指定给建好的平面对象,最后渲染,效果如图3所示。三维模型在3ds Max中的轻量化流程图如图4所示。
五、应用实例
1.轻量化前
以SolidWorks软件中某大型机械设备的转臂系统为例,先将其在软件中直接另存为stp格式文件,然后将其导入Rhino中,再转存为3ds格式文件,最后导入3ds Max中,测得其三角面数为2 831 391,初始载入时间为55s,场景变化随着鼠标移动滞后4s。效果如图5所示。
2.轻量化后
先在SolidWorks软件中,对其内部不可见的零部件、涉及到技术保密的零部件和表面极其微小的螺钉等零部件进行压缩、简化配置等相关操作,对模型进行第一次轻量化。将模型文件另存为stp格式文件,然后将其导入Rhino中,再转存为3ds格式文件,最后导入3ds Max中。
对于导入3ds Max后的模型文件,首先对具有相同材质的模型进行合并,比如处于转臂支撑系统上的较大的螺母螺钉等。然后运用批处理ProOptimizer对臂架等相关零部件进行减面操作,再对较简单的蒙皮主件等模型进行重建简模等相关操作。得到轻量化后的模型,对其进行测试,测得其三角面数为614940,初始载入时间减少为10s且场景变化不会滞后鼠标移动,效果如图6所示。轻量化前后数据对比如表3所示。
六、结语
以三款常用的参数化软件SolidWorks、Inventor和Pro/ENGINEER为例,主要从基于减少模型个数和简化零部件两个角度出发,提出了在三款软件中进行第一次轻量化的方法。通过实验分析出,三款软件各自以不同的中性文件格式导入3ds Max方法的特点,对于SolidWorks和Pro/ENGINEER中的三维模型,使用第三方软件Rhino存为3ds格式导入3ds Max,效率和质量更高。对于经过第一次轻量化后导入3dsMax中的模型,从精简模型个数、精简模型面数以及使用纹理贴图代替三维建模三个角度出发,运用相关的方法对模型进行第二次轻量化,得到相对精简的模型,从而减少了计算机的数据计算量,提高了在三维造型软件中进行工业设计的效率。
一、三维模型轻量化流程
对于从参数化软件导入三维造型软件3ds Max中进行工业设计的三维模型,本文提出了对其进行轻量化的基本流程,如图1所示。
二、三维模型在常用参数化软件中的轻量化方法
选取SolidWorks、Inventor和Pro/ENGINEER三款在机械制造领域较为常用的参数化软件,研究三维模型在其中进行轻量化处理的一些方法。
1.三维模型在SolidWorks里的轻量化方法
(1)压缩零部件。
对于SolidWorks装配体中不可见的零部件,可以对其运用压缩命令,将其暂时从装配体中移除,被压缩的零部件不可见并且不再装入内存,压缩零部件包含的配合关系也被压缩。
(2)隐藏零部件。
对于不可见的零部件还可以运用隐藏命令,运用隐藏命令后,零部件不可见,但零部件的模型信息依然完全装入内存,提高了显示性能。
(3)使用零部件简化配置。
零部件大都带有装配体不必要的模型信息,如装饰性的圆角、切角、部分孔、凹槽和凸台等。零部件把这些信息带入装配体内会占用部分资源,降低系统性能。可以通过创建零部件的简化配置,压缩不必要的信息,简化零件资源消耗。
2.三维模型在Inventor里面的轻量化方法
(1)抑制特征处理。
抑制特征功能既可以对零件模型特征进行抑制,还可以对装配部件进行抑制。对装配体内部不可见的部分进行抑制特征处理,使零件模型从装配体中移除,这样能有效减小零部件文件大小,节省内存使用空间。
(2)造型终止处理。
有些零部件的倒角、倒圆、退刀槽以及螺纹等模型特征是可以不带入到装配中的。在浏览器中,将造型终止拖到这些模型特征的前面,这些特征就会被过滤出来。
(3)零件的不可见处理。
经过不可见处理的模型仍然存在于装配之中,内存仍然加载该模型,只是把不可见的模型隐藏掉了,这样可以节约显存空间,提高文件打开和文件更新速度。
3.三维模型在Pro/ENGINEER中的轻量化方法
(1)零件的隐含。
隐含就是把某个零件或者特征暂时放到回收站,不在内存中,但是可以从回收站中恢复,受父子关系的约束。
(2)零件的隐藏。经过隐藏的零部件,依然存在于装配之中,内存仍然加载该模型,不受父子关系的约束。
在SolidWorks、Inventor和Pro/ENGINEER三款参数化软件中各自相应的轻量化操作命令如表1所示。
由表1可知,在SolidWorks、Inventor和Pro/ENGINEER三款参数化软件中,从减少模型个数和简化零部件两个角度,对三维模型运用各自相对应的命令,使其在参数化软件中进行第一次轻量化,然后再通过各自相应的方法导入3ds Max中进行第二次轻量化。
三、第一次轻量化后的模型导入3ds Max的方法
参数化软件中的模型是不能直接导入3dsMax中的,需要通过转化为中性文件格式再导入3dsMax中进行编辑处理。
1.将SolidWorks模型导入3ds Max的方法
(1)stl格式文件。
将SolidWorks文件转化为stl格式文件,此方法适用于导入单个零件。如需导入装配体,则需将装配体保存为stl格式文件后,再将每个零件一一导入,比较繁琐。
(2)igs格式文件。
将SolidWorks文件转化为igs格式文件。igs格式文件较小,但有时会出现个别面无法转换,或者是导入3ds Max中出现多面和少面的现象,转换误差较大。
(3)wrl格式文件。
将SolidWorks文件转化为wrl格式文件,可以将装配体中的多个零部件同时导入3ds Max中,方便快捷。
(4)stp格式文件。
将SolidWorks文件先转化为stp格式文件,再导入Rhino中另存为3ds格式,最后导入3ds Max中。使用这种方法得到的模型,面比较完好,少有破面出现。
2.将Inventor模型导入3ds Max的方法
将模型文件保存为ipt格式文件,然后用Inventor和3ds Max的接口,直接输入3ds Max,这样导入的模型比较完美,不会有破面。
3.将Pro/ENGINEER模型导入3ds Max的方法
(1)stl格式文件。
将Pro/ENGINEER中的模型文件另存为stl格式文件,再导入3ds Max中。在导入3ds Max时,可能遇到曲面的法向相反的情况,需要在3ds Max中调节曲面的法向量。
(2)obj格式文件。
将Pro/ENGINEER中的模型文件另存为obj格式文件,再导入3ds Max中。导入3ds Max后,模型表面通常会有折痕,渲染后折痕依然存在。
(3)stp格式文件。 将Pro/ENGINEER中的模型文件另存为stp格式文件,再导入Rhino中转存为3ds格式。这种方法需要调节面片数量,最后导入3ds Max中,得到的模型几乎没有破面,比较光滑。
将SolidWorks、Inventor和Pro/ENGINEER三款参数化软件中的三维模型导入3ds Max的方法以及各个方法的特点如表2所示。
四、三维模型在3ds Max中的轻量化
中性文件导入3ds Max后,在将模型转化为线框显示模式时,会明显看到三维模型的三角面数很多,这样会占用大量的内存,增加数据的计算量。对模型进行编辑和修改时,场景变化会随着鼠标的移动滞后,大大降低了设计的效率,因此需要对三维模型在3ds Max里面进行进一步的轻量化。在3ds Max里面主要可以从精简模型个数,精简模型面数,使用纹理贴图来替代三维建模三个角度来对三维模型进行轻量化。
1.精简模型个数
相同材质的模型进行合并。把场景中具有相同材质的模型分别赋予材质后,独立调整它们的UVW贴图,再对其进行合并或者塌陷。但如果模型相隔很远就不要将其进行合并,否则会影响运行速度。
2.精简模型面数
(1)批处理ProOptimizer。
ProOptimizer技术可用于同时优化多个场景文件,它可以减少对象中的顶点数(且因此减少面数)并保持对象的外观,其选项可用于维护优化模型中的材质、贴图和顶点颜色信息。模型经过ProOptimizer处理后,减少了场景的内存要求,因模型的面数变少而简化了模型,提高了3ds Max视图操作显示的速度,并缩短了渲染时间。
(2)使用减面插件Polygoncruncher。
Polygoncruncher减面插件的主要功能是对模型进行面数精简,在保证结构正常的情况下,尽量减少模型的多边形数量。在高优化比的情况下不损失细节,还可以保留原模型的纹理信息、节点色和多边形对称等。
(3)删除不可见的面。
对模型进行轻量化时,对于看不见的面应予以删除。如模型之间的重叠面、模型底部看不见的面及物体之间的相交面等,通过删除这些面,可以降低整个场景的面数,提高交互场景的运行速度。
(4)重建简模。
对于三角面数量较多的简单模型,重新建立简模通常比在一个精模的基础上修改的速度快,要尽量创建视觉真实且多边形数量又不多的模型。
(5)减少模型分段数。
在重建简模时,网格的分布要合理,平直的结构要使用较少的网格分段数,在创建如长方体,圆柱体等模型的过程中,确定不需要对它们的表面进行异性编辑时,可以减少它们截面上的分段数。例如,在创建圆柱体时,默认创建的圆柱,其段数是5×1×18,即其高度分段为5,截面分段为1,边数为18,则总面数为216。在不做其它编辑修改的情况下,有些段数的存在是没有意义的,这时可以对物体的高度段数进行精简,修改后的段数为1×1×18,则其总面数精简为72个,而模型效果并不会因此而受到太大的影响,如图2所示。在建立圆形时,如果不是在近处观看,用六边形代替就可以了,如果再远甚至可以用一个方形来替代。
(6)二维图形转三维模型的面数精简。
◎二维图形经过放样产生的三维模型面数精简。
由二维图形经过放样产生三维模型的轻量化过程,需从放样的路径及截面着手进行,在保证视觉效果不受太大影响的情况下,适度减小放样物体的形状步幅和路径步幅参数,以达到精简放样物体面数的目的。
◎地面创建及精简。
制作室外地面时,建议不要用二维的Line画一个封闭的区域,然后通过Extrude为0得到一个地面。可以对封闭的二维曲线直接添加UVW Mapping编辑器,得到的模型面数比直接添加Extrude编辑器并设置Amount为0得到的模型面数少的多。所以在建模时,要注意选择恰当的建模方式。
3.使用贴图替代三维建模
(1)占画面比例相对较小的物体用贴图来表现。
在3ds Max场景中建立模型时,类似于窗框、栏杆和栅栏等这些细长的物体,以及距离主体对象较远的物体,占画面的比例相对较小,将其建模只会增加当前场景文件的模型数量,因此对于类似这些细长条型的物体以及远方的物体可以利用贴图来表现。这样不仅减少了数据计算量,同时其效果也较细腻,真实感也较强。例如,为了表现场景远方的一座高楼大厦,用两个互相垂直的矩形加上贴图就可以达到比较理想的效果了。如果要求更高,可以用三个面按三棱柱的形状来排列,再为每个面贴上纹理贴图,这样的视觉效果对于要求不高的仿真模型而言,是可以满足逼真度的。
(2)复杂造型用贴图来代替。
在3ds Max场景建立模型的过程中,遇到类似于植物、装饰物以及浮雕效果等造型复杂的物体时,有效使用贴图来代替其三维建模可以节约场景模型面数,提高计算机运行速度。对于这些复杂造型的物体,可以用面片来代替其三维建模,然后用贴图来表现其复杂造型结构。如表现大量的环境绿化问题,如果每棵树、每朵花和每颗草都用模型来表现的话,场景里的模型面数将会是一个极其庞大的数字,可以利用贴图贴在面片模型的方法来解决这个问题。
以草坪贴图代替草坪三维建模为例,在用Plane命令创建好平面对象后,打开材质编辑器,选择一个材质球,将草坪贴图赋予材质球后,调整好相关参数,再将材质球指定给建好的平面对象,最后渲染,效果如图3所示。三维模型在3ds Max中的轻量化流程图如图4所示。
五、应用实例
1.轻量化前
以SolidWorks软件中某大型机械设备的转臂系统为例,先将其在软件中直接另存为stp格式文件,然后将其导入Rhino中,再转存为3ds格式文件,最后导入3ds Max中,测得其三角面数为2 831 391,初始载入时间为55s,场景变化随着鼠标移动滞后4s。效果如图5所示。
2.轻量化后
先在SolidWorks软件中,对其内部不可见的零部件、涉及到技术保密的零部件和表面极其微小的螺钉等零部件进行压缩、简化配置等相关操作,对模型进行第一次轻量化。将模型文件另存为stp格式文件,然后将其导入Rhino中,再转存为3ds格式文件,最后导入3ds Max中。
对于导入3ds Max后的模型文件,首先对具有相同材质的模型进行合并,比如处于转臂支撑系统上的较大的螺母螺钉等。然后运用批处理ProOptimizer对臂架等相关零部件进行减面操作,再对较简单的蒙皮主件等模型进行重建简模等相关操作。得到轻量化后的模型,对其进行测试,测得其三角面数为614940,初始载入时间减少为10s且场景变化不会滞后鼠标移动,效果如图6所示。轻量化前后数据对比如表3所示。
六、结语
以三款常用的参数化软件SolidWorks、Inventor和Pro/ENGINEER为例,主要从基于减少模型个数和简化零部件两个角度出发,提出了在三款软件中进行第一次轻量化的方法。通过实验分析出,三款软件各自以不同的中性文件格式导入3ds Max方法的特点,对于SolidWorks和Pro/ENGINEER中的三维模型,使用第三方软件Rhino存为3ds格式导入3ds Max,效率和质量更高。对于经过第一次轻量化后导入3dsMax中的模型,从精简模型个数、精简模型面数以及使用纹理贴图代替三维建模三个角度出发,运用相关的方法对模型进行第二次轻量化,得到相对精简的模型,从而减少了计算机的数据计算量,提高了在三维造型软件中进行工业设计的效率。