Unity中如何正确导入带纹理的OBJ+MTL格式卫星3D模型
解决Unity中OBJ模型纹理不显示的问题
方法一:直接在Unity中调整导入设置
- 检查文件结构:确保
sat.obj、sat.mtl、sat.jpg三个文件在同一目录下,且文件名(含大小写)完全匹配。Unity对路径和文件名大小写敏感,比如Sat.jpg和sat.jpg会被识别为不同文件。 - 重新导入OBJ文件:右键点击
sat.obj,选择Reimport,让Unity重新读取MTL文件的纹理引用。 - 校验MTL文件内容:用文本编辑器打开
sat.mtl,找到类似map_Kd sat.jpg的行,确认纹理文件名和实际文件一致,相对路径是否正确(需和OBJ文件同目录)。若路径错误,手动修改为正确的相对路径。 - 手动关联纹理:若导入后材质仍为灰色,选中模型的材质球,在Inspector面板中将
sat.jpg拖拽到Albedo(或Base Map)插槽,同时确保材质使用Standard或适配的PBR Shader。
方法二:用Blender重新导出(新手友好)
既然你在Blender中能看到带纹理的模型,可通过重新导出解决Unity兼容问题:
- 打开Blender,导入
sat.obj模型(文件→导入→Wavefront (.obj))。 - 确认纹理已正常加载(在Blender材质面板可查看)。
- 选中模型,点击
文件→导出→FBX (.fbx)。 - 在导出设置中勾选嵌入纹理(Embed Textures),将纹理打包进FBX文件,避免路径关联问题。
- 将导出的FBX文件导入Unity,模型与纹理会自动关联,无需额外设置。
常见注意事项
- Unity默认OBJ导入器对部分MTL语法支持有限(比如复杂纹理坐标变换、非标准参数),这种情况下用FBX导出更可靠。
- 若纹理带透明通道,需将材质的
Rendering Mode设为Transparent或Cutout,并调整Alpha通道相关设置。
内容的提问来源于stack exchange,提问作者alcor
相关产品推荐
相关产品推荐

