我买了一个房间的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
来确定在哪里找到所需的图像文件?是否有进口日志可能会有所帮助?
我编辑了所有.mtl
个文件并删除了路径,因此它只是图像文件名(即map_Ka Arch 53-wood 14.jpg
)。
我将所有.jpg
和.tga
个文件复制到同一目录中的" Textures" 文件夹中。
我使用FBX Converter将.obj
文件转换为.fbx
。
将.fbx
导入Unity3D。
它仍会创建一个没有材料(不可见)的模型,但它导入时自动创建的材料文件夹中的文件少得多,而且这些文件映射到我在Assets文件夹下导入的图像 - 也许这是进步?不确定......
可能我的模型正确导入,但我没有正确设置?我导入的.fbx
模型下面有多个Mesh过滤器。每个网格滤镜的Albedo都会映射到我在Assets文件夹下导入的图像(参见屏幕截图),但是当我将根模型拖到我的场景中时它仍然是透明的 - 为什么?
我无法让.obj
/ .mtl
组合工作。我能够让作者转换为fbx,所以我也试图让它工作得很好(同样的问题我和我转换的fbx文件有关)。我此时创建了一个新的SO问题(Imported .fbx model Is Transparent)
答案 0 :(得分:3)
答案 1 :(得分:1)
最简单(也是正确)的方法是不使用.mtl文件。而只需引入纹理和模型,然后在Unity中创建一个材质。作为起点,最好使用标准着色器。然后只需将纹理拖动到材质上的右侧属性即可。
如果网格中的UV不正确,上述情况很可能无法正常工作,但很有可能将工作。
你没有提到纹理的名称,但可能会大致与属性名称相匹配。
例如,_d
_可能是Diffuse
/ Albedo
。
编辑:如果以上内容不是一个选项(就像您的复杂对象一样),您可以使用Import Materials
,Material Naming
和Material Search
选项取得成功导入模型的设置。但是,假设至少纹理引用与.obj相关,可能不是这种情况。