MTL格式的材质库文件怎样导入3DMAX?

MTL格式的材质库文件怎样导入3DMAX?,第1张

你用3DREAPERDX导出的OBj时候,要勾选比如说导出材质,创建材质库这样的项,预设值也要改成Zbrush或者MAX / MAYA都行,再导入MAX就有材质了

MTL本来就是材质文件,是以模型为载体一起的,不能单独导入的,打个比如说,我要一张画但不要画这幅画的这张纸,那画上的内容能单独拿下来吗,不行,不知道你听懂没有

iOS可以加载的3D模型有3种,分别是.dae和.obj和.scn。其中.dae和.obj一般可以通过3D软件导出该格式的模型。

demo点我,先爽为快

        导出.dae格式的3D模型时,有些软件还能导出模型所需要的材质,即.jpg图片。有些导出时仅仅只有.dae文件。【比如,我在Mac上用Blender导出的就包含材质,同事在windows上,用Cinema 4D导出的仅仅只有dae文件】

不过,没有导出材质也不用怕,当在Xcode上加载dae文件的时候,会有提示。

        除此之外,我们还可以手动为某个节点添加材质。具体 *** 作是先找点对应的node,然后再进行设置:

node.geometry?.firstMaterial?.diffuse.contents = UIImage(named: "3d66Model-515552-1-52.jpg")

具体见demo。

        导出obj格式的模型时,还会包含.mtl文件和.jpg文件。不过我还不知道怎么使用.mtl,demo中的例子,是直接手动设置材质。 【希望哪位大佬指导下,怎么使用.mtl文件】

这个格式,使用起来,也与.dae格式没什么区别,也是需要将材质放在相同目录下。具体见demo.

在Android OpenGLES2.0(十四)——Obj格式3D模型加载中实现了Obj格式的3D模型的加载,加载的是一个没有贴图,没有光照处理的帽子,为了呈现出立体效果,“手动”加了光照,拥有贴图的纹理及光照又该怎么加载呢?

本篇博客例子中加载的是一个卡通形象皮卡丘,资源是在网上随便找的一个。加载出来如图所示:

obj内容格式如下:

mtl文件内容格式如下:

关于Obj的内容格式,在上篇博客中已经做了总结,本篇博客中使用的obj,可以看到f后面的不再跟的是4个数字,而是 f 2/58/58 3/59/59 17/60/60 这种样子的三组数,每一组都表示为顶点坐标索引/贴图坐标点索引/顶点法线索引,三个顶点组成一个三角形。而头部的 mtllib pikachu.mtl 则指明使用的材质库。

而mtl格式文件中,主要数据类型为:

模型加载和之前的模型加载大同小异,不同的是,这次我们需要将模型的贴图坐标、顶点法线也一起加载,并传入到shader中。其他参数,有的自然也要取到。

模型加载以obj文件为入口,解析obj文件,从中获取到mtl文件相对路径,然后解析mtl文件。将材质库拆分为诸多的单一材质。obj对象的 加载,根据具使用材质不同来分解为多个3D模型。具体加载过程如下:

顶点着色器

片元着色器

完成了以上准备工作,就可以调用 readMultiObj 方法,将obj文件读成一个或多个带有各项参数的3D模型类,然后将每一个3D模型的参数传入shader中,进而进行渲染:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12030883.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存