Blender项目导入Unity后显示效果不一致,Extract Textures灰化如何解决?
Blender与Unity显示效果对齐操作方案
导出前Blender端配置
- 先处理纹理关联:打开顶部菜单「文件」→「外部数据」,先执行「全部打包到.blend」,再执行「全部解包到文件」,将所有内嵌的纹理资源导出到和.blend文件同级的目录,确保所有纹理都是外部关联状态,不存在仅内嵌在工程内的资源
- 应用变换:选中所有要导出的模型,按
Ctrl+A,在弹出的菜单中勾选「位置」「旋转」「缩放」,确认应用全部变换,避免导入Unity后出现坐标、缩放异常 - 导出FBX文件:不要直接拖拽.blend文件到Unity,优先选择导出FBX格式,导出参数做如下配置:
- 「几何数据」分类下,勾选「UV」「平滑边」「材质」
- 「路径模式」选择「复制」,同时勾选右侧的「嵌入纹理」,确保所有纹理资源被打包到FBX文件内
Unity端导入配置
- 将导出的FBX文件拖入Unity的Assets文件夹,选中FBX资源,在Inspector面板做如下调整:
- 切换到「模型」标签:缩放系数设置为1,勾选「生成光照map UV」,法线模式选择「导入」或「平滑」
- 切换到「材质」标签:材质创建模式选择「从模型材质导入」,此时之前灰色的「Extract Textures」和失效的「Extract Materials」都会变为可用状态
- 先点击「Extract Textures」,选择一个本地文件夹存放导出的纹理资源,再点击「Extract Materials」,选择文件夹存放导出的材质文件
材质参数对齐
Blender默认的Principled BSDF材质和Unity内置的Standard Shader参数对应规则如下,直接对应调整即可:
- Blender的「基础色」对应Unity材质的「Albedo」通道,纯色材质直接复制色值即可
- Blender的「粗糙度」对应Unity材质的「光滑度(Smoothness)」反向值:Blender粗糙度为1时,Unity光滑度设为0;Blender粗糙度为0时,Unity光滑度设为1
- 如有法线贴图、金属度贴图,直接对应赋值到Unity材质的对应通道即可
最终效果验证
将导入后的模型拖入Unity场景,调整场景的环境光强度、方向光角度和Blender的场景光照参数保持一致,排除光照差异导致的视觉偏差。如果你的Unity项目用的是URP或HDRP管线,需要先将提取的材质升级到对应管线的Shader,再调整参数即可。
内容的提问来源于stack exchange,提问作者user15603244
相关产品推荐
相关产品推荐

