如何导入3D场景(带.mtl文件的.obj文件)

时间:2015-08-25 18:38:36

标签: unity3d import material fbx

我买了一个房间的3D模型。该模型采用.obj格式。现在,我尝试将此模型导入Unity3D。

模特带来:

  • 5 x .obj个文件
  • 5 x .mtl个文件
  • n x .jpg个文件
  • n x .tga个文件

.mtl个文件包含我的电脑上不存在的路径。所以我删除了路径。图像文件(.jpg& .mtl)与.obj文件位于同一目录中。当我尝试导入.obj文件时,房间里没有任何材料。 然后我尝试使用FBX转换器(使用"嵌入媒体"选中)将.obj转换为.fbx,当我导入它时,3D房间没有任何材料(它是不可见的)。我还尝试将所有.jpg.tga文件导入Unity中根资源文件夹下的文件夹,然后导入.obj.mtl文件。

我做错了什么? Unity3D是否使用.mtl来确定在哪里找到所需的图像文件?是否有进口日志可能会有所帮助?

更新[2015年8月25日]

  1. 我编辑了所有.mtl个文件并删除了路径,因此它只是图像文件名(即map_Ka Arch 53-wood 14.jpg)。

  2. 我将所有.jpg.tga个文件复制到同一目录中的" Textures" 文件夹中。

    < / LI>
  3. 我使用FBX Converter将.obj文件转换为.fbx

  4. .fbx导入Unity3D。

  5. 它仍会创建一个没有材料(不可见)的模型,但它导入时自动创建的材料文件夹中的文件少得多,而且这些文件映射到我在Assets文件夹下导入的图像 - 也许这是进步?不确定......

    更新[2015年8月25日]#2

    可能我的模型正确导入,但我没有正确设置?我导入的.fbx模型下面有多个Mesh过滤器。每个网格滤镜的Albedo都会映射到我在Assets文件夹下导入的图像(参见屏幕截图),但是当我将根模型拖到我的场景中时它仍然是透明的 - 为什么?

    更新[2015年8月27日]

    我无法让.obj / .mtl组合工作。我能够让作者转换为fbx,所以我也试图让它工作得很好(同样的问题我和我转换的fbx文件有关)。我此时创建了一个新的SO问题(Imported .fbx model Is Transparent

    enter image description here

    enter image description here

2 个答案:

答案 0 :(得分:3)

  • 使用fbx(将obj转换为fbx,obj不起作用)
  • 将fbx导入为资产
  • 将textrure图像文件导入为资产
    (图片命名:modelname_Texture_0.jpg modelname_Texture_1.jpg等,fbx名称:modelname.fbx)
  • 从收藏夹中选择模型 - &gt;所有型号
    在材料
  • 下的检查员选项卡中
  • 选择导入材料&gt; 材料命名
  • 选择型号名称+型号材料
    材料搜索
  • 选择本地资料的文件夹
  • 点击申请
    完成

答案 1 :(得分:1)

最简单(也是正确)的方法是不使用.mtl文件。而只需引入纹理和模型,然后在Unity中创建一个材质。作为起点,最好使用标准着色器。然后只需将纹理拖动到材质上的右侧属性即可。

如果网格中的UV不正确,上述情况很可能无法正常工作,但很有可能工作。

你没有提到纹理的名称,但可能会大致与属性名称相匹配。 例如,_d _可能是Diffuse / Albedo

编辑:如果以上内容不是一个选项(就像您的复杂对象一样),您可以使用Import MaterialsMaterial NamingMaterial Search选项取得成功导入模型的设置。但是,假设至少纹理引用与.obj相关,可能不是这种情况。