发布时间:2024-07-15
浏览次数:0
在上一个专题中,我们讨论了如何根据现场平面图绘制三维场景图,最终得到了犯罪现场的三维模型。在此基础上,我们可以进一步思考,能否在此三维模型的基础上进一步丰富其展示方式,比如能否利用3D打印技术打印出三维场景,或者将其作为场景,利用虚拟现实在其中进行交互漫游?而要实现这样的展示方式,只依靠一个软件是不够的,每个环节都要使用不同的软件。
笔者在近几年的教学和实验操作中,主要使用了up、3d、4d、3dmax、Vrp等不同的建模软件,使用中遇到的最大问题就是各种软件的模型定义格式不同,因此在它们之间进行模型的导入导出时可能会丢失一些信息。要想实现完美的跨软件互操作,必须研究基本的3D模型文件格式以及软件互操作所遵循的基本操作方法。
我们还是从最基础的场景创建工具3d开始,它可以导入OBJ、DAE、KMZ和3DS等格式,只能导出OBJ等格式。我们用SH3D建一个简单的长方形房间,里面有一张桌子和一把椅子。建好之后发现模型有材质,但是墙面没有材质。于是双击墙面给它分配材质。双击地面给它分配材质。然后导出为“.obj”文件。生成的文件包括墙面和地面材质的.obj、.mtl和纹理文件。
使用 SH3D 创建场景
1.SH3D相关格式:
1.3DS 格式:
3DS是建模软件衍生的文件格式,MAX场景文件完成后可以导出为3ds格式,兼容其他建模软件,也可以用来渲染。用3dmax建好的模型可以导出为该模式,供SH3D使用。不过是三角静态模型,后期软件不可编辑、二次编辑困难等缺点正逐渐远离我们的视线。
(二)DAE格式:
DAE 是一种三维模型文件,主要用于多个图形程序之间交换数字数据, Earth 的模型识别此文件类型,常见的设计软件如 3Dmax、Maya 等都可以通过安装 DAE 输出插件生成后缀为 dae 的文件,一些知名的三维设计软件可以轻松打开 dae 文件。
(三)KMZ格式:
KMZ文件是开发的地标信息压缩文件,地图上部分地标文件就是采用这种格式,也就是说通过这种方式,地图上部分地标模型可以作为模型库的一部分导入到SH3D中。
(四)OBJ格式:
OBJ文件是一种文本文件,可以用写字板直接打开进行查看和编辑。它支持线、多边形、曲面和自由曲线的定义。线和多边形由它们的点来描述,而曲线和曲面则由它们的控制点和附加在曲线类型上的附加信息来定义。这些信息支持规则和不规则的曲线,包括基于贝塞尔曲线、B样条、基数和泰勒方程的曲线。但是Maya导出的OBJ文件并不包含上述关于曲线的信息。OBJ对于建模最方便的地方在于它不仅记录了模型的三维形状特征,还记录了模型各个面的法线坐标和贴图坐标。这样,在其他软件中调整贴图后,可以将贴图坐标信息保存在OBJ文件中。这样,将文件导入SH3D后,只需要指定贴图文件路径,无需调整贴图坐标。
当一个模型导出为OBJ格式时,会生成两个或多个文件。OBJ格式是模型的主文件,记录了模型的三维特征和法线贴图坐标。MTL是材质文件,赋予模型表面丰富的材质。有时候会导出场景中需要的其他贴图文件,导入三维软件时,可能会重新定义贴图路径,但是OBJ文件中会记录贴图位置。本例中,在SH3D中搭建场景后,导出OBJ文件会导出上述一系列文件。通过将OBJ文件导入其他不同的三维软件发现,使用C4D软件可以自动加载模型贴图,而3dmax有时候会出现加载失败的情况。所以对于SH3D生成的场景文件,我们先导入c4d进行处理。
2.导入C4D及相关格式进行处理:
C4D作为主流的3D建模软件之一,支持的格式非常多,上面提到的SH3D支持的格式C4D基本都支持,但是SH3D导出的OBJ导入到C4D中,发现墙面变成了透明的,这种情况需要在C4D中重新给墙面指定材质,并保存成3Dmax可以顺利读取的格式。
SH3D导入C4D时出现异常现象
1.SH3D墙体材质与C4D交互:
当我在C4D中打开“.obj”文件时,发现墙面和地面都变成了透明的,而模型其他部分的贴图都是正常的。我查看了C4D底部的材质编辑器,发现墙面和地面的材质对象中已经没有材质球了。
墙壁和地面材质球缺失
所以在材质编辑器中新建一个材质球(双击编辑器区域即可自动生成),然后右键选择编辑sketch up 建模,在材质编辑器中的材质命令下选择要导入的图片,为每一个材质新建一个材质球。
外墙材料
室内墙面着色器
地面着色器
将材质球拖拽到映射区域中,即可完成区域的映射,如下图:
纹理完成后,导出为“.fbx”格式。
(二)FBX 格式:
FBX格式是该公司出品的一款免费的跨平台3D创作与交换格式软件,里面包含了模型、材质、动画、骨骼、相机、光源等大量信息,是一种适合不同软件之间互相引导的中间格式。
打开“.fbx”,你会发现所有模型和材质信息已经被3dmax读取了。
3、导入3dmax,导出DAE文件,再通过低版本的3Dmax导出VRP文件:
我们的最终目的是得到一个可以供虚拟现实仿真软件vrp使用的场景文件。但是VRP最好和3dmax结合,目前已经开发出一个插件可以用3dmax直接导出VRP格式文件,供VRP使用。但是最新的VRP 2007共享版只能在win7 32位下使用,3dmax最高支持版本只有2012 32位,用3dmax 2012版本是无法直接打开c4d r19生成的FBX文件。所以先用3dmax 2018打开.fbx,然后导出为.dae,再用3dmax 2012打开,即可得到贴图正确的模型。如下图所示:
导入 2012
接下来在3dmax 2012中需要将模型纹理转换为vrp编辑器支持的类型,先使用vrp的预览模式查看模型,会发现家具的纹理显示正常,但是墙面和地板的纹理显示不正常,也就是说墙面和地板的材质可能不是vrp支持的。
VRP 纹理不兼容
点击快捷键M弹出材质编辑器,点击“ ”按钮弹出材质浏览器。在场景材质中可以发现墙面和地面的材质是分层的,VRP不支持这种分层的方式,因此需要单独提取贴图并转为(标准)模式才能正确导出。在子层下选择材质文件,双击选择“复制”,会新建一个材质球。选中需要重新贴图的面,将材质球拖到上面,就会被赋予材质。
3dmax 材质编辑器
材质浏览器,查看材质的层级关系
将每个子材质转换为标准材质作为副本
通过这种方式,场景中的纹理被替换了。再次预览将得到以下结果:
获取具有正确纹理的场景
通过VRP插件导出“.vrp”场景文件后,便可在vrp虚拟现实软件中进行后续的操作,为后续开发虚拟现实现场漫游方案奠定了基础。
4。讨论:
本案例之所以涉及到多个软件和处理流程,是因为初期的场景制作软件SH3D的导出格式不够丰富sketch up 建模,如果是C4D的话可以先将场景导入3Dmax再导入VRP,如果是直接用3dmax制作的,可以直接导入VRP。
另外,使用的VR软件是中视点共享版,仅支持32位win7操作系统,所以本案例实际上是在两台主机上运行的。本案例中SH3D6.1版本和C4D r19版本运行在64位win10操作系统的图形工作站上,共享版运行在32位win7操作系统的台式电脑上。因此在软件新旧版本之间导入文件时会出现转换问题。
五、结论:
通过一个小的实际案例,我们体会到不同的模型编辑软件对于模型的三维造型、纹理材质等要求是不一样的。只有在实践中认识到这样的规律,才能在各种软件转换中自如地运用模型和场景。通过跨软件的导入导出,我们可以轻松精简一个虚拟展示项目,让不同的任务高效地继续进行,而不必重复之前的工作,从而提高效率。
如有侵权请联系删除!
Copyright © 2023 江苏优软数字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服务提供商
13262879759
微信二维码