如何导入3D场景(.obj文件和.mtl文件)?

7
我购买了一个房间的3D模型,该模型以.obj格式提供。现在,我正在尝试将此模型导入Unity3D。
该模型包括:
- 5个.obj文件 - 5个.mtl文件 - n个.jpg文件 - n个.tga文件
.mtl文件中包含了我的电脑上不存在的路径。因此,我删除了路径。图像文件(.jpg和.mtl)与.obj文件位于同一目录中。当我尝试导入.obj文件时,房间没有材质。然后,我尝试使用FBX转换器(勾选“嵌入媒体”)将.obj转换为.fbx,但仍然无法在导入时看到3D房间的材质(它是不可见的)。我还尝试将所有.jpg和.tga文件导入到Unity根目录下的一个文件夹中,然后导入.obj和.mtl文件。
我做错了什么?Unity3D是否使用.mtl来确定需要查找哪些图像文件?是否有可能有导入日志可以揭示一些信息?
更新[8/25/2015]:
1. 我编辑了所有.mtl文件并删除了路径,只保留了图像文件名(例如map_Ka Arch 53-wood 14.jpg)。 2. 我将所有.jpg和.tga文件复制到相同目录下的“Textures”文件夹中。 3. 我使用FBX Converter将.obj文件转换为.fbx。 4. 将.fbx导入到Unity3D。
它仍然创建了一个没有材质的模型(不可见),但是在导入时自动创建的材质文件夹中的文件要少得多,这些文件与我在Assets文件夹下导入的图像相对应——也许这是进展?不确定...
可能我的模型已经正确导入,但我没有设置正确的参数?我导入的.fbx模型下有多个网格过滤器。每个网格过滤器的漫反射贴图都映射到了我在资源文件夹下导入的图像(见截图),但是当我将根模型拖入场景时,它仍然是透明的——为什么会这样呢?

更新[8/27/2015]

我无法使.obj/.mtl组合起来工作。我能让作者将其转换为fbx,所以我也试图让其正常工作(我使用转换后的fbx文件时遇到了同样的问题)。此时我发布了一个新的SO问题(导入的.fbx模型透明

enter image description here

enter image description here


你后来有进展吗?我现在也面临着同样的情况。任何帮助都将是极好的! - angerhang
我的模型在空间中很遥远...意思是在我缩小视野后我能看到它...然后我将它拖回到其他所有对象所在的位置。 - Mike6679
最终我也把所有纹理图像与fbx一起转换到同一个文件夹中,这样就可以了。不过还是谢谢你:> - angerhang
2个回答

3
  • 使用fbx格式(将obj转换为fbx,因为obj格式不起作用)
  • 将fbx作为资源导入
  • 将纹理图像文件作为资源导入
    (图片命名:modelname_Texture_0.jpg、modelname_Texture_1.jpg等;fbx名称:modelname.fbx)
  • 从收藏夹中选择模型-> 所有模型,在检查器选项卡下的材料中选择模型
  • 选择导入材质 > 材质命名
  • 选择模型名称+模型的材质
    材质搜索
  • 选择本地材质的文件夹
  • 点击应用
    完成

1
最简单(也是正确的)方法是不使用.mtl文件。而是只带入纹理和模型,然后在Unity中创建一个材质。作为起点,最好使用标准着色器。然后将纹理拖到材质的正确属性上。
如果网格中的UV不正确,则以上方法可能无法使用,但很有可能会成功。
您没有提及纹理的名称,但它们可能与属性名称大致匹配。 例如,_d_可以是漫反射/反照率。
编辑:如果以上方法不可行(例如您的复杂对象),则可以尝试使用模型导入设置中的“导入材质”,“材质命名”和“材质搜索”选项。然而,这假设至少纹理引用在.obj文件中,这可能不是情况。

我尝试了只导入.obj文件——它导入了许多对象,还有一个材质文件夹,里面又有很多对象(见屏幕截图)。我不确定该把哪个拖到哪里。 - Mike6679
我在上面进行了编辑,可能会有所帮助。你提到尝试了FBX转换器。你可以尝试将其放入Blender中,并从那里导出嵌入式媒体。 - Matt
嗯,也许可以将obj或fbx文件导入到Blender中。另外请看我上面的更新:“更新[8/25/2015]”。 - Mike6679
尝试将obj和fbx文件导入Blender,但都无法正常工作——没有错误或消息——实际上什么也没发生——所以不确定出了什么问题。 - Mike6679

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接