网页中加载obj模型比较慢_建模 | 三维模型格式和跨软件互导

在前面的专题里,我们已经探讨了如何基于现场平面图绘制出现场立体图的方法,最后得到的是犯罪现场的三维立体模型。在这个基础上可以进一步思考的就是,我们在此立体模型的基础上还可以进一步丰富其展示手段,比如能不能将它用3D打印的方式打印出立体现场,或者能不能将它作为一个场景,用虚拟现实的手段在里面互动漫游?要实现这样的展示方式,单单靠一种软件是不够的,每实现一个环节就必须使用一个不同的软件。

在近年来的教学和实验操作中,笔者主要使用了Sketch up、Sweethome 3d、Cinema 4d、3dmax、meshmixer、Vrp builder 等不同的建模软件,使用中遇到的最大问题便是各个软件对模型定义的格式有所差别,那么模型在它们之间互相导入导出的时候可能会损失一些信息,如果要实现跨软件间的完美互导,就必须研究一下基本的三维模型文件格式,以及软件互导所遵循的基本操作方法。

我们还是从最基本的场景创建工具Sweethome 3d入手,它能够导入的格式有OBJ、DAE、KMZ和3DS,能导出的格式只有OBJ。我们用SH3D建一个简单的长方形房间,里面就放一张书桌和椅子。建好后,发现模型有材质而墙壁没有材质。于是双击墙体,赋予其材质。双击地面,也赋予其材质。然后导出为“caizhi.obj”文件。产生的文件就有caizhi.obj、caizhi.mtl及墙体和地面材质的贴图文件。

471f057437040515619c31589572d4f3.png

用SH3D创建场景

一、SH3D相关格式:

(一)3DS格式:

3DS是3dsmax建模软件的衍生文件格式,做完MAX的场景文件后可导出成3ds格式,可与其他建模软件兼容,也可用于渲染。用3dmax建好的模型可以导出为该模式为SH3D所用。但是它属于三角面静态模型,后期导入软件的不可编辑性、难以二次编辑现在逐渐的远离了我们的视线。

(二)DAE格式:

DAE是一款3D模型文件,主要用于多个图形程序之间交换数字数据,谷歌地球的模型辨识此种文件类型,常见的3Dmax和maya等设计软件安装DAE输出插件就可生成后缀为dae的文件了,dae文件通过一些知名的3D设计软件就可以轻松打开了。

(三)KMZ格式:

KMZ文件是谷歌公司研发的一种地标信息压缩文件。谷歌地图上的一些地标文件就是用的这种格式。也就是说,通过这种方式,可以把谷歌地图上的一些地标模型导入到SH3D中作为模型库的一部分。

(四)OBJ格式:

OBJ文件是一种文本文件,可以直接用写字板打开进行查看和编辑修改。它支持对直线(Line)、多边形(Polygon)、表面(Surface)和自由形态曲线(Free-form Curve)的定义。其中直线和多边形通过它们的点来描述,曲线和表面则根据它们的控制点和依附于曲线类型的额外信息来定义,这些信息支持规则和不规则的曲线,包括那些基于贝塞尔曲线(Bezier)、B样条(B-spline)、基数(Cardinal/Catmull-Rom)和泰勒方程(Taylor equations)的曲线。但Maya导出的OBJ文件并不包括以上关于曲线的信息。OBJ对于建模来说最方便的就是它不仅记录了模型的三维外形特征,还记录了模型各个表面的法线坐标和贴图坐标,这样在其它软件中调整好贴图后,贴图坐标信息可以存入OBJ文件中,这样文件导入SH3D后只需指定一下贴图文件路径就行了,不需要再调整贴图坐标。

模型在导出为OBJ格式时会生成两个或两个以上的文件,其中OBJ格式是模型主文件,记录了其三维特征和法线贴图坐标,mtl为材质文件,赋予模型各表面丰富的材质,有时还会导出场景中所需的其他贴图文件,导入三维软件中时可能会重新制定贴图路径,但贴图位置是记录在了OBJ文件中。本例中,在SH3D中建好场景以后,导出OBJ文件,就会导出上述一系列文件。通过将该OBJ文件导入另外不同的三维软件,发现使用C4D软件可以自动加载模型贴图,而3dmax有时还可能加载失败。所以对于SH3D所生成的场景文件,我们先导入c4d来处理一下。

d761a961d55d61c9147cbcb37a768ac5.png

二、导入C4D及其处理的相关格式:

作为主流的三维建模软件之一,C4D软件支持的格式非常多。前述SH3D支持的格式C4D基本上都支持。不过对于SH3D导出的OBJ,再导入C4D中时,发现墙体变为透明。这就需要在C4D中对墙体重新赋予材质,并且保存为一个可以被3Dmax顺利读取的格式。

a3e45d27b15bfc15b7c8cd40e5dc0998.png

SH3D导入C4D时出现的不正常现象

(一)SH3D墙体材质与C4D的互导:

用C4D打开“caizhi.obj”发现墙体和地面变得透明,其他模型部分贴图正常。查看C4D下方的材质编辑器,发现墙和地面的材质对象中没有材质球存在。

1820c4086dff8ed819b15be46edf3539.png

墙体、地面材质球缺失

于是在材质编辑器中新建材质球(双击编辑器区域可自动生成),然后右键选择编辑,在材质编辑器中材质命令下选择需要导入的图片,对每个材质都新建一个材质球。

eaac7607ffe2330fe10f1949bee447d4.png

外墙材质球

f709b3b15238d70b94287490291e9f62.png

内墙材质球

2b998ca5b23bc1720489851d4821302b.png

地面材质球

将材质球拖入贴图区域就完成了对该区域的贴图。如下图所示:

05cc0503852bb3dcc1780d940603aed0.png

贴图完成后,导出为"caizhi.fbx"格式。

(二)FBX格式:

FBX格式是Autodesk公司出品的一款用于跨平台的免费三维创作与交换格式的软件,它包含了许多信息,包括模型、材质、动画、骨骼、摄像机、光源等等,是一种适合于不同软件间互导的中间格式。

在3dmax2018中打开"caizhi.fbx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值